HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

无我编程的十条戒律

  • 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:003751
用户头像

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

关注

评论

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

Spring高手之路11——BeanDefinition解密:构建和管理Spring Beans的基石

砖业洋__

spring BeanDefinition Bean配置

高能预警!突发服务器入侵,学会这招快速解决

百川云开发者

运维 安全 服务器 主机安全 主机管理

“中国软件杯”飞桨赛道晋级决赛现场名单公布

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

小灯塔系列-中小企业数字化转型系列研究-HR测评报告

向量智库

从原理聊JVM(四):JVM中的方法调用原理 | 京东云技术团队

京东科技开发者

Java JVM 多态 方法调用 企业号 8 月 PK 榜

什么!?它竟然是免费的!

万界星空科技

开源 MES系统 免费软件 免费开源

小模型赋能大电网,手机拍照来建档

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

如何在短视频中合成“虚拟数字人”?

阿里云视频云

云计算 剪辑 视频云 数字人

DDD项目落地之充血模型实践 | 京东云技术团队

京东科技开发者

DDD 充血模型 聚合根 企业号 8 月 PK 榜

IPQ8072 VS IPQ9274 chip-What progress has WiFi 7 made compared to WiFi 6?

wifi6-yiyi

5G wifi6 WiFi7 6G

【开源三方库】Aki:一行代码极简体验JS&C++跨语言交互

OpenHarmony开发者

OpenHarmony

Spring Boot 最佳实践

越长大越悲伤

Java spring Spring Boot

JDV背后的技术-助力618 | 京东云技术团队

京东科技开发者

数据化 可视化软件 可视化展示 企业号 8 月 PK 榜

华为终端生态商业平台颁发合作伙伴奖项!携手伙伴高效协同,聚势增长

最新动态

汽车之家APP端到端全链路治理最佳技术实践

之家技术

质量 质量赋能 端到端 质量监控 质量指标

学生管理系统架构设计文档

艾瑾行

MaxCompute发布按量付费闲时版,计算成本最高节省66.66%!

阿里云大数据AI技术

MaxCompute

事务,不只ACID | 京东物流技术团队

京东科技开发者

分布式事务 数据库事务 事务 企业号 8 月 PK 榜 AICD

用友企业服务大模型YonGPT,赋能财务、人力、业务智能化

用友BIP

企业服务大模型 YonGPT

Studio One 6 for mac(音乐制作工具) v6.2.0中文特别版

mac

Studio One 音乐制作软件 苹果mac

GM CHM Reader Pro for Mac(CHM文件读取器) 2.3.5激活版

mac

苹果mac CHM Reader CHM文件读取器 Windows软件

SpringBoot3基础用法

Java 架构 springboot SpringBoot3

带你走进数仓大集群内幕丨详解关于作业hang及残留问题定位

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

汽车之家铸精品工程

之家技术

质量 质量赋能 质量监控 质量指标

加速未来!汽车之家App应用性能优化总结与后续展望

之家技术

前端 性能 App 质量 质量赋能

详细的Java学习路线+Java每个阶段核心知识点+Java工作就业方向

java易二三

Java 编程 程序员 计算机 基础

汽车之家页面性能监控建设实践

之家技术

质量 质量赋能 质量监控 质量指标 质量检测

如何用IoT边缘连接器实现云端应用控制PLC?

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

基于YonGPT 的智能大搜,让知识赋能业务和组织!

用友BIP

企业服务大模型 YonGPT

十城百校联动!HDC.Together 2023 HarmonyOS学生公开课与千余名校园学子见证鸿蒙力量

HarmonyOS开发者

HarmonyOS

共建共赢鸿蒙生态,加速实现拓量增长

最新动态

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