代码大全1第二篇阅读笔记
第二章:用隐喻更充分的理解软件开发
1、当将软件的构建过程比作房屋的构建过程时,可以发现,仔细的准备是必要的,发生变动时最贵的成本是人的时间,而大型项目和小型项目之间也有差异。
2、软件开发实践中,每位工程师都有许多工具,但不存在任何一个能适用于所有工作的工具,因地制宜德尔选择正确工具是成为能有效编程的程序员的关机。
抽象数据类型ADT :一组数据 和 对其的操作
类可以看成是 ADT + 继承 +多态
良好的类接口,类接口可以看成类共有子程序所构成的集合
类接口应该表现一致的抽象层次。
尽可能让接口可编程,而不是表达语义。将接口中逻辑部分转换为编辑器能实施的部分,如使用assert等。
一般来说应该尽量减少类和类之间相互合作的范围
减少实例化对象的数量
减少实例对象调用不同子程序的数量
高质量的子程序
变量名最好在9~15个字母之间
子程序名(方法名)则视命名是否清晰易懂而定
子程序的行数不要超过200行(不算注释与空行),否则可读性会下降
不要把子程序的参数用与计算处理,要用局部变量在子程序内处理
为子程序传递参数是多个变量还是一个对象,应该根据子程序参数的抽象层次上考虑。
防御式编程
子程序应该不应传入错误数据而被破坏
来写自己的断言,(在生产阶段关闭断言)
用断言来处理绝不应该发生的情况,而用错误处理代码来处理预期可能发生的状况。
隔离程序使其包容由错误产生的损害,让软件的某些部分处理“不干净的数据”,而让另一部分处理“干净的数据”,比如类的公用方法可以处理不干净的数据,而在调用私有方法时则认为数据都是干净的。在得到外部数据时可以得到清理,有时候多层清理也是应当的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用