文章目录
- 概述
- 面向对象
- 面向对象相比面向过程有哪些优势?面向过程真的过时了吗?
- 哪些代码设计看似是面向对象,实际是面向过程的?
- 接口vs抽象类的区别?如何用普通的类模拟抽象类和接口?
- 为什么基于接口而非实现编程?有必要为每个类都定义接口吗?
- 为何说要多用组合少用继承?如何决定该用组合还是继承?
- 设计原则
- 对于单一职责原则,如何判定某个类的职责是否够“单一”?
- 如何做到“对扩展开放、修改关闭”?扩展和修改各指什么?
- 里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?
- 接口隔离原则有哪三种应用?原则中的“接口”该如何理解?
- 控制反转、依赖反转、依赖注入,这三者有何区别和联系?
- 我为何说KISS、YAGNI原则看似简单,却经常被用错?
- 重复的代码就一定违背DRY吗?如何提高代码的复用性?
- 如何用迪米特法则(LOD)实现“高内聚、松耦合”?
- 重构
- 通过一段ID生成器代码,学习如何发现代码质量问题
- 手把手带你将ID生成器代码从“能用”重构为“好用”
- 程序出错该返回啥?NULL、异常、错误码、空对象?
- 重构ID生成器项目中各函数的异常处理代码
- 运用学过的设计原则和思想完善之前讲的性能计数器项目
概述
从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
评判代码质量的好坏可以从多个维度来进行考量,而要写出高质量的代码则需要掌握一系列的方法和技巧。下面我将分别介绍这些维度以及如何具备写出高质量代码的能力,并探讨面向对象、设计原则、设计模式、编程规范、重构之间的关系。
评判代码质量的维度
-
可读性:
- 代码是否容易理解?
- 变量、函数命名是否恰当?
- 是否有足够的注释?
-
可维护性:
- 代码结构是否清晰?
- 是否遵循了良好的设计模式和原则?
- 修改代码时是否会引入新的错误?
-
可测试性:
- 代码是否易于编写单元测试?
- 是否有适当的边界条件测试?
-
可扩展性:
- 添加新功能时是否容易?
- 修改现有功能时是否会影响其他部分? <