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

clean code-代码整洁之道 阅读笔记(第十二章)

第十二章 系统

12.1 通过选进设计达到整洁目的

Kent Beck关于简单设计'的四条规则,对于创建具有良好设计的软件有着莫大的帮助。

  • 据Kent所述,只要遵循以下规则,设计就能变得"简单":
  • 运行所有测试;
  • 不可重复;
  • 表达了程序员的意图;
  • 尽可能减少类和方法的数量;
  • 以上规则按其重要程度排列。
12.2 简单设计规则1:运行所有测试

        只要系统可测试,就会导向保持类短小且目的单一的设计方案。

        紧耦合的代码难以编写测试。同样,编写测试越多,就越会遵循1DIP之类规则,使用依赖注入、接口和抽象等工具尽可能减少耦合。

        遵循有关编写测试并持续运行测试的简单、明确的规则,系统就会更贴近OO低耦合度高内聚度的目标。编写测试引致更好的设计。

12.3 简单设计规则2~4:重构

        有了测试,就能保持代码和类的整洁,方法就是递增式地重构代码。

        测试消除了对清理代码就会破坏代码的恐惧。

        在重构过程中,可以应用有关优秀软件设计的一切知识。提升内聚性,降低耦合度,切分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称,如此等等。这也是应用简单设计后三条规则的地方:消除重复,保证表达力,尽可能减少类和方法的数量。

12.4 不可重复

      要想创建整洁的系统,需要有消除重复的意愿,即便对于短短几行也是如此。

        “小规模复用”可大量降低系统复杂性。要想实现大规模复用,必须理解如何实现小规模复用。

        模板方法模式是一种移除高层级重复的通用技巧。

12.5 表达力
  • 可以通过选用好名称来表达。
  • 也可以通过保持函数和类尺寸短小来表达。
  • 还可以通过采用标准命名法来表达。
  • 编写良好的单元测试也具有表达性。测试的主要目的之一就是通过实例起到文档的作用。读到测试的人应该能很快理解某个类是做什么的。
  • 不过,做到有表达力的最重要方式却是尝试。
12.6 尽可能少的类和方法

        我们的目标是在保持函数和类短小的同时,保持整个系统短小精悍。不过要记住,这在关于简单设计的四条规则里面是优先级最低的一条。所以,尽管使类和函数的数量尽量少是很重要的,但更重要的却是测试、消除重复和表达力。

12.7 小结

        遵循简单设计的实践手段,开发者不必经年学习就能掌握好的原则和模式。

http://www.lryc.cn/news/378561.html

相关文章:

  • FFmpeg YUV编码为H264
  • 【C语言】顺序表(上卷)
  • Luma AI如何注册:文生视频领域的新星
  • 一站式实时数仓Hologres整体能力介绍
  • 如何在 Windows 上安装 Docker Desktop
  • WPF由文本框输入的内容动态渲染下拉框
  • RPCMon:一款基于ETW的RPC监控工具
  • 【odoo】常用的字符转义:“>“,“<“,““,“/“等
  • 李宏毅深度学习项目——HW1个人笔记
  • 3D Gaussian Splatting Windows安装
  • 人脸识别——可解释的人脸识别(XFR)人脸识别模型是根据什么来识别个人的
  • 仓库管理系统的设计
  • 最火AI角色扮演流量已达谷歌搜索20%!每秒处理2万推理请求,Transformer作者公开优化秘诀
  • MySQL:MySQL分组排序函数rank()、row_number()、dense_rank()与partition by结合使用
  • opencv c++ 检测图像尺寸大小,标注轮廓
  • Python数据可视化基础:使用Matplotlib绘制图表
  • Java开发接口设计的原则
  • [火灾警报系统]yolov5_7.0-pyside6火焰烟雾识别源码
  • 机器学习和深度学习区别
  • 【功能详解】银河麒麟操作系统“安全启动”是如何发挥作用的?
  • 关于多线程的理解
  • C语言 | Leetcode C语言题解之第155题最小栈
  • Qdrant 的基础教程
  • 任务4.8.3 利用SparkSQL统计每日新增用户
  • DS知识点总结--线性表定义及顺序表示
  • 百度文库AI产品“橙篇”:支持10万字长文生成,开启AI创作新篇章
  • wsl子系统ubuntu20.04 设置docker服务开机自启动
  • SAP ScreenPersonas
  • 充电学习—3、Uevent机制和其在android层的实现
  • “河南省勘察设计资质整合趋势与企业应对“