代码质量:
- 可维护性
- 正:在不去破坏原有的代码设计&不引入新的bug的前提下,能够快速的修改或者新增代码
- 反:在添加或者修改一些功能逻辑时,存在极大引入新bug的风险,并且需要花费的时间也很长
- 可读性
- 检查代码风格&变成规范
- 检查代码中存在坏味道,重复,过长之类的
- 可扩展性
- 不修改或少修改原有代码,通过扩展的方式添加新的功能代码,
- 开闭原则
- 对扩展开放,对修改关闭
- 灵活性
- 添加新代码,已有代码能够不受影响,不产生冲突,不出现排斥,在保证自身不遭到破坏的前提下灵活的接纳新代码
- 简洁性
- 使别人理解它所需的时间最小化
- 可复用性
- 尽量减少重复代码,复用已有代码 7.可测试性 单元测试
面向对象的思想是基础
设计原则SOLID
指导方针,提高可维护性和可服用性,增加软件的可扩展性和灵活性,提高效率,节约开发及维护成本
单一职责原则Single Responsibility Principle
设计粒度小、功能单一的类,根据实际的业务场景进行拆分
如何判断一个类的职责是否单一?
1.代码行数、属性、函数,是否过多
2.类依赖的其他的类过多
3.私有方法过多
4.类中的大量的方法总是操作类中的几个属性
开闭原则Open Close Principle
对扩展开放,对修改封闭。用抽象结构定义,用具体实现扩展细节
1.新老逻辑解耦,需求发生改变不会影响老业务的逻辑
2.改动成本最小,只需要追加新逻辑,不需要改老逻辑
3.提供代码的稳定性和可扩展性
里氏代换原则Liskov Substitution Principle
一个方法的参数是接口类型时,那么这个方法可以接收所有实现过这个接口的实现类,通过阅读接口方法名字就可知道含义,无需关心具体实现方式
接口分离原则Interface Segregation Principle
要为各个类建立它们需要的专用接口,而不要试图去简历一个很庞大的借口供所有依赖它的类去调用
依赖倒转原则Dependence Inversion Principle
细节具有多变性,而抽象层则相对稳定,因此以抽象为基础搭建起来的架构要比以细节为基础搭建起来的架构要稳定的多
依赖倒置:是一种通用设计原则,主要用来指导框架层面的设计
控制反转:它是一种框架设计常用的模式,不是具体方法,流程的控制权反转
依赖注入:控制反转的具体实现,一种具体的编码技巧
迪米特法则Last Knowledge Principle
多用中间人,不该有直接依赖关系的类,不要有依赖;有依赖关系的雷之间,尽量只依赖必要的接口
设计模式:是设计原则的具体实现,一套解决方案或者设计思路,大部分解决都是可扩展性问题
编程规范:解决代码可读性问题,更加偏重细节 《代码整洁之道》 《代码大全》 《编写可读性的艺术》
重构:在不改变代码的外部行为下而改原代码