Atitit.软件开发的几大规则,法则,与原则Principle  v3

1.1. 修改历史2
2. 设计模式六大原则2
2.1. 设计模式六大原则(1):单一职责原则2
2.2. 设计模式六大原则(2):里氏替换原则2
2.3. 设计模式六大原则(3):依赖倒置原则2
2.4. 设计模式六大原则(4):接口隔离原则2
2.5. 设计模式六大原则(5):迪米特法则2
2.6. 设计模式六大原则(6):开闭原则2
3. S.O.L.I.D原则(oo fp)3
3.1. Single Responsibility Principle (SRP)–职责单一原则3
3.2. Open/Closed Principle (OCP)–开闭原则3
3.3. Liskov substitution principle (LSP)–里氏代换原则3
3.4. Interface Segregation Principle (ISP)–接口隔离原则3
3.5. Dependency Inversion Principle(DIP)–依赖倒置原则3
4. Dky法则 dry kiss yagni3
5. Other原则4
5.1. 可读性优先原则4
5.2. 拥抱变化原则  扩展性4
5.3.  :迪米特法则最少知识原则”(Principle of Least Knowledge)4
5.4. 迪米特法则(Law?ofDemeter,?LOD)4
5.5. Don’t Repeat Yourself(DRY)4
5.6. Keep It Simple, Stupid (KISS)4
5.7. Program to an interface, not an implementation4
5.8. You Ain’t Gonna Need It(YAGNI)4
5.9. 最小惊讶原则 遵守标准约定注释说什么代码就做什么5
5.10. 最小化耦合原则与最大内聚5
5.11. 隐藏实现细节原则5
5.12. 避免过早优化原则5
5.13. 得墨忒耳定律5
5.14. Common Closure Principle(CCP)–共同封闭原则5
5.15. Common Reuse Principle (CRP)–共同重用原则5
5.16. Hollywood Principle–好莱坞原则5
5.17. High Cohesion & Low/Loose coupling & –高内聚,低耦合6
5.18. Convention over Configuration(CoC)–惯例优于配置原则 惯例优先原则6
5.19. Acyclic Dependencies Principle (ADP)–无环依赖原则6
5.20. Postel's law伯斯塔尔法则  后向兼容性设计6
5.21. 软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。6
5.22. 首先为人类设计,其次为机器设计。6
5.23. 抽象原则6
6. 《编程法则》二十一条6
7. Recy7
7.1. Command-Query Separation (CQS)–命令-查询分离原则7
7.2. Separation of Concerns (SoC)–关注点分离7
7.3. Design by Contract (DbC)–契约式设计7
8. 参考7

1.1.修改历史
V3 调整栏目 。Add Dky法则 增加了一些原则,删除了一些模式放入recy
2.设计模式六大原则
2.1.设计模式六大原则(1):单一职责原则
2.2.设计模式六大原则(2):里氏替换原则
2.3.设计模式六大原则(3):依赖倒置原则
2.4.设计模式六大原则(4):接口隔离原则
2.5.设计模式六大原则(5):迪米特法则
最少知识原则”(Principle of Least Knowledge)
  
2.6.设计模式六大原则(6):开闭原则
  
  
作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/

3.S.O.L.I.D原则(oo fp)
一般来说这是面向对象的五大设计原则,但是,我觉得这些原则可适用于所有的软件开发。
3.1.Single Responsibility Principle (SRP)–职责单一原则
3.2.Open/Closed Principle (OCP)–开闭原则
3.3.Liskov substitution principle (LSP)–里氏代换原则
3.4.Interface Segregation Principle (ISP)–接口隔离原则
3.5.Dependency Inversion Principle(DIP)–依赖倒置原则
4.Dky法则 dry kiss yagni 

5.Other原则
5.1.可读性优先原则
代码应该尽可能地易于阅读和理解
5.2.拥抱变化原则  扩展性
这是Kent Beck写的一本书的副标题,也被认为是极端编程和通用敏捷方法的原则。许多其他原则都基于这个理念:你应该期待和欢迎变化。事实上,很多古老的软件工程法则,例如最小化耦合原则,就是和让代码变得更容易改变是直接相关的。无论你是不是一个极端编程的实践者,这种写代码的方法真的很有意义。

5.3. :迪米特法则最少知识原则”(Principle of Least Knowledge)
  5.合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过这些向对象的委派达到复用已有功能的目的.这个设计原则有另一个简短的表述:要尽量使用合成/聚合,尽量不要使用继承.
5.4.迪米特法则(Law?ofDemeter,?LOD)
5.5.Don’t Repeat Yourself(DRY)
5.6.Keep It Simple, Stupid (KISS)
5.7.Program to an interface, not an implementation
5.8.You Ain’t Gonna Need It(YAGNI)
这个原则简而言之为——只考虑和设计必须的功能,避免过度设计。只实现目前需要的功能,在以后您需要更多功能时,可以再进行添加。
5.9.最小惊讶原则 遵守标准约定注释说什么代码就做什么
5.10.最小化耦合原则与最大内聚
5.11.隐藏实现细节原则
5.12.避免过早优化原则
5.13.得墨忒耳定律
代码组件应该只和它们的直接关系(如,继承的类,包含的对象,通过参数传递的对象等)沟通

5.14.Common Closure Principle(CCP)–共同封闭原则
5.15.Common Reuse Principle (CRP)–共同重用原则
5.16.Hollywood Principle–好莱坞原则
好莱坞原则就是一句话——“don’t call us,we’ll call you.”。意思是,好莱坞的经纪人们不希望你去联系他们,而是他们会在需要的时候来联系你。也就是说,所有的组件都是被动的,所有的组件初始化和调用都 由容器负责。组件处在一个容器当中,由容器负责管理。
单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:
?1.不创建对象,而是描述创建对象的方式。
?2.在代码中,对象与服务没有直接联系,而是容器负责将这些联系在一起。
5.17.High Cohesion & Low/Loose coupling & –高内聚,低耦合
5.18.Convention over Configuration(CoC)–惯例优于配置原则 惯例优先原则
5.19.Acyclic Dependencies Principle (ADP)–无环依赖原则
5.20.Postel's law伯斯塔尔法则  后向兼容性设计 
伯斯塔尔法则(Postel's law)特别适用:
Be conservative in what you send, be liberal in what you accept.
发送时要保守,接收时要开放。

5.21.软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。
5.22.首先为人类设计,其次为机器设计。
   容易让用户理解更重要。相比 让机器理解(解析)
5.23.抽象原则
6.《编程法则》二十一条
《编程法则》二十一条
7.Recy

7.1.Command-Query Separation (CQS)–命令-查询分离原则
查询:当一个方法返回一个值来回应一个问题的时候,它就具有查询的性质;
命令:当一个方法要改变对象的状态的时候,它就具有命令的性质;
7.2.Separation of Concerns (SoC)–关注点分离
7.3.Design by Contract (DbC)–契约式设计

8.参考
软件设计的七大原则 - On the way - 博客园.html
一些软件设计原则 - 博客 - 伯乐在线.html
一些软件设计原则 - 博客 - 伯乐在线.html

优秀程序员的18大法则 - 程序员 - IT之家.htm

作者::?绰号:老哇的爪子claw of Eagle?偶像破坏者Iconoclast image-smasher
捕鸟王"Bird?Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender?of?the?Faith. 卡拉卡拉红斗篷 Caracalla red cloak
简称:: Emir Attilax?Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar?bin Mahmud bin  attila bin Solomon bin adam Al?Rapanui?
埃米尔 阿提拉克斯 阿克巴 本 马哈茂德?本 阿提拉 本 所罗门 本亚当? 阿尔?拉帕努伊?? 
常用名:艾提拉(艾龙), ??EMAIL:1466519819@qq.com

头衔:uke总部o2o负责人,全球网格化项目创始人,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
,Uke部落首席大酋长,
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
奶牛科技cto ,uke 首席cto 
uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人 
 Uke软件标准化协会理事长理事长 uke终身教育学校副校长 
Uke 数据库与存储标准化协会副会长 uke出版社编辑总编
Uke医院方面的创始人

转载请注明来源:attilax的专栏  ?http://www.cnblogs.com/attilax/
--Atiend

Atitit.软件开发的几大规则,法则,与原则Principle v3的更多相关文章

  1. Atitit.软件开发的几大规则,法则,与原则。。。attilax总结

    Atitit.软件开发的几大规则,法则,与原则... 1. 设计模式六大原则 2 1.1. 设计模式六大原则(1):单一职责原则 2 1.2. 设计模式六大原则(2):里氏替换原则 2 1.3. 设计 ...

  2. Atitit.软件开发的几大规则,法则,与原则p821.doc

    Atitit.软件开发的几大规则,法则,与原则p821.doc 1. 设计模式六大原则2 1.1. 设计模式六大原则(1):单一职责原则2 1.2. 设计模式六大原则(2):里氏替换原则2 1.3.  ...

  3. Atitit.软件开发的三层结构isv金字塔模型

    Atitit.软件开发的三层结构isv金字塔模型 第一层,Implements 层,着重与功能的实现.. 第二次,spec层,理论层,设计规范,接口,等.流程.方法论 顶层,val层,价值观层,原则, ...

  4. Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义

    Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...

  5. Atitit.软件开发提升稳定性总结

    Atitit.软件开发提升稳定性总结 #----影响稳定性几个类别 3 1. 资源和内存泄漏溢出 3 2. 数据库/文件死锁 3 3. 类库冲突 3 4. 热更新热部署(业务可用性 3 5. 程序崩溃 ...

  6. atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform

    atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. ...

  7. Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode

    Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 不个网页title保存成个个文件的时候儿有无效字符的问题... 通常两个处理方式 ...

  8. Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php

    Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php 1. RFC2396标准 including HTML 4.01 section  ...

  9. atitit.软件开发概念--过滤和投影 数据操作

    atitit.软件开发概念--过滤和投影 数据操作 投影的本质及扩展 物体在太阳光的照射下形成的影子(简称日影)就是平行投影.日影的方向可以反映时间 投影还比喻此物通过彼物表现出来的迹象. 作者::老 ...

随机推荐

  1. 域名解析服务查询工具dnstracer

    域名解析服务查询工具dnstracer   在访问网站过程中,当用户输入网址后,通常是先解析域名,获取该网站的IP地址.然后,根据IP地址访问对应的网站服务器.所以,域名解析服务器保证域名指向正确的网 ...

  2. iOS笔记———数据存储

    应用沙盒:应用文件系统的根目录,每个应用都有独自的沙盒相互:在xcode中可以用NSHomeDirectory()函数,打印当前应用的沙盒根路径. 应用程序包:包含了所有资源文件和执行文件; * Do ...

  3. c++单例模式为什么不在析构函数中释放静态的单例对象(转)

    需要清楚一下几点:   1.单例中的 new 的对象需要delete释放.   2.delete释放对象的时候才会调用对象的析构函数.   3.如果在析构函数里调用delete,那么程序结束时,根本进 ...

  4. 初步了解CPU

    了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...

  5. js学习笔记之标准库

    在全局函数中,this等于window  在函数被作为某个对象的方法调用时,this等于那个对象. 数组的函数: 检测:Array.isArray() 转换:toString(),toLocalStr ...

  6. 从源代码构建 Go 开发环境

    从源代码构建 Go 开发环境 Go 1.5 之前的版本 安装C 语言开发环境 在Go 1.5 之前的版本(比如 1.3.1.4),都会部分的依赖 C 语言的工具链,所以如果你有C 语言的开发环境,就可 ...

  7. js获取浏览器高度

    常用: JS 获取浏览器窗口大小 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 获取窗口宽度 if (window.innerWidth) winWidth = ...

  8. Python使用总结二

    近来因为工作需要,用Python比较多,写得多了,收获也多.借此记录总结一下,方便以后反思. 一.IDE的选择 1.notepad++加上cmd窗口 前些时候写python脚本都用notepad++编 ...

  9. es查询命令备份(只需要网页9200/_plugin/head/就可以访问)

    本文只是写一些常用es命令,这里不用任何客户端,只用 9200/_plugin/head/ 那个端口网页就可以,然后是复合查询. 注意es其实一个idnex只能有一个type,如果一个index做了多 ...

  10. MYSQL 5.0 USING BTREE 错误

    今天遇到个错误,导入数据库的时候报错,最后发现是php版本的问题导致包含 KEY `uniacid` (`uniacid`) USING BTREE 的SQL命令报错 5.1之前的写法: KEY `u ...