好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。 我不要自我重复 —  这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句,   函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象。

提炼原则 — 跟“不要自我重复原则”相关,这一原则是说“程序中任何一段具有功能性的代码在源代码文件中应该唯一的存在。”

保持简单 — 简单化(避免复杂)永远都应该是你的头等目标。简单的程序让你写起来容易,产生的bug更少,更容易维护修改。

不要开发你目前用不到的功能 — 除非你真正需要用到它,否则不要轻易加上那些乱七八糟用不到的功能。

用最简单的方法让程序跑起来 — 在开发时有个非常好的问题你需要问问自己,“怎样才能最简单的让程序跑起来?”这能帮助我们在设计时让程序保持简单。

不要让我动脑子 — 这实际上是Steve Krug 关于web界面操作的一本书的书名,但也适用于编程。主旨是,程序代码应该让人们花最小的努力就能读懂和理解。如果一段程序对于阅读者来说需要花费太多的努力才能理解,那它很可能需要进一步简化。

开放/封闭原则 — 程序里的实体项(类,模块,函数等)应该对扩展行为开放,对修改行为关闭。换句话说,不要写允许别人修改的类,应该写能让人们扩展的类。

为维护者写程序 —  任何值得你编写的程序在将来都是值得你去维护的,也许由你维护,也许由他人。在将来,当你不得不维护这些程序时,你对这些代码的记忆会基本上跟一个陌生人   一样,所以,你最好还是当成一直在给别人写程序。一个有助于你记住这个原则的办法是“写程序时时刻记着,这个将来要维护你写的程序的人是一个有严重暴力倾向,并且知道你住在哪里的精神变态者”。

最少意外原则 — 最少意外原则通常是使用在用户界面设计上,但这个原则同样适用于编写程序。程序代码应尽可能的不要让阅读者感到意外。也就是说应该遵循编码规范和常见习惯,按照公认的习惯方式进行组织和命名,不符常规的编程动作应该尽可能的避免。

单一职责原则 — 一个代码组件(例如类或函数)应该只执行单一的预设的任务。

最小化耦合关系 — 一个代码片段(代码块,函数,类等)应该最小化它对其它代码的依赖。这个目标通过尽可能少的使用共享变量来实现。“低耦合是一个计算机系统结构合理、设计优秀的标志,把它与高聚合特征联合起来,会对可读性和可维护性等重要目标的实现具有重要的意义。”

最大化内聚性 — 具有相似功能的代码应该放在同一个代码组件里。

隐藏实现细节 — 隐藏实现细节能最小化你在修改程序组件时产生的对那些使用这个组件的其它程序模块的影响。

笛米特法则(Law of Demeter) — 程序组件应该只跟它的直系亲属有关系(例如继承类,内包含的对象,通过参数入口传入的对象等。)

避免过早优化 —  只有当你的程序没有其它问题,只是比你预期的要慢时,你才能去考虑优化工作。只有当其它工作都做完后,你才能考虑优化问题,而且你只应该依据经验做法来优  化。“对于小幅度的性能改进都不该考虑,要优化就应该是97%的性能提升:过早优化是一切罪恶的根源”—Donald Knuth。

代码复用 — 这不是非常核心的原则,但它跟其它原则一样非常有价值。代码复用能提高程序的可靠性,节省你的开发时间。

职责分离 — 不同领域的功能应该由完全不同的代码模块来管理,尽量减少这样的模块之间的重叠。

拥抱变化 — 这是Kent  Beck的一本书的副标题,它也是极限编程和敏捷开发方法的基本信条之一。很多的其它原则都基于此观念:面对变化,欢迎变化。事实上,一些经典的软件工程  原则,例如最小化耦合,就是为了让程序更容易面对变化。不论你是否采用了极限编程方法,这个原则对你的程序开发都有重要意义。

转载于:https://blog.51cto.com/penseestroller/642226

每个程序员都必须遵守的编程原则相关推荐

  1. 所有程序员都应该遵守的11条规则

    我是一个倾向于生活在规则下的人. 现在,这些规则大部分是我本人为自己设立的,但它们依然是规则. 我发现为自己创建规则可以让我过得更好,因为这样做可以提前决定一些事情,而不是要在匆忙中做出所有的决定. ...

  2. 2022程序员都推荐的算法编程课程终于来了!新手从入门到面试考点全覆盖,学到就是赚到!...

    还在自学算法&编程像个无头苍蝇一样没有头绪?看完这篇文章帮你解决问题! (❗干货警告:文末附2022大厂最新面试真题~) 程序员作为一个高薪行业已经明显出现"内卷"情况了! ...

  3. 一流程序员都有哪些高效编程习惯?

    是不是感觉自入行以来,每天都在边学边工作,但是学习的速度还是跟不上技术的发展速度?以前端为例,曾经前端还是 jQuery 的天下,但没过多久,jQuery的"替代者"就出现了,很多 ...

  4. 常用python编程软件-学习编程语言常用的10个工具、库——每个程序员都应该知道...

    原标题:学习编程语言常用的10个工具.库--每个程序员都应该知道 每个行业都有自己的工具,软件开发也没有什么不同.一个优秀的程序员应该比其他程序员更了解他的工具,而且还可以使用比普通工具更强大和更高级 ...

  5. 程序员应该遵守的编程原则

    为什么80%的码农都做不了架构师?>>>    好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系.下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些 ...

  6. 程序员的年龄越大编程能力越弱???原来我们都理解错了

    大多数人都说程序员是低调多金的代表,但是一旦年龄突破30岁,就容易陷入各种被嫌弃中,无法逃脱三十五岁定律. 这让许多已到中年的程序员感觉忽然头上悬了几把剑. 一位74岁的数据科学家Gene D'Ang ...

  7. “编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!

    01 从未得到过重视的问题 一流程序员学数学,二流程序员学算法,低端看高端就是黑魔法. 可能有人以为这就是个段子,但有过工作经验的都知道,这其实就是程序员的真实写照! 想一想,我们学习.求职.工作的场 ...

  8. “编程能力差,90% 输在了数学上!”CTO:多数程序员都是瞎努力!

    01 从未得到过重视的问题 一流程序员学数学,二流程序员学算法,低端看高端就是黑魔法. 可能有人以为这就是个段子,但有过工作经验的都知道,这其实就是程序员的真实写照! 想一想,我们学习.求职.工作的场 ...

  9. 10句编程箴言 每个程序员都应该知道

    导读:原文作者Kevin Pang在kevinwilliampang.com发表一篇<10 Programming Proverbs Every Developer Should Know> ...

最新文章

  1. BiB:王秀杰/裴小兵合作开发单细胞组学细胞标记基因鉴定算法COSG
  2. python使用符号 表示单行注释-Pyhton 单行、多行注释符号使用方法及规范
  3. Symbian和C++ SDK开发入门之部署
  4. python中sys模块是什么意思_python之sys模块详解
  5. python中ndarray对象实例化_Python —— 实例化ndarray对象
  6. 工具的使用——vs2013(三)
  7. 高通 SPI驱动笔记
  8. 虚拟机修改默认SSH端口号为10022
  9. 项目系统架构-微服务框架
  10. 微信小程序 分包预加载
  11. 取消超时订单及延迟处理方案
  12. conda错误this environment is insistent,please check the package plan carefully
  13. mysql可重复读和幻读的理解
  14. 开源社区普遍存在的几个观点之我见(1)开源的价值在哪里和(2)开源是不是商业...
  15. 20201214c列出最简真分数序列
  16. 环形缓冲区RingBuff的代码实现
  17. STM32F207VET+DP83848PHY驱动移植的笔记
  18. Linux系统里如何彻底的清空终端屏幕?
  19. Invista跟销售的面试
  20. 绘制炫酷逼真的三维地形图

热门文章

  1. 接受许可协议 将禁用_知识产权小知识|知识产权许可
  2. 笔记本电脑linux系统下载,给笔记本电脑装Linux系统
  3. 判断两个对象是否相等java_判断两个对象的内容是否相等
  4. 【研发管理】结构化流程框架
  5. 【大数据】朴素的数据价值观
  6. java.lang.OutOfMemoryError​异常解决方法
  7. 2017年6月份学习总结,读书《5个高效工作习惯,让你跟「瞎忙」划清界限》
  8. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
  9. 怎样使用fastJson发送数组格式的Json数据
  10. SSM格式化导出报表时间的格式