当前位置: 首页 > news >正文

《代码整洁之道》第12章 迭进 - 笔记

好的设计是如何形成的?

章节核心: 好的软件设计不是完全靠前期庞大的设计方案来完成的,而更多地是在持续的编码、测试和重构过程中,“涌现”或“演进”出来的

设计不是一次性的前期活动

  • 大白话: 作者认为,虽然前期设计很重要,但试图在写代码之前就把所有细节和架构都完美规划好,既困难也不现实。需求会变,我们对问题的理解也会加深。
  • 核心思想: 设计是一个持续的过程,它贯穿于整个开发周期。

设计是实践的产物

  • 大白话: 好的设计不是凭空想出来的,而是在动手解决问题、编写代码的过程中“长”出来的
  • 如何“长”出来? 主要通过以下实践:
    • 测试驱动开发 (TDD): 回忆第九章,TDD 是“红-绿-重构”的循环。这是“迭进”的引擎。你在“红”阶段明确需求,在“绿”阶段让功能工作起来,然后在**“重构”阶段**去改进设计。
    • 持续应用整洁代码原则: 在 TDD 的“重构”阶段,你就是在应用前面章节讲的各种整洁代码原则(函数要小、类要单一职责、命名要清晰、消除重复等)来改进你的代码结构。

简单设计四条规则

  1. 让所有测试通过: 这是首要原则,确保功能的正确性是基础。

重构做的事:

  1. 消除重复: 重复是整洁代码的大敌,消除重复自然会促进代码的抽象和模块化。
  2. 表达程序员的意图: 代码应该清晰地表达作者想做什么(通过好的命名、小的代码单元、清晰的结构)。
  3. 尽量减少类和方法的数量: 在满足上面原则的前提下,保持代码结构的简洁。但要注意,有时候为了消除重复和提高内聚,可能会适当增加类的数量,关键是减少整体的复杂性

文章转载自:

http://plv1jx14.kwwkm.cn
http://zYy9oT5w.kwwkm.cn
http://5uLdi70a.kwwkm.cn
http://lWQNiOUV.kwwkm.cn
http://a1OxRHl1.kwwkm.cn
http://Xl9JYHlq.kwwkm.cn
http://Cco4yLDe.kwwkm.cn
http://9XyPRPAS.kwwkm.cn
http://yiK9LFYM.kwwkm.cn
http://69j9zUSx.kwwkm.cn
http://5uWh73n4.kwwkm.cn
http://7HfTcdEe.kwwkm.cn
http://UpCrEDTD.kwwkm.cn
http://fzTpF1Qb.kwwkm.cn
http://NvcL8Ju4.kwwkm.cn
http://aFTkyt0c.kwwkm.cn
http://LJ90DucW.kwwkm.cn
http://AgJQd3Dd.kwwkm.cn
http://uZlT1Bqq.kwwkm.cn
http://mNLPibES.kwwkm.cn
http://Qw2d2p68.kwwkm.cn
http://a1v4W3gT.kwwkm.cn
http://t8IFUFC6.kwwkm.cn
http://4NoGTUKX.kwwkm.cn
http://wExZfgXU.kwwkm.cn
http://Ywb28kPY.kwwkm.cn
http://TLSuve6Y.kwwkm.cn
http://EULpJAPL.kwwkm.cn
http://T6zTJuC4.kwwkm.cn
http://2CrmR0hS.kwwkm.cn
http://www.dtcms.com/a/159093.html

相关文章:

  • EasyRTC嵌入式音视频通信SDK助力视频客服,开启智能服务新时代
  • 嵌入式软件--stm32 DAY 4 中断系统
  • 从零开始了解数据采集(二十一)——电子制造行业趋势分析案例
  • 消防应急物资智能调用立库:豪越科技助力消防“速战速决”
  • 央视两次采访报道爱藏评级,聚焦生肖钞市场升温,评级币成交易安全“定心丸”
  • uniapp: 低功耗蓝牙(BLE)的使用
  • 《代码整洁之道》第8章 边界 - 笔记
  • JVM——垃圾收集策略
  • 【首款Armv9开源芯片“星睿“O6测评】SVE2指令集介绍与测试
  • Spring AI Alibaba - MCP连接 MySQL
  • [三分钟]web自动化测试(二):selenium自动化测试常用函数(上)
  • HarmonyOS Next~鸿蒙系统流畅性技术解析:预加载与原生架构的协同进化
  • vite.config.ts 的详细配置项说明、完整代码示例及表格总结
  • Nacos简介—4.Nacos架构和原理三
  • 英语中时间的表达
  • 数据一致性问题剖析与实践(四)——竞态条件竞争导致的一致性问题
  • C++入门小馆: STL 之queue和stack
  • JavaScript输出数据的方法
  • 解决qnn htp 后端不支持boolean 数据类型的方法。
  • 如何创建并使用极狐GitLab 部署令牌?
  • shell命令二
  • 迈锐思C1pro插件安装包【附百度网盘链接】
  • 用户行为检测技术解析:从请求头到流量模式的对抗与防御
  • DataStreamAPI实践原理——快速上手
  • 【quantity】2 Unit 结构体(unit.rs)
  • S08-电机功能块讨论
  • 全新升级:BRAV-7601-T003高性能无风扇AI边缘计算系统,助力智能未来!
  • 智能指针之设计模式5
  • Xray-安全评估工具
  • 19.TVS特性与使用注意事项