优秀程序设计的18大原则

标签: 程序设计 原则 | 发表时间:2014-02-28 17:05 | 作者:mikzhang
出处:http://www.iteye.com

vai:  http://tech.it168.com/a2011/0801/1225/000001225688.shtml

 

        1.避免重复原则(DRY - Don’t repeat yourself)

  编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。

   2.抽象原则(Abstraction Principle )

  与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。

   3.简单原则(Keep It Simple and Stupid )

  简单是软件设计的目标,简单的代码占用时间少,漏洞少,并且易于修改。

   4.避免创建你不要的代码 Avoid Creating a YAGNI (You aren’t going to need it)

  除非你需要它,否则别创建新功能。

   5.尽可能做可运行的最简单的事(Do the simplest thing that could possibly work)

  尽可能做可运行的最简单的事。在编程中,一定要保持简单原则。作为一名程序员不断的反思“如何在工作中做到简化呢?”这将有助于在设计中保持简单的路径。

   6.别让我思考(Don’t make me think )

  这是Steve Krug一本书的标题,同时也和编程有关。所编写的代码一定要易于读易于理解,这样别人才会欣赏,也能够给你提出合理化的建议。相反,若是繁杂难解的程序,其他人总是会避而远之的。

   7.开闭原则(Open/Closed Principle)

  你所编写的软件实体(类、模块、函数等)最好是开源的,这样别人可以拓展开发。不过,对于你的代码,得限定别人不得修改。换句话说,别人可以基于你的代码进行拓展编写,但却不能修改你的代码。

   8.代码维护(Write Code for the Maintainer)

  一个优秀的代码,应当使本人或是他人在将来都能够对它继续编写或维护。代码维护时,或许本人会比较容易,但对他人却比较麻烦。因此你写的代码要尽可能保证他人能够容易维护。用书中原话说“如果一个维护者不再继续维护你的代码,很可能他就有想杀了你的冲动。”

   9.最小惊讶原则(Principle of least astonishment)

  最小惊讶原则通常是在用户界面方面引用,但同样适用于编写的代码。代码应该尽可能减少让读者惊喜。也就是说,你编写的代码只需按照项目的要求来编写。其他华丽的功能就不必了,以免弄巧成拙。

   10.单一责任原则(Single Responsibility Principle)

  某个代码的功能,应该保证只有单一的明确的执行任务。

   11.低耦合原则(Minimize Coupling)

  代码的任何一个部分应该减少对其他区域代码的依赖关系。尽量不要使用共享参数。低耦合往往是完美结构系统和优秀设计的标志。

   12.最大限度凝聚原则(Maximize Cohesion)

  相似的功能代码应尽量放在一个部分。

   13.隐藏实现细节(Hide Implementation Details)

  隐藏实现细节原则,当其他功能部分发生变化时,能够尽可能降低对其他组件的影响。

   14.迪米特法则又叫作最少知识原则(Law of Demeter)

  该代码只和与其有直接关系的部分连接。(比如:该部分继承的类,包含的对象,参数传递的对象等)。

   15.避免过早优化(Avoid Premature Optimization)

  除非你的代码运行的比你想像中的要慢,否则别去优化。假如你真的想优化,就必须先想好如何用数据证明,它的速度变快了。

  “过早的优化是一切罪恶的根源”——Donald Knuth

   16.代码重用原则(Code Reuse is Good)

  重用代码能提高代码的可读性,缩短开发时间。

   17.关注点分离(Separation of Concerns)

  不同领域的功能,应该由不同的代码和最小重迭的模块组成。

   18.拥抱改变(Embrace Change)

  这是Kent Beck一本书的标题,同时也被认为是极限编程和敏捷方法的宗旨。

  许多其他原则都是基于这个概念的,即你应该积极面对变化。事实上,一些较老的编程原则如最小化耦合原则都是为了使代码能够容易变化。无论你是否是个极限编程者,基于这个原则去编写代码会让你的工作变得更有意义。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [程序设计 原则] 推荐:

优秀程序设计的18大原则

- - 非技术 - ITeye博客
        1.避免重复原则(DRY - Don’t repeat yourself).   编程的最基本原则是避免重复. 在程序代码中总会有很多结构体,如循环、函数、类等等. 一旦你重复某个语句或概念,就会很容易形成一个抽象体.    2.抽象原则(Abstraction Principle ).

程序设计的一些基本原则

- - 编程语言 - ITeye博客
本文将对本人在程序设计方面的一些思考,逐步罗列在这里. note: 此类文章/书籍,多如牛毛. 对比它们,本文并不会出现什么新的概念、思路,都是人家说过的,总结过的. 如有侵权,请指出,我将给出引用. note: 它是我在工作中的一些问题/思考总结,附上一些实际的例子(经历过才更有感触). note::“想的太多,行动太少” 是大忌.

最隐晦的程序设计指引

- Sirius - Dev in Nightmare
    俗话说,程序员半年不学新东西,就变奥特曼(out man,过时之人)了. IT行业可以说是变化最快的行业,每年都有大量的新概念、新术语、新技术被创造出来,在多数人还在一头雾水时,“更好的”替代品又被创造出来.     想当年静态类型系统是王道,谁要是搞点运行时动态绑定、用点VB什么的,经常会被鄙视.

高性能LAMP程序设计

- Kevin - 超群.com的博客
周六分享的PPT,一些比较common的大杂烩,看不到slides的同学在这里查看.

炮轰老谭的<<C程序设计>>

- 世博 - 博客园-首页原创精华区
  本人不学无术, 生财无方, 下作无品, 见园里一小女初学C#的文章都能上评论头条, 实在眼红得不知所谓, 于是写下此随笔, 绝不敢效仿hax, 只为吸引眼球而已, 读者诸君就当看小丑跳梁好了.. #188楼2011-09-27 03:27 | 陈梓瀚(vczh)      . 为了免去翻阅旧评论的痛苦,“62楼”不辞辛苦复制一遍winter-cn给的地址,你们一定要看啊…….

并发程序设计详解

- - 企业架构 - ITeye博客
Java性能优化系列之三--并发程序设计详解. 线程安全 设计模式 多线程 并行计算 并发.   (1)、Future-Callable模式:FutureTask类实现了Runnable接口,可以作为单独的线程运行,其Run方法中通过Sync内部类调用Callable接口,并维护Callable接口的返回值.

程序设计的 Top 10 做与不做

- 凯 - 博客园新闻频道
  今天来和大家分享两个很不错的程序设计「做」与「不做」列表. 首先,是 Andres Taylor (安缀斯‧泰勒)写的「Top 10 Things Ten Years of Professional Software DevelopmentHas Taught Me」,翻成中文就是「十年程序设计经验教我的十件事情」.

【测试调查】你是程序员还是程序设计师?

- - 外刊IT评论
二十年前,顶尖的程序员能将一个完整的应用放到一个64KB大小的 .COM文件里. 这是他们对可怜的因特尔80386电脑在编程上进行的最大挖掘. 这是因为,二十年前,电脑昂贵而程序员便宜. 那种理念已经不再有人欣赏,因为如今的市场形势发生了完全的颠覆. 如今,计算机便宜而程序员昂贵. 这是一个“程序员为先”的年代,不再需要考虑计算机的能力和限制,程序员的因素放到了第一位.

Hadoop 高级程序设计(三)---自定义Partition和Combiner

- - CSDN博客云计算推荐文章
Hadoop提供了缺省的Partition来完成map的输出向reduce分发处理. 有时也需要自定义partition来将相同key值的数据分发到同一个reduce处理,为了减少map过程输出的中间结果键值对的数量,降低网络数据通信开销,用户也可以自定制combiner过程. 自定制Partition过程:.

网易前端云课堂,JavaScript程序设计:JS调试

- - CSDN博客推荐文章
本节主要通过一个加法器,介绍JS如何调试. 计算器
. . 1,一般调试JS,打印信息有如下三种:. a,用alert,缺点是每次都弹框. b,用console.log,这个数据量小还可以.