高质量代码

做开发也有几年时间了,发现写的代码质量并没有上升,需求变更多,代码就越烂,只是实现了功能罢了,因此,打算整理下代码的规范,重构,质量方面的信息,加强学习。

目的是提高代码的清晰度和可重用性,使代码整洁,易读。

面向对象设计原则:
1.单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
2.开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
3.里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
4.依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
5.接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
6.迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。

1.重复代码(Duplicated Code)
出现的情况:
相同的代码结构重复出现不同地方时,我们可以将它们合而为一。
两个互为新工地的子类内包含相同的表达式

具体采用的方法:1.采用Extract Method提炼重复代码;2.如果两个毫不相关的类出现重复代码,可以考虑使用Extract Class将重复代码提炼到一个独立类中,然后在另一个类内使用这个新类。

  1. Long Method(过长函数)
    采用Extract Method把函数变小
    Introduce Parameter Object (引入参数对象)和 Preserve Whole Object 则可以将过长的参数列表变得更简洁。

3 Large Class(过大的类)
可以使用Extract Class将几个变量一起提炼至新类内,提炼时应该选择类内彼此相关的变量将它们放在一起。如果这个组件适合作为一个子类,也可以使用Extract Subclass。

4.Long Parameter List(过长参数列)
引入参数对象来代替

5.Divergent Change(发散式变化)
如果某个类经常因为不同的原因在不同的方向上发生变化,当需要修改代码时,我们希望能够跳到系统的某一点,只在该处做修改。
针对某一外界变化的所有修改,都至应该发生在单一类中,而这个新类内的所有内容都应该反应此变化。可以运用Extract Class将他们提炼到另一个类中。

6 Shotgun Surgery (散弹式修改)
如果每遇到某种变化,你都必须在许多不同的类内做出许多小修改,此即为Shotgun Surgery。
可以使用Move Method 和 Move Field把所有需要修改的代码放进同一个类内。

7.多次操作数据库使用批量操作
如果多次操作数据库的表做插入,删除,更新操作,应该使用批量操作提高性能。

写完代码后,过半天再重新查看写的或修改的代码(根据需求或功能),会发现之前没有发现的bug。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值