`

StackOverflow 创始人关于如何高效编程的清单

阅读更多

这是 StackOverflow 联合创始人 Jeff Atwood 注释的十戒。程序员普遍有很强的自尊心,都应该看看本文,打印下来时刻提醒自己。

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

 

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

 

  1. 接受自己会犯错的事实。关键是要在错误进入到生产环境之前把它们找出来。所幸的是,除了小部分在喷气推进实验室里开发火箭制导系统的程序员,大部分错误都不会造成致命的后果。所以,我们一定能够而且也应该要学会嫣然一笑,然后继续。

  2. 不要使用代码来针对个人。要记住,代码评审的目的是为了找出问题,而且总归会找到问题。如果真的找到了问题,请不要把它作为针对个人的借口。

  3. 不管你知道多少“秘籍”,总有人比你知道得更多。如果你开口,他们就会教你更多的东西。在你认为没有必要的时候,学会接受他人的建议。

  4. 不要不经讨论地重写代码。“修复代码”与“重写代码”是有明显的区别的。了解这些区别,并在代码评审的框架之内进行程式化的变更,而不是单独作战。

  5. 尊重比你懂得少的人,并对他们抱以耐心。与技术人员打交道的非技术人员认为技术人员要么是妄自尊大的讨厌鬼,要么是爱撂挑子的倔驴。所以,我们不要用我们的愤怒和不耐烦去加深他们对我们的这种印象。

  6. 这个世界唯一不变的就是变化。敞开胸怀,面带微笑地去拥抱变化。把每一个需求变更、平台变更或工具变更都看成是一个新的挑战,而不是令人厌恶的麻烦。

  7. 真正的权威来自于知识,而不是职位。知识造就了权威,而权威会迎来尊重。如果你想要在一个无我的环境里得到尊重,那么充实你的知识吧。

  8. 坚定你的立场,优雅地接受挑战。要知道,你的想法有时候会遭到反对。你可以证明自己是对的,但不要试图报复,不要总是叫嚷着“我早就说过”,不要被否定的想法看成是一个牺牲品或者某种战斗口号。

  9. 不要成为“小黑屋里的人”。不要躲在小黑屋里写代码,就算偶尔露个面,也只是为了买一杯可乐。躲在小黑屋里只会让你与其他人失去联系,淡出他们的视野,失去控制。在一个开放的协作环境里,你会找不到自己的位置。

  10. 批评代码,而不是人。对人好一点,而不是代码。让你所有的评审为代码带来积极的改进,把你的评审与局部标准、程序规范和更好的性能结合在一起。

1
0
分享到:
评论

相关推荐

    StackOverflow 创始人推荐图书

    ### StackOverflow创始人推荐图书知识点详解 #### 一、引言 StackOverflow作为全球最大的程序员社区之一,其创始人Jeff Atwood的推荐图书具有重要的参考价值。本文将深入解析这些书籍的关键知识点,帮助读者更好地...

    StackOverflow创始人JeffAtwood切身经历分享:如何促使团队紧密协作

    知名技术博客作家、StackOverflow创始人JeffAtwood有三十多年的职业编程经验,通过他的切身经历分享,帮助读者成长为高效能程序员。今天你开了多少个会?这个星期呢?这个月呢?再自问一下,那些会议中有多少是值得...

    Stackoverflow 上关于 Python 的问题

    Stackoverflow 上关于 Python 的问题

    最受欢迎的编程语言的最受欢迎存储库列表(根据StackOverflow)-Python开发

    ARL(另一个存储库列表)嗯,学习新事物的最好方法之一就是观察他人...以下是每种最受欢迎​​的编程语言(根据StackOverflow)的最受欢迎的存储库列表的列表(按星数排序):Python JavaScript Java C C ++ NodeJS C#...

    Stackoverflow架构设计和开发内幕

    Stackoverflow是一个面向编程专业人士的问答网站,其特点在于用户可以问问题、回答问题并参与社区讨论。由于其高效的问题解决机制,Stackoverflow已经成为全球最大的程序员社区之一。 从给定的文件信息中,我们可以...

    如何解决java.lang.StackOverflowError

    在Java编程中,`java.lang.StackOverflowError` 是一个常见的运行时异常,它通常发生在程序执行过程中,当Java虚拟机(JVM)的调用栈溢出时。调用栈是每个线程用来存储方法调用信息的数据结构,当递归调用过深或者...

    stackoverflow fixed 2021-04-08 by storm.zip

    1. **StackOverflow 插件**:这是一个专为 IntelliJ IDEA 设计的插件,旨在方便开发者在 IDE 内部直接访问 StackOverflow 网站,以寻求编程问题的答案和解决方案,提高开发效率。 2. **停止更新**:原始插件的...

    stackoverflow java问答电子书

    stackoverflow java mobi 电子书 ebook java学习好资料

    从Stackoverflow构建大规模软件编程分类法

    为了解决这些问题,并展示分类法在软件工程应用中的全部潜力,本文介绍了一种基于Stackoverflow构建的大规模软件编程分类法。 分类法,从概念上讲,是一种用来组织和分类对象(如事物、概念或实体)的体系结构或...

    《StackOverFlow-Python翻译》-深入理解python,超级推荐

    《StackOverflow-Python翻译》是一本深度探讨Python编程...以上只是《StackOverflow-Python翻译》中部分涵盖的主题,通过这本书,读者将能更深入地了解Python,提升自己的编程水平,从而编写出更高效、更优雅的代码。

    Python-按编程语言列出最受欢迎并最常用的GitHub库列表根据StackOverflow

    标题中的“Python-按编程语言列出最受欢迎并最常用的GitHub库列表根据StackOverflow”指的是通过StackOverflow的数据分析,找出在Python编程语言中最受欢迎且被广泛使用的GitHub仓库。这通常是为了帮助开发者了解...

    stackoverflow-bot:stackoverflow 推特机器人

    StackOverflow Bot 是一个基于 Scala 编程语言开发的应用程序,其主要功能是自动在 Twitter 上发布与 StackOverflow 相关的信息。这个项目的目的是帮助编程社区成员及时获取到 StackOverflow 上的新问题、热门讨论...

    PHP的类Stackoverflow系统Qwench.zip

    类似 Stackoverflow 的积分系统 3. 可提交文章用于知识库建设 4. 可设定只允许注册用户才能提问和回答 5. 简洁的 CSS 布局 6. 支持主流浏览器 安装方法: ----------------------------------------------- 1. ...

    Python-SoCLI是一个用Python编写的StackOverflow命令行工具

    **Python-SoCLI:Stack Overflow命令行神器** Python-SoCLI 是一个强大的工具,它将Stack Overflow的功能融入了命令行界面,使得...对于想要学习Python开发或提高开发效率的人来说,SoCLI无疑是一个值得探索的项目。

    stackoverflow问题汇编_android

    stackoverflow问题汇编_android Kindle阅读器格式,阅读时需下载相应阅读器

    Stackoverflow热门Python文章翻译(文集)

    Stackoverflow 热门 Python 文章翻译(文集) 目录 基础 基本语法控制流相关 字符串相关 文件相关 数学相关 基本数据结构 列表 元组 字典 进阶 函数 内置函数 异常 模块 标准库 日期 oop 其他 pip/easy_install...

    系统稳定性——StackOverFlowError常见原因及解决方法1

    在Java编程中,系统稳定性是至关重要的,而StackOverflowError是一个常见的运行时错误,通常由于内存管理问题导致。本篇文章将详细探讨StackOverflowError的原因和解决方案。 StackOverflowError是由于线程的JVM栈...

    stackoverflow-java:stackoverflow的来源

    "stackoverflow-java"可能是一个项目或者资料集,专门针对Java编程语言在Stack Overflow中的常见问题和实践进行整理。 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(后被Oracle收购)开发。它的...

    django-stackoverflow-trace, Django 错误页w/a 搜索链接.zip

    django-stackoverflow-trace, Django 错误页w/a 搜索链接 django-stackoverflow-trace自定义 Django 技术错误模板,将相关stackoverflow搜索链接置于异常消息下。安装$ (sudo) pip install django_stackoverflo

Global site tag (gtag.js) - Google Analytics