language-agnostic - 尼曼的 13 条最低限度足够诫命的来源在哪里?

标签 language-agnostic history methodology

我有一页(第 1 页),日期为 1989 年 2 月 2 日,是我的前任老板给我的,概述了 Niman 的 13 条最低限度的编程戒律。 (他意识到它们已经过时了,这使得这更像是一部考古作品,而不是一套现代指南。)如果你还没有看过它们,它们如下:

  • 您应充分注释您的代码以解释您的意图。人并不仅仅靠内存法思考。
  • 您应该将数字常量等同于有意义的符号名称。说清楚,避免异教偶像。
  • 你应该描述你的模块中的所有输入和输出。请善待可能需要维护您的模块的软件 sibling 。
  • 你应该充分描述你的修改。期望你的同龄人成为读心者是一种罪过。无论如何,读心术是一种罪过。
  • 你应该提供你的汇编代码的伪代码解释。确实,组装不是 Cobol。
  • 每个模块只能有一个入口点和一个导出点。有许多入口和导出点的人应该期望他们的 body 发展相同。
  • 你应该在开发代码之前设计你的代码。确实,确实。
  • 你应该和你的同事一起审查你的代码。温顺的人有福了,因为他们将继承目标代码。
  • 你应该记录你的设计,并让所有维护代码的人都可以使用这些文档。确实,拒绝的人将永远在 hell 中调试操作系统。
  • 你应该能够接受对他们代码的有意义的批评。如果你对你的代码感到羞耻,你应该成为一名职业投球手。
  • 在将代码放入库控制之前,您应彻底(原文如此)测试您的代码。圣经中遗漏的一部分是上帝通过调试作为柴油引擎 Controller 一部分的大型 8096 汇编语言程序来测试约伯。整个东西在发布前没有经过测试。更糟糕的是,乔布不得不使用英特尔工具。
  • 您应尽可能避免使用全局数据结构。塔应该被命名为 Babel,程序不应该。
  • 当您的汇编程序员无法与 20 世纪后期最佳编译代码的效率相匹敌时,您将使用高级语言。当心那些认为汇编总是比好的编译器可以产生的效率更高的假神(就速度和大小而言)。您必须非常擅长设计和编码才能真正利用汇编语言。

  • 我搜遍了互联网,没有透露任何关于这些诫命或尼曼诫命的来源,我一直在试图找出更多关于这一点以及他可能不得不说的任何其他内容的信息。我唯一的其他线索是在左下角,有首字母“DEN”——我假设 N 代表尼曼,但我没有其他东西可以识别文本。所以,

    A. 尼曼是谁? (程序员?老师?顾问?公司里随便的人?)

    B. 这个页面是从哪里来的? (旧的编程指南?一些公司手册?一些 BBS 过去?)

    C. 剩下的在哪里? (还有更多吗?还有什么?这是一个独立的东西吗?)

    作为对评论的回应,我的老板已经离开了,但在那之前,他在这个行业待了很长时间,很长一段时间,白 mustache 什么的。通过纸张的颜色,我相当肯定日期(1989 年)大致是它的打印日期。

    最佳答案

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

  • 搜索唐纳德时 E. 尼曼,你得到了几个结果:
  • 他曾在加利福尼亚州库卡蒙加牧场的 Safetran Systems Corporation 担任软件工程师
  • 1999 年左右,他积极参与 BOINC 的 SETI@Home
  • 他在几个数学论坛中有一些活跃的帖子
  • 他在 a site for collecting Soviet Calculators 上的留言簿中有一个帖子。 (你可能需要谷歌缓存那个,因为它不会为我加载)
  • 搜索 "Donald Niman"显示:
  • 根据 Facebook
  • ,他目前在亚利桑那州凤凰城。
  • His Google Profile表明他确实住在 Rancho Cucamonga
  • 他在 Plurk 上有一个 51 岁的单例 friend - 所以他可能也在那个年龄范围内,与 1989 年写的小“诫命 list ”一致
  • Name placed on a microchip going to space

  • 这项研究确实看起来非常“跟踪狂”,但考虑到这个人的这些细节,他肯定与会写一些“编程诫命”的人相匹配。

    他确实有几个你可以上网的联系点——你也许可以联系到他并查明他是否是真正的作者。此外,您还可以通过他的 Google 个人资料页面判断他是否居住在您的前老板可能在 1989 年工作过的城市。

    关于language-agnostic - 尼曼的 13 条最低限度足够诫命的来源在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1480081/

    相关文章:

    git - 使用 git 识别修订中所有修改的函数

    c - Simpletron 机器和间接寻址

    .net - {0}、{1} 等是如何成为格式化字符串的标准的?

    algorithm - 分隔出由 `(, ), ||, &&, |` 分隔的 unix 语句

    language-agnostic - 多少函数参数太多了?

    java - 在大型Java堆转储中查找内存泄漏的方法

    vb.net - 如何移过去

    php - MongoDB - PHP - 工厂方法实现

    language-agnostic - 将我自己的项目传递给其他人-怎么办?

    user-interface - 如何为 GUI 的 future 开发设计一个可重用的命令行程序?