写点什么

无我编程的十条戒律

  • 2017-06-11
  • 本文字数:1202 字

    阅读完需:约 4 分钟

“无我编程”发生在开发阶段,表现为技术团队经常通过同级评审的方式来发现软件中的缺陷。目的是让所有人(包括作者)都参与寻找缺陷,而不是证明软件产品里没有缺陷。人们会交换各自手上的代码,相互进行评审,并且大家都有这样的共识:代码的原始作者会犯错误,而作为评审者,他们会找出这些错误。最后的结果是,每个人都从自己的错误以及别人的错误里有所长进。这就是“无我编程”的由来。

无我编程的十条戒律,最早出现在由 Gerald Weinberg 于 1971 年出版的经典著作《程序开发心理学》里。Stack Overflow 网站的联合创始人 Jeff Atwood 在博客上再次列出了这十条戒律。要知道,在这本著作出版的时候,Jeff 才一岁。虽然已经过去了几十年,但这些原则并没有被时间侵蚀,仍然值得每一位程序员拜读。

  1. 接受自己会犯错的事实。关键是要在错误进入到生产环境之前把它们找出来。所幸的是,除了小部分在喷气推进实验室里开发火箭制导系统的程序员,大部分错误都不会造成致命的后果。所以,我们一定能够而且也应该要学会嫣然一笑,然后继续。
  2. 不要使用代码来针对个人。要记住,代码评审的目的是为了找出问题,而且总归会找到问题。如果真的找到了问题,请不要把它作为针对个人的借口。
  3. 不管你知道多少“秘籍”,总有人比你知道得更多。如果你开口,他们就会教你更多的东西。在你认为没有必要的时候,学会接受他人的建议。
  4. 不要不经讨论地重写代码。“修复代码”与“重写代码”是有明显的区别的。了解这些区别,并在代码评审的框架之内进行程式化的变更,而不是单独作战。
  5. 尊重比你懂得少的人,并对他们抱以耐心。与技术人员打交道的非技术人员认为技术人员要么是妄自尊大的讨厌鬼,要么是爱撂挑子的倔驴。所以,我们不要用我们的愤怒和不耐烦去加深他们对我们的这种印象。
  6. 这个世界唯一不变的就是变化。敞开胸怀,面带微笑地去拥抱变化。把每一个需求变更、平台变更或工具变更都看成是一个新的挑战,而不是令人厌恶的麻烦。
  7. 真正的权威来自于知识,而不是职位。知识造就了权威,而权威会迎来尊重。如果你想要在一个无我的环境里得到尊重,那么充实你的知识吧。
  8. 坚定你的立场,优雅地接受挑战。要知道,你的想法有时候会遭到反对。你可以证明自己是对的,但不要试图报复,不要总是叫嚷着“我早就说过”,不要把被否定的想法看成是一个牺牲品或者某种战斗口号。
  9. 不要成为“小黑屋里的人”。不要躲在小黑屋里写代码,就算偶尔露个面,也只是为了买一杯可乐。躲在小黑屋里只会让你与其他人失去联系,淡出他们的视野,失去控制。在一个开放的协作环境里,你会找不到自己的位置。
  10. 批评代码,而不是人。对人好一点,而不是代码。让你所有的评审为代码带来积极的改进,把你的评审与局部标准、程序规范和更好的性能结合在一起。

感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-06-11 19:004261
用户头像

发布了 322 篇内容, 共 150.3 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

5分钟搞懂Web3架构

俞凡

架构 web3

PostgreSQL 技术内幕(四)执行引擎之Portal

酷克数据HashData

postgresql

华为云全球加速GA,为企业跨国办公保驾护航

与时俱进的时代

华为云智能云接入ICA,企业数据上云的信赖之选

与时俱进的时代

Zebec的“Web3.0 TechHive Summit 2022 大会”圆满落幕,回顾与展望

股市老人

华为云弹性负载均衡ELB,如何保障服务器不瘫痪?

爱科技的水月

华为云弹性负载均衡服务,如何助企业应付流量压力

爱科技的水月

无代码的未来

俞凡

无代码

2022年度盘点|聚焦运维服务,云智慧的高光时刻

云智慧AIOps社区

运维 AIOPS 智能运维 云智慧 智能运维AIOps

Github星标80k的阿里大牛强推JDK源码笔记,6到飞起

程序知音

Java 源码 jdk 后端技术

开启全新身份!华为阅读畅读会员震撼来袭,限时首月9元快来领取

最新动态

华为云智能云接入ICA,助力企业轻松上云

与时俱进的时代

5分钟搞懂BFF

俞凡

架构 BFF

回顾与展望Zebec举办的“Web3.0 TechHive Summit 2022 大会”

BlockChain先知

无需企业搭建基础设施,华为云弹性公网IP经济实惠又便捷!

与时俱进的时代

华为云连接CC服务助企业联通全球

爱科技的水月

从各行业的实际运用中,窥见华为云虚拟专用网络VPN的强大性能

清欢科技

8年java技术岗面试官总结:2022超强面试大全,抓住2022的小尾巴

钟奕礼

程序员 Java 面试 Java、 java 编程

史上最全JVM大全详解!java程序员细节到极致的一次,魔鬼

钟奕礼

程序员 Java 面试 Java、 java 编程

【kubernetes入门到精通】Kubernetes的健康监测机制以及常见ExitCode问题分析「探索篇」

码界西柚

Kubernetes 云原生 服务监控 12月月更

什么是WebSocket

穿过生命散发芬芳

websocket 12月月更

安全可靠,弹性灵活--华为虚拟专用网络VPN

清欢科技

出海有“云”!华为云全球加速助力跨国企业提升网络体验

与时俱进的时代

BAT大厂java程序员面试必问:JVM+Spring+分布式+tomcat+MyBatis

钟奕礼

程序员 Java 面试 Java、 java 编程

如何实现线上线下良好互通?华为云CC支持一点接入多点通达

爱科技的水月

GitHub屠榜第一的微服务架构深度解析,简直太硬核了

小小怪下士

Java 程序员 微服务

运维训练营第十课作业

好吃不贵

java程序员:拜托别再问我Spring原理了!你问的这篇文章都有

钟奕礼

程序员 Java 面试 Java、 java 编程

笑对过往、活在当下、期盼未来

阿Q说代码

程序员 flag 年度总结

无我编程的十条戒律_语言 & 开发_薛命灯_InfoQ精选文章