编码的6项准则
回帖数
0
阅读数
503
发表时间
2024-05-17 13:10:13
程序员进行编码,应当遵循以下6项准则:
KISS原则
原文,Keep It Simple, Stupid或Keep It Short and Simple,意为“保持代码简洁”。编写代码时,要优先保证代码的简洁性。简洁的代码结构清晰,易于验证,易于维护。而要实现简洁的代码,需要程序员将简洁视为编程的指南针,尽可能将多余的、过剩的要素从代码中剔除。这些内容可能包括:
- 为了使用新学会的技术而写出一些无谓的代码。
- 程序员觉得将来会用到的某些功能。
- 程序员擅自增加需求。
DRY原则
原文Don't Repeat Yourself,意为“不要重复”。造成代码重复有以下原因:- 将整个逻辑随便复制粘贴。
- 直接将常量写入代码。
YAGNI原则
原文You Aren't Going to Need It,意为“你不会需要它”。程序员应当只写所需最低限度的代码,不能以“可能会用到”为动机编写代码。程序员在编码时应当将“能用”这一点放到第一位,重点放在设计方案的单纯性,而不是通用性。很多时候,反而是简单方案的通用性更强。
PIE原则
原文Program Intently and Expressively,意为“编程要表达出意图”。程序员在编码时,一定要明确表达出代码的意图。因为代码是写给人看的,而不是写给编译器看的。所以,程序员要重视代码的可读性,而不是代码的易写性。
实际上读代码的次数远比写代码的次数多。代码可能只写一次,但此后会被人多次阅读。所以,写代码的时间远没有读代码的时间长。
因此,“读代码的效率”应优先于“写代码的效率”。只要代码的可读性能够提高,就算牺牲写代码的效率也是值得的。
而且“读代码的效率”同样优先于“执行代码的效率”,因为如果代码的可读性较高,提高代码的执行效率也会变得更容易一些。
SLAP
原文Single Level of Abstraction Principle,意为“单一抽象层次原则”。程序员在编码时,应当根据抽象级别对函数进行分割,并且将同一函数中的代码统一为同一个抽象级别。这样操作之后,代码就像优秀的图书那样:结构紧凑,各章节的分割与排版都很严谨,通读下来能获得最流畅的阅读体验。
为此,程序员需要将函数结构化。
OCP
原文Open-Closed Principle,意为“开闭原则”。程序员在编码时,应当确保代码的修改不相互影响,要让代码同时满足对扩展开放、对修改关闭这两个属性。前者表示代码的行为可以扩展,后者表示当对代码的行为进行扩展时,其他代码完全不会受到影响。
为此,程序员需要给代码添加接口。比如,在设计具有某项功能的模块时,如果让模块的使用者客户端直接调用模块的提供者服务器,就不满足OCP,因为在这种情况下如果想使用其他服务器,还需修改客户端。
而如果在客户端与服务器之间为模块的使用者设置“客户端接口”。这个客户端接口由服务器实现。这样一来,在添加拥有新功能的服务器时,只要该服务器上有客户端接口,客户端就可以直接调用新服务器,就不用再修改代码了。这样才满足OCP。
这正是:
编码也有六原则,优秀实践需记得。编码之时去实践,优秀代码看得见!
——————————————
参考书目:编程的原则:改善代码质量的101个方法,作者:上田勋,译者: 支鹏浩,出版社: 人民邮电出版社原文作者:王小双
原文链接:https://mp.weixin.qq.com/s/7OK3hMAx4fQ816OG7j2U9w
声明:本文系转载,版权属于原作者,如有疑问,请联系删除。
2024-05-20 10:14:54 路婕 最后编辑
![](https://cdn.easycorp.cn/web/data/contact/avatar/3645260865.png)
联系人
高丽亚/高级客户经理
![](/theme/default/default/images/main/icon-contact-split.png)
电话(微信)
17667930330
![](/theme/default/default/images/main/icon-contact-split.png)
QQ号码
3645260865
![](/theme/default/default/images/main/icon-contact-split.png)
联系邮箱
gaoliya@chandao.com
![](https://cdn.easycorp.cn/web/data/contact/17667930330.png)