专栏名称: Fundebug
Fundebug为JavaScript、微信小程序及Node.js开发团队提供专业的线上代码bug监控和智能分析服务。
目录
相关文章推荐
51好读  ›  专栏  ›  Fundebug

无我编程的10条诫律

Fundebug  · 公众号  · 前端  · 2019-05-16 10:00

正文

无我编程的10条诫律最早出现在 1971 年 Gerald Weinberg 出版的《程序开发心理学》中。后由Stack Overflow网站的联合创始人 Jeff Atwood 在其2006年5月9日的博文《无我编程的10条诫律》中再次列出。

The Ten Commandments of Egoless Programming

https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/


Jeff Atwood 在其2006年5月12日的博文《无我编程:你的工作不代表你》中,引用 Johanna Rothman的描述,解释了无我编程的由来。

Egoless Programming: You Are Not Your Job

https://blog.codinghorror.com/egoless-programming-you-are-not-your-job/

无我编程发生在开发阶段,表现为技术团队经常通过同级评审的方式来发现软件中的缺陷。目的是让所有人(包括作者)都参与寻找缺陷,而不是证明软件产品里没有缺陷。人们会交换各自手上的代码,相互进行评审,并且大家都有这样的共识:代码的原始作者会犯错误,而作为评审者,他们会找出这些错误。最后的结果是,每个人都从自己的错误以及别人的错误里有所长进。这就是无我编程(egoless programming)的由来。不管我的工作做得“完美”还是“有欠缺”,“我”本人并不对正在开发中的产品负责。“我”的价值体现在尽心尽职,以及从错误中学习而付出的努力,而不是我的工作的最初成果。


Stephen Wyatt Bush在2012年4月7日的博文《爸爸和无我编程十条诫律》中提到:

在爸爸去世前,我和他谈论了2个星期关于编程的事。


我22岁,一个在大学里攻读美术设计的四年级的学生。爸爸62岁,一个很老的爸爸。早在世纪60年代他就在田纳西理工大学编程,他在打孔纸带上做FORTRAN开发。他知识丰富。


这个学期我才刚刚开始接触编程,而我的整个脑子全被它吸引住了。编程很神奇,很强大,在很多方面比图像设计更富创造性(我会在另外的文章里谈论这个话题)。


在我假期回到家时,爸爸向我分享了无我编程的十条诫律。他把它打印出来,逐条和我讨论。这是在他意外去世前我们仅有的关于编程的讨论。也许这是让我对此念念不忘的原因。

http://blog.stephenwyattbush.com/2012/04/07/dad-and-the-ten-commandments-of-egoless-programming/

tshi&老曹根据网络上流传的翻译版本,对照英文原文,编译如下。


  1. Understand and accept that you will make mistakes.

    理解和接受自己会犯错误。

    这是对待自己的态度么?气急败坏可没有任何益处,关键是要在错误进入到生产环境之前把它们找出来。所幸的是,在软件行业中犯错误通常不会导致灾难性事故。我们可以,也应该从错误中吸取教训,微笑,并继续前进。


  2. You are not your code.

    不要使用代码来针对个人 (你不是你的代码)。


    这是对待同行的第一个态度吧?要记住,代码评审的目的是为了找出问题,而且最终会找到问题。如果真的找到了问题,请不要把它作为针对个人的借口(当有问题疏漏时不要自责)。


  3. No matter how much "karate" you know, someone else will always know more.

    不管你知道多少“秘籍”,总有人比你知道得更多。

    对待学习的态度?敏而好学,不耻下问。如果你开口,他们就会教你更多的东西。从别人那里寻找和接受新的知识,特别是那些你认为不太需要的知识。


  4. Don't rewrite code without consultation.

    不要在没有讨论的情况下重写代码。

    对待代码的态度?“修复代码”与“重写代码”是有明显的区别的。了解这些区别,并且在代码审查的制度下做风格上的调整,不要独断专行。








请到「今天看啥」查看全文