The Principles of Good Programming
Artima最新文章
1.DRY(拧干代码不要有水分) 不要有重复代码,很多概念实际就是为此存在,比如loops function和classes等等,如果有重复,进行抽象。
http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
2.抽象原理,和DRY有关,代码中没一个重要的功能块都应该拧干抽象一下。
http://en.wikipedia.org/wiki/Abstraction_principle_(programming)
3.KISS(Keep it simple, stupid!),简化避免复杂是关键目标,简单代码花费时间短(代码写得少,脑子动得不见得少),少代码有较少BUGs和更易于修改。(banq:耦合都很高的代码有时很简单,但不易于修改)
http://en.wikipedia.org/wiki/KISS_principle
4.避免创造YAGNI,不要增加你不需要的功能:
http://en.wikipedia.org/wiki/YAGNI
5.做最简单只要能工作的设计,始终问自己,这样简单设计能够工作吗?
http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html
6.不要让我思考,代码应该易于理解。
http://www.sensible.com/dmmt.html
7.开闭原则 软件实体如classes类 模块和functions应该开放易于扩展,但是不允许修改,不要写其他人能够修改的类,而是写出人们能够扩展的类(banq:可用面向对象的继承 实现等方法扩展多个子类)。
http://en.wikipedia.org/wiki/Open_Closed_Principle
8.写代码要值得将来维护。
http://c2.com/cgi/wiki?CodeForTheMaintainer
8.做最少令人惊讶的事,代码易于理解,名称等各方面不要让人产生惊讶的副作用。
http://en.wikipedia.org/wiki/Single_responsibility_principle
9.最少耦合,代码(代码块,函数,类,等等)的任何部分,应尽量减少对其他地区的代码的依赖关系。这是通过使用尽可能少的共享变量 。“低耦合往往是一个结构完善的计算机系统的标志和一个好的设计,高凝聚力相结合,实现更高的可读性和可维护性的总体目标
http://en.wikipedia.org/wiki/Coupling_(computer_programming)
10.最大化凝聚性:相同功能代码应该在同样一个组件中。
http://en.wikipedia.org/wiki/Cohesion_(computer_science)
11.隐藏实现细节,隐藏实现细节,将允许改变执行代码组件,而最低限度影响的任何其他使用该组件的模块(实现细节怎么做是战术,做什么是方向战略)
http://en.wikipedia.org/wiki/Information_Hiding
12.迪米特Demeter法则 ,代码组件只应该和他们的直接关系联系(直系血缘关系),如他们继承的父类,包含的对象和参数传递的对象http://en.wikipedia.org/wiki/Law_of_Demeter
13.避免过早优化,除非你的代码比你预期慢,否则不要提早优化,过早优化是罪恶根源
http://en.wikipedia.org/wiki/Program_optimization
14.代码能够重用是好的,重用代码提高代码的可靠性,缩短开发时间。
http://en.wikipedia.org/wiki/Code_reuse
15.分散关注:不同功能区域,应该由不同代码和最小重叠的模块组成。(AOP是分散关注典型模式)
16.拥抱变化,这是一本Kent Beck书籍副标题,也被认为是极限编程和敏捷方法在一般的宗旨。最大限度地减少耦合使代码更容易改变。无论你是一个极端编程的医生,这种方法对于编写代码是有道理的
分享到:
相关推荐
通过学习《VC++6.0数据库编程大全》,读者不仅可以掌握数据库编程的基本原理,还能获得实际项目中的经验和技巧,包括如何设计数据库架构,如何处理大数据量,以及如何调试和优化数据库代码等。这本书籍对于希望深入...
通过这个教程,读者不仅可以学习到Java编程的基础,还能了解到计算机编程的基本原理,为进一步深入学习打下坚实的基础。由于Java的跨平台特性,学习Java也能为学习其他编程语言提供良好的起点。
在本项目中,我们关注的是一个使用C#编程语言实现的加强型音乐播放器。...通过深入研究和理解这个项目的源代码,开发者不仅可以掌握音乐播放器的实现原理,还能学习到如何在实际项目中运用这些技术。
6. **软件工程**:代码管理、版本控制(如Git)、项目文档编写,以及良好的编程习惯。 7. **算法与数据结构**:尽管是嵌入式系统,但基础的算法和数据结构依然重要,如排序、搜索、图论等可能在解决问题时派上用场...
【JSP + JavaBean 循序渐进教程】 在Web开发中,JSP(JavaServer Pages)和JavaBean是两种非常关键的技术,它们共同构建...在实际开发中,养成良好的编程习惯,如充分利用JavaBean,将有助于提高代码质量和项目效率。
- **编程能力的重要性**:由于中学教育的差异,学生在进入大学之前可能缺乏编程基础,因此培养良好的编程能力尤为重要。 #### 三、本书编写背景与目的 - **作者背景**:本书作者从小就接触并自学了多种编程语言...
3. **编程语言与框架**:根据所操作系统的不同,可能需要学习不同的编程语言及其框架。例如,在Windows环境下,可以使用C#结合WPF框架来构建界面;而在Linux系统中,则可以通过GTK+或Qt等库来实现自定义登录界面。 ...
最后,文件还声明了原创内容的版权以及转载的注意事项,明确了作者对本站转载内容不承担责任的态度,体现了对知识产权的尊重。文档修订记录部分详细记录了教程的更新情况,显示了作者持续更新教程的承诺和努力。 总...
本文将详细介绍几种常用的滤波算法及其原理,并给出C语言实现的例子,帮助读者更好地理解和应用这些算法。 #### 二、滤波算法详解 ##### 1. 限幅滤波法(又称程序判断滤波法) **方法:** 基于经验值设定一个阈值...
- 编写程序代码,遵循良好的编程规范。 - 使用调试工具定位并解决问题。 - **测试验证** - 进行单元测试与系统测试。 - 确保功能正确性与稳定性。 **酷学玩Summer板的独特设计** - **实用性设计** - 小巧...
- **多角度思考**:对于书中提出的各种概念和技术,不仅要了解其表面含义,还要尝试从不同角度理解其背后的逻辑和原理。 - **广泛涉猎**:除了本书之外,还可以参考其他C++的专业工具书和资源,以获得更全面的理解和...
- 深入讲解面向对象编程的基本原理和实践技巧。 - 提供丰富的练习题和实例,帮助学生巩固所学知识。 #### 五、结语 总体来看,《易学C++》这本书旨在帮助初学者快速入门C++程序设计,并通过实践操作加深理解。...
【标题】:“内涵图制作工具源码”是...通过分析和学习这个“内涵图制作工具源码”,开发者不仅可以提升C#编程技能,还能深入了解图像处理的原理和技术,同时体验到软件开发的完整过程,从需求分析到实现、测试和发布。
### 易学C++电子版本知识点总结 #### 1. 版权声明与使用规定 ...它不仅涵盖了程序设计的基础理论,还提供了丰富的实践指导和案例分析,旨在帮助读者建立扎实的编程基础,为进一步的学习和发展打下良好的基石。
整个设计模式贯穿一个原理:面对接口编程,而不是面对实现.目标原则是:降低耦合,增强灵活性. 建筑和软件中模式之异同 CSDN 的透明特别推崇《建筑的永恒之道》,认为从中探寻到软件的永恒之道,并就"设计模式"写了专门...