阅读更多

46顶
8踩

编程语言

转载新闻 【外刊IT评论】软件编程21法则

2010-09-30 10:20 by 见习记者 songfantasy 评论(53) 有14750人浏览
任何一个有经验的程序员都知道,软件开发遵循着一些不成文的法则。然而,如果你不遵循这些法则也并不意味着会受到惩罚;相反,有时你还会获得意外的好处。

下面的就是软件编程中的21条法则:

   1. 任何程序一旦部署即显陈旧。
   2. 修改需求规范来适应程序比反过来做更容易。
   3. 一个程序如果很有用,那它注定要被改掉。
   4. 一个程序如果没用,那它一定会有很好的文档。
   5. 任何程序里都仅仅只有10%的代码会被执行到。
   6. 软件会一直膨胀到耗尽所有资源为止。
   7. 任何一个有点价值的程序里都会有至少一个bug。
   8. 原型完美的程度跟审视的人数成反比,反比值会随着涉及的资金数增大。
   9. 软件直到被变成产品运行至少6个月后,它最严重的问题才会被发现。
  10. 无法检测到的错误的形式无限多样,而能被检测到的正好相反,被定义了的十分有限。
  11. 修复一个错误所需要投入的努力会随着时间成指数级增加。
  12. 软件的复杂度会一直增加,直到超出维护这个程序的人的承受能力。
  13. 任何自己的程序,几个月不看,形同其他人写的。
  14. 任何一个小程序里面都有一个巨大的程序蠢蠢欲出。
  15. 编码开始的越早,花费的时间越长。
  16. 一个粗心的项目计划会让你多花3倍的时间去完成;一个细心的项目计划只会让你多花2倍的时间。
  17. 往大型项目里添加人手会使项目更延迟。
  18. 一个程序至少会完成90%,但永远完成不了超过95%。
  19. 如果你想麻烦被自动处理掉,你得到的是自动产生的麻烦。
  20. 开发一个傻瓜都会使用的软件,只有傻瓜愿意使用它。
  21. 用户不会真正的知道要在软件里做些什么,除非使用过。
来自: 外刊IT评论
46
8
评论 共 53 条 请登录后发表评论
13 楼 下载的爱 2010-09-30 23:24
说的有几分道理。
12 楼 rocwon 2010-09-30 20:46
encro 写道
rocwon 写道
很多“法则”都已经OUT了

请举例说明

您觉得下面这些玩意算是“法则”么?
4. 一个程序如果没用,那它一定会有很好的文档。
----这句鬼话有点逻辑性可言么?

5. 任何程序里都仅仅只有10%的代码会被执行到。
----如此绝对的定论,那意味着90%的代码都可以砍掉?

15. 编码开始的越早,花费的时间越长。
----这是典型的瀑布思维下的结论。现实是:编码开始得越晚,则可能花费的时间越长

17. 往大型项目里添加人手会使项目更延迟。
----Brooks的原话是这样说的吗?

18. 一个程序至少会完成90%,但永远完成不了超过95%。
----为什么永远完成不了95%?,为什么又是“至少”?

20. 开发一个傻瓜都会使用的软件,只有傻瓜愿意使用它。
----现在我们很多开发人员都太“聪明”了,开发出的软件连傻瓜都不愿意使用。
11 楼 huansinho 2010-09-30 20:33
  12. 软件的复杂度会一直增加,直到超出维护这个程序的人的承受能力。
泪流满面
10 楼 sleepan 2010-09-30 17:33
修改需求规范来适应程序比反过来做更容易,为了这个跟产品经理吵翻了
9 楼 shark863 2010-09-30 17:29
16. 一个粗心的项目计划会让你多花3倍的时间去完成;一个细心的项目计划只会让你多花2倍的时间。
8 楼 encro 2010-09-30 16:55
rocwon 写道
很多“法则”都已经OUT了

请举例说明
7 楼 andsofish 2010-09-30 13:38
plp12321 写道
任何程序里都仅仅只有10%的代码会被执行到。


不太理解


if \ else
try catch
6 楼 plp12321 2010-09-30 12:33
1、2、3、4、6都有深刻体会。
5 楼 plp12321 2010-09-30 12:32
任何程序里都仅仅只有10%的代码会被执行到。


不太理解
4 楼 Crazy_Boy 2010-09-30 11:08
有几条是我亲身体验过了...呵呵.
3 楼 Gorehowl 2010-09-30 11:04
color=red]15. 编码开始的越早,花费的时间越长。[[/color]
顶一个~
2 楼 rocwon 2010-09-30 11:00
很多“法则”都已经OUT了
1 楼 wwwcom 2010-09-30 10:41
呵呵,说的比较恰当啊

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • ic card 文件

    ic card dll文件 ic卡dll文件打包测试

  • 身份证读卡器读卡实例Delphi

    身份证读卡器读卡程序,内附接口说明,Delphi

  • 存储过程调用C#编写的DLL文件

    有时候,我们会遇到这样需求:存储过程要调用外部的动态链接库文件,来实现某个功能。网上很有多类似的文章,但描述不完整,在某些关键的地方,少了相应的补充,以至于那些例子都无法测试通过。 我把其中的一种思路整理出来: 1. 准备DLL文件 首先,你需要新建一个类库工程,工程名没有要求,随意取为Test。新建一个类文件,例如:复制  保存using System;namespace

  • 调用dcrf32.dll头文件,函数的作用说明

    我用的这个第三方设备需要初始化、蜂鸣、核对密码等!以下是C#的代码: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Text; using System.Runtime.InteropServices; /// /// DUKa 的摘要说明

  • 外刊IT评论:软件编程21法则

    下面的就是软件编程中的21条法则: 任何程序一旦部署即显陈旧。 修改需求规范来适应程序比反过来做更容易。 一个程序如果很有用,那它注定要被改掉。 一个程序如果没用,那它一定会有很好的文档。 ...

  • 软件编程21法则(转自外刊IT评论)

    下面的就是软件编程中的21条法则: <br />  1. 任何程序一旦部署即显陈旧。  2. 修改需求规范来适应程序比反过来做更容易。  3. 一个程序如果很有用,那它注定要被改掉。  4. 一...

  • Contact-less Smart Card Reader/Writer & Mifare One Card (1)

    Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處一. 開發環境簡介:   本文檔是以 Oracle Fors6i開發工具為基礎的

  • Contact-less Smart Card Reader/Writer & Mifare One Card (8)

     Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處續 http://www.csdn.net/Develop/read_arti

  • Contact-less Smart Card Reader/Writer & Mifare One Card (5)

    Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處續 http://www.csdn.net/Develop/read_article

  • Contact-less Smart Card Reader/Writer & Mifare One Card (3)

    Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處續 http://www.csdn.net/Develop/Read_artic

  • Contact-less Smart Card Reader/Writer & Mifare One Card (2)

    Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處續 http://www.csdn.net/Develop/read_article

  • Contact-less Smart Card Reader/Writer & Mifare One Card (6)

    Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處續http://www.csdn.net/Develop/read_article.

  • Contact-less Smart Card Reader/Writer & Mifare One Card (7)

    Contact-less Smart Card Reader & Mifare one Card 二次開發文檔Author: Dennis LanDate: 2003/12/17Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處續http://www.csdn.net/Develop/read_articl

  • 正交频分复用 (OFDM) 基础收发机Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

  • 通信工程勘察设计安全操作规程.docx

    通信工程勘察设计安全操作规程.docx

  • 【数据库技术】SQL入门与实战指南:从基础语法到应用场景的全面解析

    内容概要:本文是一篇面向初学者和技术爱好者的《SQL 入门与实战》指南,系统介绍了 SQL 的基本概念、功能及其应用场景。文章首先解释了 SQL 是一种用于操作关系型数据库的语言,能够执行数据的存储、查询、更新、删除以及表结构管理等操作。接着详细列举了基础语法,包括 SELECT、INSERT、UPDATE 和 DELETE 等语句的具体用法,并对常用的函数进行了分类说明,如聚合函数、字符串函数、时间函数等。此外,还深入探讨了多表连接、分组与聚合、子查询和窗口函数等进阶语法技巧。为了帮助读者更好地掌握 SQL,文中提供了从初级到高级的学习路线,并通过实际案例展示了 SQL 在后端 API 查询、数据报表分析、数据清洗与迁移等场景中的应用。最后简要比较了几种常见的数据库系统特性,强调了 SQL 在数据处理领域的重要性。 适合人群:适合初学者、实用派和技术爱好者,尤其是那些希望快速上手 SQL 并应用于实际工作的人员,如前端、后端、测试工程师、数据分析师和产品经理等。 使用场景及目标:①作为 SQL 学习入门资料,帮助读者理解 SQL 的基本概念和语法;②指导读者进行 SQL 编程实践,掌握数据查询、更新、插入、删除及表结构管理等操作;③为有经验的开发者提供进阶技巧,如多表连接、子查询、窗口函数等;④为从事数据相关工作的人员提供实用工具,提高工作效率。 其他说明:文章不仅涵盖了 SQL 的基础知识,还涉及到了一些高级主题,如事务、索引、视图、触发器等,并给出了进一步学习的书籍和在线资源推荐,鼓励读者通过持续学习来深化对 SQL 的理解和应用。

  • wps办公日常使用11111111

    wps办公日常使用11111111

  • 卡通小熊素材PPT模板.pptx

    卡通小熊素材PPT模板

  • 汽车电子:MATLAB_实现CAN总线通信协议分析与故障诊断.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!

Global site tag (gtag.js) - Google Analytics