`
cooler1217
  • 浏览: 380121 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

程序员必须遵守的规则

阅读更多
好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。

我不要自我重复 — 这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句,函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象。
http://en.wikipedia.org/wiki/Don%27t_repeat_yourself

提炼原则 — 跟“不要自我重复原则”相关,这一原则是说“程序中任何一段具有功能性的代码在源代码文件中应该唯一的存在。”
http://en.wikipedia.org/wiki/Abstraction_principle_(programming)

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

不要开发你目前用不到的功能 — 除非你真正需要用到它,否则不要轻易加上那些乱七八糟用不到的功能。
http://en.wikipedia.org/wiki/YAGNI

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

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

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

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

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

单一职责原则 — 一个代码组件(例如类或函数)应该只执行单一的预设的任务。
http://en.wikipedia.org/wiki/Single_responsibility_principle

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

最大化内聚性 — 具有相似功能的代码应该放在同一个代码组件里。
http://en.wikipedia.org/wiki/Cohesion_(computer_science)

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

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

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

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

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

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


原文:http://www.aqee.net/principles-of-good-programming/
分享到:
评论

相关推荐

    程序员的离职申请书.docx

    在申请书中,程序员需要遵守职业道德,尊重公司的规则和规定,并且维护自己的职业名誉。这也表明了职业道德对程序员的重要性,它们是程序员职业发展的基石。 知识点5:职业发展策略 程序员的离职申请书也体现了...

    2018程序员考试大纲

    这要求考生必须熟练掌握进制转换、二进制、八进制、十六进制等数制间的转换方法,理解数据在计算机内部的存储和表示方式,包括原码、反码和补码的概念。同时,算术运算和逻辑运算作为计算机处理数据的基本手段,考生...

    程序员季度绩效考核表

    **定义:**考察程序员是否遵守既定的编码规则以及文档编写情况。 **关键知识点:** - **代码风格指南:**制定并遵守统一的代码风格指南,提高代码可读性和可维护性。 - **文档编写:**撰写清晰、准确的技术文档,...

    程序员考试大纲

    同时,基本的信息技术标准、安全性、法律法规知识以及信息技术在社会信息化中的应用认知,也是现代程序员必须掌握的技能,这有助于程序员在遵守规则的前提下发挥创新。 英语阅读能力对于程序员来说同样重要。由于...

    程序员合同样式.doc

    劳动纪律条款是合同样式中的重要组成部分,它规定了程序员必须遵守的法律法规、公司规章制度以及企业的劳动纪律。同时,对于员工的请假、旷工、迟到早退等行为,合同将设定相应的处理规则和惩罚措施。这有助于维护...

    程序员开发手册.doc

    - **应用阶段**:从代码编写初期直至后期维护阶段均需遵守本手册规定。 #### 3. 违规处理 - **检查方式**:可以通过自动化工具(如Microsoft.StyleCop)或人工审查(由部门主管或相关人员执行)的方式来检查是否...

    程序员之路———关于代码风格

    程序员之路,始于对代码风格的敬畏和遵守。良好的代码风格是优秀程序员的必备素质,它关乎个人代码的可维护性,也关乎团队合作的效率。 首先,代码行极限是代码风格中一个古老而重要的议题。80字符的限制起源于Unix...

    Linux程序员指南.pdf

    - **版权问题**: 大部分Linux libc包遵守GNU通用公共许可证(GPL),但某些特定文件可能遵循特殊版权规定。 - **商业版本限制**: 商业版本可能受到限制,不允许静态链接可执行程序,但对于动态链接可执行程序存在...

    Delphi 程序员代码编写标准指南.doc

    Delphi 程序员代码编写标准指南是 Delphi 程序员在编写代码时需要遵守的规范性文件。该指南旨在提高代码的可读性、可维护性和可重用性,确保 Delphi 程序员编写的代码符合业界标准。 一、序言 Delphi 程序员代码...

    【合同大全】软件开发程序员劳动合同【合同大全】.doc

    在合同执行过程中,双方应遵守约定的时间,并在合同到期前就是否续签或终止合同进行协商。 合同的第二部分是关于工作内容与地点的阐述。软件开发程序员的主要任务是编写、测试和维护软件产品,提供相关技术支持。...

    程序员必读

    在利用网络资源进行学习和交流的同时,必须严格遵守相关法律法规,尊重原创和版权,不能将资源用于非法目的。 5. 对于网络社区或论坛等交流平台的使用,应当遵循其规则和宗旨。使用过程中应保证信息安全和内容的...

    做好程序员的要求

    - **举例**:遵循统一的命名规则、注释规范等,撰写详尽的设计文档和用户手册。 #### 八、培养解决问题的能力 8. **培养解决问题的能力**:面对复杂多变的问题情境时,具备快速定位问题根源、寻找解决方案的能力...

    程序员述职报告_1.docx

    - 第一位程序员在进销存项目的开发中,经历了从财务模块的存货核算到整个财务治理模块的负责,这体现了他的技能和责任范围的扩大,以及对业务流程和规则的深入理解。 - 第二位程序员在入职初期参与了软件开发的...

    Linux程序员指南(pdf文档)

    程序员可以自由地修改和分发代码,但也需要遵守相应的开源许可证,如GNU Public License (GPL)。 通过深入学习这份《Linux程序员指南》,开发者能够掌握Linux系统的核心知识,提高在Linux环境下编程和系统管理的...

    C#程序员参考手册(pdf文件)

    本书是C#语言和在每个C#程序中都要用到的核心.net类库的一个综合参考资料。本书可以为成三个主要部分: 第一部分详细讨论了C#语言...第三总部是附录,讲述在C#中代表特殊含义的关键字,和C#编程应该遵守的命名规则。

    java程序员编程规范

    Java编程规范是Java程序员在编写代码时应当遵循的一系列规则和最佳实践,旨在提高代码的可读性、可维护性和团队协作效率。这些规范涵盖了文件命名、文件组织...作为一个专业的Java程序员,理解和遵守这些规范至关重要。

    PHP程序员面试的自我介绍.pdf,这是一份不错的文件

    * PHP 程序员需要拥有良好的职业道德和工作态度,能够服从管理、遵守规则,并且具有很强的职业荣誉感。 二、客户交流沟通能力 * PHP 程序员需要拥有良好的客户交流沟通能力,能够与客户和团队成员进行有效的沟通,...

    Linux程序员指南

    2. **内核的遵守规则:** - 内核开发者遵循POSIX标准,这些标准有时简化编程,有时也使编程复杂化。 - 用户程序的行为可能会因为内核版本的变化或新POSIX规则的实现而发生变化。 3. **内核编程资源推荐:** - ...

    有关程序员述职报告范文.docx

    \n\n- **工作流程规范**:强调了规则制定和遵守的重要性,避免工作随意性和个人主义,以提高效率和协作。\n\n- **员工激励与满意度**:保持员工的工作积极性和满意度,对于团队稳定性和项目成功至关重要。\n\n3. ...

Global site tag (gtag.js) - Google Analytics