`

每个程序员都必须遵守的编程原则

阅读更多

 

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

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

  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.cnbeta.com/articles/152090.htm

 

分享到:
评论

相关推荐

    每个程序员都必须遵守的编程原则单页版

    编程原则是程序员日常工作中不可或缺的指导方针,它们旨在提高代码质量、可维护性和团队协作效率。以下是对这些原则的详细解读: 1. **我不要自我重复(DRY原则)**:DRY代表"Don't Repeat Yourself",即避免重复的...

    程序员必须遵守的编程原则.docx

    ### 程序员必须遵守的编程原则 在软件开发领域,遵循良好的编程原则对于创建高效、可维护的代码至关重要。以下是对《程序员必须遵守的编程原则》文档中提到的关键原则的深入解析。 #### 1. 不要自我重复 (DRY - ...

    Java程序员应该了解的10个面向对象设计原则

    针对接口编程原则强调的是编程时应该依赖于抽象接口,而不是具体的实现细节。这样可以提高系统的灵活性和可扩展性。 **应用场景与实践:** - **依赖接口:** 在编写代码时尽量依赖于接口而不是具体类。 - **接口...

    高手谈做程序员的基本原则.doc

    总之,成为程序员高手的过程虽然充满了挑战,但遵循上述基本原则,持之以恒地努力,每一个程序员都有可能成长为技术领域的佼佼者。这不仅需要个人的不懈追求,也需要良好的学习环境和积极向上的氛围。通过不断学习和...

    嵌入式系统C语言编程需要遵守什么样的原则

    通常每个功能模块由一个对应的.c源文件和一个.h头文件组成。.h文件主要声明功能函数和全局变量,而这些函数和变量的定义则置于对应的.c文件中。这有助于清晰地组织代码,使得程序易于阅读和维护。此外,.h文件中不宜...

    java程序员编程规范

    2. **文件组织**:每个Java源文件应包含一个公共类或接口,私有类和接口可以与公共类放在同一个文件中,但公共类必须是文件中的第一个类。文件由段落构成,每个段落之间用空行分隔,避免过长的代码段,以提高可读性...

    程序员季度绩效考核表

    - **单元测试:**编写有效的单元测试用例,确保每个模块的功能正确性。 - **回归测试:**修复Bug后进行全面测试,避免引入新的问题。 - **持续集成:**采用自动化构建和测试流程,尽早发现并修复问题。 ### 三、Bug...

    208个高清ico图标,程序员必备的素材,欢迎大家下载

    在下载的压缩包中,有一个名为"Readme-说明.htm"的文件,这通常包含有关图标的详细信息,例如每个图标的大小、颜色模式、分辨率以及使用权限等。阅读这个文件是了解如何正确使用这些图标的关键,因为它可能涉及到...

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

    总之,每位程序员都应该投入时间去学习、实践,并遵循代码风格规范。优秀的代码风格是程序员职业素养的外在体现,也是实现高效团队协作的基础。随着个人经验的积累,对这些规则的深刻理解会逐渐转化为直觉和习惯,...

    程序员考试大纲

    总体而言,程序员考试大纲通过对计算机科学和软件工程领域知识的综合考核,确保每一位通过考试的程序员都具备了扎实的专业技能和理论基础。这对于个人职业生涯的规划,以及企业选拔合适的技术人才,都是一个极为有效...

    写好代码的是个秘诀 程序员开发宝典

    **正文** 《写好代码的是个秘诀:程序员开发宝典》是编程领域中一本非常有价值的指南,它专注于提升程序员的...通过深入理解和实践这些秘诀,每位程序员都可以逐步成长为代码的艺术家,创造出高效、优雅的软件系统。

    计算机编程之道(编程之道)

    8. **代码调试**:学会使用调试工具,定位并修复程序中的bug,是每个程序员必备的技能。 9. **性能优化**:理解CPU、内存和I/O的工作原理,学会分析和优化代码性能,以达到更高的系统效率。 10. **软件工程原则**...

    企业需要什么样的程序员,项目经理3年的总结

    10. **责任心与职业道德**:程序员的每一个代码决策都可能影响到整个项目,因此,责任心强,遵守职业道德,对代码负责,对用户负责,对企业负责,是每个程序员应具备的品质。 总的来说,企业需要的不仅仅是编程机器...

    面向接口编程详解——思想基础

    面向接口编程是一种编程范式,它是面向对象编程(OOP)的一个重要组成部分,而非独立的编程思想。...总的来说,面向接口编程是提升软件质量、可维护性和适应性的重要工具,是每个专业程序员应该掌握的技能。

    C++语言编程规范pdf,c++语言编程规范 华为,C,C++

    - 遵守线程安全编程原则,避免数据竞争。 - 使用互斥锁、条件变量等同步原语控制并发访问。 - 注意避免死锁和活锁,保证程序的正确执行。 11. **单元测试**: - 编写单元测试用例,确保代码功能的正确性。 - ...

    面向对象编程 规则

    这个原则要求程序员在设计程序时要有全局观念,考虑整个软件系统的架构和未来可能的扩展性,同时在编码时注重每一个小的细节,确保每一个函数、方法、类和模块的高效和精确。在大项目中,只有对细节有深入理解的...

    如何成为合格程序员

    - **编写单元测试**:为每个功能模块编写相应的单元测试,确保其正确无误。 - **持续集成**:将单元测试集成到持续集成流程中,每次提交代码后自动运行测试,确保代码质量。 #### 11. 不重复自己(DRY原则) DRY...

    编程开发规范,编程开发规范

    **编程开发规范** 编程开发规范是软件开发过程中的一项重要指导原则,它旨在提高代码质量、可读性、可维护性和团队协作效率。...每个程序员都应该了解并践行这些规范,以提升自己的编程技能和项目的整体质量。

    C语言编程规范

    【C语言编程规范】 在软件开发中,遵循一套良好的编程规范是至关重要的,尤其是在嵌入式系统中。...每个开发者都应将其视为提高专业素养的重要部分,不断学习和实践,以实现更高质量的嵌入式系统开发。

Global site tag (gtag.js) - Google Analytics