- 开篇词
- 设计模式学习导读
2.1 为什么说每个程序员都要尽早地学习并掌握设计模式相关知识。
2.2 从哪些维度评价代码质量的好坏?如何具备写出高质量代码的能力?
2.2.1 可维护性(maintainability)
代码的可维护性是由很多因素协同作用的结果。代码的可读性好、简洁、可扩展性好,就会使得代码易维护;相反,就会使得代码不易维护。
更细化地讲,如果代码分层清晰、模块化好、高内聚低耦合、遵从基于接口而非实现编程的设计原则等等,那就可能意味着代码易维护。
除此之外,代码的易维护性还跟项目代码量的多少、业务的复杂程度、利用到的技术的复杂程度、文档是否全面、团队成员的开发水平等诸多因素有关。
2.2.2 可读性(readability)
我们需要看代码是否符合编码规范、命名是否达意、注释是否详尽、函数是否长短合适、模块划分是否清晰、是否符合高内聚低耦合等等。
2.2.3 可扩展性(extensibility)
代码的可扩展性表示,我们在不修改或少量修改原有代码的情况下,通过扩展的方式添加新的功能代码。
说直白点就是,代码预留了一些功能扩展点,你可以把新功能代码,直接插到扩展点上,而不需要因为要添加一个功能而大动干戈,改动大量的原始代码。
“对修改关闭,对扩展开放”
2.2.4 灵活性(flexibility)
当我们添加一个新的功能代码的时候,原有的代码已经预留好了扩展点,我们不需要修改原有的代码,只要在扩展点上添加新的代码即可。代码易扩展。
当我们要实现一个功能的时候,发现原有代码中,已经抽象出了很多底层可以复用的模块、类等代码,我们可以拿来直接使用。代码易复用。
当我们使用某组接口的时候,这组接口可以应对各种使用场景,满足各种不同的需求。接口设计得灵活。
如果一段代码易扩展、易复用或者易用,我们都可以称这段代码写得比较灵活。
2.2.5 简洁性(simplicity)
KISS原则:“Keep It Simple,Stupid”。
2.2.6 可复用性(reusability)
代码的可复用性可以简单地理解为,尽量减少重复代码的编写,复用已有的代码。
当讲到面向对象特性的时候,我们会讲到继承、多态存在的目的之一,就是为了提高代码的可复用性;
当讲到设计原则的时候,我们会讲到单一职责原则也跟代码的可复用性相关;
当讲到重构技巧的时候,我们会讲到解耦、高内聚、模块化等都能提高代码的可复用性。
代码可复用性跟DRY(Don’t Repeat Yourself)这条设计原则的关系挺紧密的。
2.2.7 可测试性(testability)
代码可测试性的好坏,能从侧面上非常准确地反应代码质量的好坏。代码的可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题。 - 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编码实现的基础。
设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。
设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提高代码的可扩展性。从抽象程度上来讲,设计原则比设计模式更抽象。设计模式更加具体、更加可执行。
编程规范主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式,更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础主要就是编程规范。
设计模式学习导读
最新推荐文章于 2024-08-16 15:42:59 发布