尼曼的13条最低限度诫命的来源在哪里?

时间:2009-09-26 00:28:54

标签: language-agnostic history methodology

我有一个页面(第1页),日期为1989年2月2日,我的前任老板向我提出,概述了尼曼的13条最低限度的诫命。 (他认识到他们已经过时了,这使得它更像是一套考古学而非现代的指导方针。)如果你还没有看到它们,它们如下:

  1. 你应该充分评论你的代码,以便解释你的意图。男人不会单独用助记符来思考。
  2. 您应将数字常量等同于有意义的符号名称。说清楚,避免异教徒的图标。
  3. 您将描述您模块中的所有输入和输出。善待你的软件兄弟和sistren可能必须维护你的模块。
  4. 你应该充分描述你的修改。期待你的peeren成为读者是一种罪恶。无论如何,读心是一种罪。
  5. 你应该提供你的汇编代码的伪代码解释。确实,装配不是Cobol。
  6. 每个模块只有一个入口和一个出口点。有许多进入和退出点的人应该期望他们的身体发展相同。
  7. 在开发之前,你应该设计你的代码。确实,确实。
  8. 你要与你的peeren一起审查你的代码。祝福是温顺的,因为他们将继承目标代码。
  9. 您应记录您的设计,并向维护代码的所有人提供文档。实际上,拒绝的人会在地狱中永远调试操作系统。
  10. 你能接受有意义的批评他们的代码。如果你为自己的代码感到羞耻,那么你应该成为一名职业投手。
  11. 在将代码放入库控制之前,您应彻底(原文如此)测试您的代码。圣经中遗漏的一部分是上帝通过调试作为disel引擎控制器一部分的大型8096汇编语言程序来测试约伯的地方。整个事情在发布之前没有经过测试。更糟糕的是,Job必须使用英特尔工具。
  12. 您应尽可能避免使用全局数据结构。塔楼应该被命名为巴别塔,程序不应该。
  13. 当你的汇编程序员无法匹配最佳编译的二十世纪晚期代码的效率时,你应该使用高级语言。谨防那些认为装配总是比良好的编译器能够产生的效率(速度和尺寸)更高效的假神。你必须非常善于设计和编码才能真正利用汇编语言。
  14. 我已经在互联网上搜索了这些诫命或尼曼的诫命的来源,并且它一直在杀我试图找到更多关于这个以及他可能不得不说的任何其他内容。我唯一的另一个线索是,在左下方,有首字母“DEN” - 我假设N代表尼曼,但我没有别的东西来识别文本。所以,

    一个。谁是尼曼? (程序员?老师?顾问?公司的随机人员?)

    B中。这个页面是什么? (旧的节目指南?一些公司手册?当天有些BBS?)

    ℃。其余部分在哪里? (还有更多吗?还有什么?这是一个独立的东西吗?)

    在回应评论时,我的老板已经过去了,但在那之前,他在商业中工作了很长时间,灰胡子等等。根据论文的颜色,我很确定日期(1989年)大致是印刷日期。

3 个答案:

答案 0 :(得分:19)

这个男人很有可能Donald E. Niman

  • 在搜索Donald E. Niman时,您会得到几个结果:

    • 他是加利福尼亚州Rancho Cucamonga的Safetran系统公司的软件工程师
    • 他在BOINC活跃于1999年左右做SETI @ Home
    • 他在几个数学论坛上有一些活跃的帖子
    • 他在a site for collecting Soviet Calculators的留言簿中有一篇帖子(您可能需要谷歌缓存那个,因为它不会为我加载)
  • 搜索"Donald Niman"会显示:

这项研究确实看起来非常“跟踪者” - 但是,鉴于这些关于这个人的细节,他肯定会与那些写出一些“编程诫命”的人的角色相匹配。

他确实有一些你可以上网的联系点 - 你可以抓住他并找出他是不是真正的作者。此外,您可能能够通过他的Google个人资料页面判断他是否曾在1989年您的前任老板所在的城市居住过。

答案 1 :(得分:11)

我同意Nosredna的说法 - 我认为你的老板是从多个来源编写或拼凑的。

但我觉得鼓励改写其中一些:

  1. 您将编写无需评论即可阅读的代码。
  2. 您应在合理范围内将数字常量等同于有意义的符号名称。 x> ZERO不合理。
  3. (按原样)
  4. 您将使用源代码管理,而不是在源代码中放置修订注释。
  5. 除非你的名字是Steve Gibson,否则你不得写大会。
  6. 在适当的时候,你应该使用guard clauses和例外。
  7. 你应该设计你的代码,但TDD是设计的。
  8. (按原样)
  9. 你不能没有理由创建文档,也不允许文档过时。
  10. (按原样)
  11. 你必须确保你的代码编译并且你的单元测试存在并在将其放入源代码控制之前通过。可能会对那些打破构造的人施加沸腾。
  12. 您应尽可能避免使用全局数据结构。这包括单身人士。
  13. 如果没有剖析,认罪和自我鞭挞,你应该避免优化。

答案 2 :(得分:4)

Mark发现的Donald E. Niman是正确的。我应该知道,因为这是我。这是我在康涅狄格州哥伦布市的康明斯电子公司写的一篇22岁的东西。它有点过时了,从那时起我就学会了东西,所以应该采用众所周知的盐。 Donald E. Niman,亚利桑那州凤凰城。