`

史上最最佳软件开发实践指导【转】

 
阅读更多
 
阅读器

软件开发

每过一段时间,我都能读到一些好东西,它是如此的深刻见解,写的如此的清晰,如此的条理,我必须把它收录进我的个人“史上最佳”圣物集里。最近,我新收录了一篇,非常棒的一篇叫做《Best Practices for Scientific Computing》的文章,我希望每个来读本文的读者都找个时间读读它。我在这里列出它的要点,是要鼓励你去阅读完整的全文。写的真是非常好。

 

1.给人写程序,而不是给计算机

一个程序,对于阅读它的人来说,不应该要求读者一次性的在大脑里加载过多的背景/相关知识。

命名需要一贯、明确、有意义

代码风格和格式要统一、一致

软件开发中的各种工作都要分割成1小时左右的任务

 

2.重复性的工作自动化

让计算机去做重复性的工作

把最近使用过的命令存到一个文件里,以备复用

使用编译工具来自动化系统流程

 

3.用计算机做历史记录

用软件工具来自动跟踪计算机的工作

 

4.逐步改进

每次做一小步,及时获得反馈,及时纠正

 

5.使用版本控制

使用一个版本控制系统

所有由手工创建的东西都要放到版本控制系统里

 

6.不要重复自己(或他人)

系统中的每一段数据都要有一个权威的单一的存在

代码应该模块化复用,而不是考来粘去

复用代码,而不是重写代码

 

7.准备好对付错误的方法

在程序中增加断言,检查它们的各种操作

使用现成的单元测试框架

测试程序时借鉴所有的可用的经验

把bug做成测试用例

使用一个有代码指令的调试工具

 

8.只在软件能正确的工作后才可优化

使用监控工具找到瓶颈

尽可能的用高级语言写程序

 

9.文档里描述的应该是设计思路和目的,而不是技术细节

描述接口和原因,而不是实现

重构代码,而不是注释解释运行原理

引用其它程序时嵌入其它程序的文档

 

10.协作

代码合并前进行代码审查

当帮带新成员或解决特别诡异的问题时使用结对编程

我要额外提到的是这个:

11. 维护旧代码。

如果你还在犹豫不决是否去看那篇文章,那你先去看看它里面列出的引用67部关于计算机的著作和文章。正如我说的,这篇文章是“史上最佳”。

分享到:
评论

相关推荐

    史上最全的开发手册汇总

    《史上最全的开发手册汇总》是一份集合了众多开发资源的珍贵资料库,特别适合广大开发者,尤其是专注于Java开发的工程师。这份压缩包包含了20本详细的开发手册,旨在为编程人员提供全方位的指导和帮助,无论是初学者...

    SD大会精品讲座:够了,让我们实践吧(英文授课)

    - **未来愿景**:未来的软件开发过程将变得无形而无所不在,它将成为团队工作方式的一部分,但不再是显性的指导规则。 - **实践为核心**:在这个新范式中,实践成为了过程采纳、规划和执行的基本单位。 - **三个阵营...

    史上最全的前端资源汇总

    - **Jeff Atwood**:美国知名的技术博主,主要关注软件开发和用户体验设计。 - **阮一峰**:《黑客与画家》的译者,专注于Web技术和编程语言。 - **廖雪峰**:知名的Python教程作者,也提供了Git等其他工具的教学...

    史上最强全面解析SQLite

    ### 史上最强全面解析SQLite #### 使用SQLite编程的快速介绍 SQLite是一种轻量级的数据库,被广泛用于各种应用程序中。它具有嵌入式的特性,这意味着它不需要一个单独的服务器进程;相反,它可以被直接链接到应用...

    传智播客.Net培训精品就业班

    8. **软件工程与最佳实践**:涵盖版本控制、敏捷开发方法、代码审查、测试策略等,提升开发团队协作效率。 9. **面试技巧与职业规划**:提供就业指导,包括简历撰写、面试技巧、职业规划和市场分析,帮助学员顺利...

    硕士论文智能手机在symbianOSS60平台下的开发

    通过对Symbian OS S60平台下智能手机开发技术的详细介绍,我们可以看出,尽管Symbian OS现在已经不再是主流操作系统,但它在智能手机发展史上占据了重要的位置。对于开发者而言,掌握Symbian OS S60平台下的开发技术...

    国内几本好的Symbian书籍

    在探讨Symbian系统及其开发相关的知识时,我们不得不提到一系列在国内备受推崇的Symbian书籍,这些书籍为初学者及专业人士提供了...它们不仅是Symbian开发者的宝贵财富,也见证了移动操作系统发展史上一个重要的篇章。

    Android4.2平台实战开发

    标题明确指出了“Android4.2”版本,这是一款由Google发布的移动操作系统,属于Android系统发展史上的一个重要里程碑。相较于之前的版本,Android4.2在用户体验、性能优化以及开发者工具方面进行了多项升级,为移动...

    Android高级编程--源代码

     本书将指导你使用Androidl.0软件开发包来构建移动应用程序。在每章的讲解中,它会让你通过一系列示例项目逐步掌握Android中的各种新功能和技术,助你取得最圆满的学习效果。本书所介绍的各个应用实例简明扼要且极...

    CMMI1.2版

    CMMI1.2版于2006年发布,是CMMI发展史上的一个重要版本,旨在帮助组织改善其产品开发流程,提高产品质量和生产效率。 CMMI1.2版的全称是“CMMI for Development, Version 1.2”,它主要关注软件和系统开发过程的...

    信奥+数学+物理等资料集(550-561).rar

    7. "558、史上最全poj题目分类(159页).pdf":POJ是编程在线判题系统的简称,这份资料很可能包含了丰富的编程题目的分类和解析,对于提高算法和编程能力非常有帮助。 8. "555、中国新世纪四大工程介绍.pdf":可能...

    ISO C++ Standard (ISO14882) 2003

    总之,《ISO C++标准(ISO14882)2003》作为C++语言发展史上的一个重要里程碑,不仅为C++编程提供了清晰、一致的指导原则,而且通过标准化过程,促进了全球范围内C++程序员之间的交流与合作,推动了软件工程领域的...

    华为胶片系列1(系列共9份约600个文件300多M华为内部不可扩散文件)

    9. **华为笔试题大全(史上最齐全).doc** - 这可能是华为招聘过程中的面试题目集,涵盖各种技术问题和案例分析。 尽管上述信息提供了文件的大概内容,但深入的IT知识点讲解需要具体文件的内容来支撑,而这些内容并...

    关天led照明技术手册

    - **案例分析**:通过对典型LED驱动设计案例的分析,可以学习到实际应用中的最佳实践和技术细节。 - **选型指导**:根据不同应用场景的需求,提供LED驱动器的选择指南,帮助工程师快速找到最适合项目的驱动方案。 #...

    linux 1.0 源码

    Linux 1.0 源码是Linux操作系统发展史上的一个重要里程碑,它的发布标志着Linux从一个个人项目走向了成熟和开放源码社区的发展。在这个版本中,Linux内核已经足够稳定,可以支持多种硬件平台,并且引入了许多重要的...

Global site tag (gtag.js) - Google Analytics