首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当受到批评时,黑客会怎么做?

基督教有十诫,犹太人因遵守它而生活富足;同样,程序员的世界里也有十诫,遵守它的人可以获得内心的平静,直面别人对其代码的点评。对一名创造者来说,作品被指点评价甚至误解都是宿命……如何在这种时候还能听进去并获得意想不到的收获?你可以认真读一下这份编程哲学。

忘我编程(Egoless Programming)一词由杰里·温伯格(Jerry Weinberg)1971 年在其著作《计算机编程心理学》(The Psychology of Computer Programming

)中提出。温伯格使用这个词语来描述当一个开发人员开发到一定阶段以后,可以让同行过来评议其代码的开发方式。

同行评议可以让多人一起来寻找逻辑漏洞,评估算法选择是否合适甚至发现语法错误。温伯格发现,鼓励其他人寻找错误和有待改进的地方,可以让软件开发的速度和质量有戏剧性的提高。当然,这个时候对于开发人员来说,就必须放弃固执的己见,让自己处于忘我(Egoless)状态。

同行评议

不同的开发方法论中多次提及了同行评议机制,而且看起来它也逐渐成为大家的共识。结对编程(两人一组共同编程)可以被简单地视为同行评议的一种应用。同样地,开源软件大多质量较高,也得益于开源社区「海量」的同行评议。

当然,脸皮比较薄的开发人员在这种时候会感觉到非常不适。因为和写作或创作一件艺术品一样,编程是一个比较个人的事情;艺术家不会允许别人对他的作品说三道四,同样,当别人贬低我们的代码作品时,我们同样很难接受。所以这个时候,就需要一套规则或指南,来帮助开发人员进入忘我(Egoless)状态,让他们自己与他们的代码分开。

十诫

1. 接受「自己会犯错」这个事实。错误不是关键,关键是我们需要在投入生产之前尽早找到它们。比较幸运的是,除了像「火箭发射引导软件」这样非常重要的软件外,代码错误很少是致命的,所以我们大可微笑接受,然后继续前进。

2. 你不同于你的程序。同行评议这个机制是对事不对人,所有的目的都是为了找出错误,而且也一定会找出来的。所以不要过分带入个人情感。

3. 无论你懂得多少,总有人懂得更多。三人行必有我师,总有一个人可以告诉你一些你没有想到的问题,所以即便你认为没有必要,也请听听别人怎么说。

4. 不要在没有商量的情况下直接重写别人的程序。在「修改程序」和「重写程序」之间有一个界限,你需要知道这界限。同时,确保修改后的代码和原代码保持同样的风格,而不是强赛硬加。

5. 对待不懂的人需要保持尊重与耐心。并非所有人员都懂你的代码,尤其是那些非技术人员,所以他们对于程序有一些误解也实属正常。越是这个时候,越要保持尊重与耐心。

6. 世界上唯一不变的就是改变。需求在变,平台在变,工具在变……所以微笑地接受一切变化就好。

7. 权威来自于知识而非职位。知识产生权威,权威带来尊重,所以如果你想在一个开放的环境里面获得尊重,请提升自己的知识。

8. 坚定信仰,但也要能坦诚面对挫败。记住,你的想法有时会被驳回,不要在意,更别在最终还是采用回了你想法的时候说「看吧,我早就说过」。这只会让你的想法更加不受重视。

9. 不要过于不合群。不要做一个「成天待在小黑屋里面,只会敲代码」的人。一个成天游离于人们视线之外、不受控制的人,在一个开放的、讲究合作的环境里面是不会有什么话语权的。

10. 与人为善,对代码苛刻。尽可能让你所有的评论都能够对改进代码有所帮助,比如代码规范、性能提升等。

作者:Jeff Atwood

原题:The Ten Commandments of Egoless Programming

出处:hhttp://t.cn/RS0sTWb

翻译、编辑:李亮

开智好文

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180226A160IF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券