如果你有一个同事,他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反 应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷在心里直到憋不住,或者这最大胆的方法:走上去直接对烂程序员说他的 代码很烂。
事实上,这最大胆的方法其实也是最好的方法。大多时候,你可以做的巧妙些,从而避免由此引起的感情伤害或引发咆哮比赛。就像一句古话:只要方式正确,你可以向一个人说任何话。
当然,找到这正确的方式并不是轻而易举的事情。为了方法大家行事,下面是10种让你的表达更具技巧性的好方法。
- 开门见山:告诉他你看不懂他写的代码,并追加一些像这样的话:“我需要你帮我理解这块代码”——这是“硅谷iOS程序员研讨会”组织者、软件程序员Tim Burks的话。
- 推心置腹:约他出去喝两瓶啤酒,麻痹他的抵抗情绪,先从讨论编码风格说起。你会发现,他之所以这样写代码是因为这样他很方便——而不是方便开发团队。通过讨论代码不仅仅是人和机器交流的工具,更重要的是通过代码的人和人的交流,你可以让他用一种全新的思维来认识代码。
- 高山仰止:如果你的同事敬重你,想必他也会敬仰或效仿你所敬仰的著名程序员。所以,跟他讲那些杰出程序员的故事。或者向他转述Burks的观察所得:杰出的程序员总能把自己的编码风格融入到他人的风格中。
- 一针见血:Adobe System研究实验室的领袖人物Tom Jacobs说,“为了格式而格式化代码毫无意义,但将调整代码格式作为重构工作的一部分,增加新功能、修改bug工作的一部分,那是很正常的,因为这样做本质的增加了代码的质量。”
- 反馈问题,而不是批评:心理学家Leon Seltzer在“当代心理学”上的一篇博客中说,“人们更喜欢接受反馈信息而不是批评——即使是负面反馈”。所以,以反馈问题的形式诉说问题。
- 以后改进:不要苛求当前的工作,而是要求日后对此改进提高。按这种思路,你可以说:“嗨,下一次,如果你能把每个方法的行数减到10行以下,那会更好。”这比说“你的代码一塌糊涂”要中听的多。
- 糖衣炮弹:封装你的批评,在表达“你的代码很烂”的意思前和后先恭维一番。
- 偷换概念:如果交谈中总是说你、你、你,这很容易引起敌意,就好象你在指控罪名。所以,不如换种方式,与其说“每次都让我为你写的代码擦屁股”,不如说“有时候我真感到很沮丧,因为需要重你的代码。”
- 引蛇出洞:这种办法稍微有些麻烦,但不失为一种以守为攻的好办法。组织一些编程大赛之类的活动。如果顺利的话,它能引出一场安全的、没有猜疑的关于如何提高你的同事的代码质量的讨论。
还有其它对付这些写烂代码的人的好办法吗?请分享出来,留在下面的评论里。
[英文原文:10 Nice Ways to Say ‘Your Code Sucks’ ]
外刊IT评论 http://www.aqee.net/
相关推荐
5种方法立刻写出更好的CSS代码
他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷...
5款工具助你写出更好的Java代码
, 全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法...,读者能非常直观看出哪一种方法更容易写出烂代码...
不错的代码规范例子;很适合初学者
这本《会说话的代码》,却从截然不同的视角,尝试帮助那些真正处于一线的程序员写出更容易理解的代码。写代码就像盖楼房,我们怀着美好的希望,希望所有的项目代码如同一片尚未开垦的处女地,但真实情况往往是面对...
程序能跑起来并不见得你的代码就是很好的c代码了,衡量代码的好坏应该从以下几个方面来看1,代码稳定,没有隐患。2,执行效率高。3,可读性高。4,便于移植。下面发一些我在网上看到的技巧和自己的一些经验来和大家...
怎么样写好一个程序的安全代码?怎么样动手起来会更方便呢?来看看吧.计算机专业的学生不容错过..
NULL 博文链接:https://harry.iteye.com/blog/332752
给自己的一个目标
更锋利的C#代码
数据分析中主要针对内外圈故障,应用4种故障分析方法分别进行分析....Hilbert包络谱分析和Haar小波分析和数学形态学分析相对于前面的几种方法,可以更好的观测出故障信号频率,从而可以分析故障类型。
用于更安全,表达性代码的包装类型。.zip,一种包装器类型,用于更安全、更具表现力的代码。
【ASP.NET编程知识】.NET生成水印更好的方法实例代码.docx
汇编语言是一种低级编程语言,它与机器代码密切相关,但提供了可读性更好的代码形式
同时,可以从别人写的好的源代码中间学习到更多的编程方法和技巧。第二个好处是,可 以提高自己把握大规模源代码的能力。一个比较大型的程序,往往都是经过了很多个版本 很长的时间,有很多人参与开发,修正错误,...
有朋友邮件问我如何用CANoe的CAPL读取S19...基于此,我愿和大家一起分享我以前写的代码,不是很完善,敬请大家见谅。有更优化的,请和我分享,谢谢! 我的邮箱:tianhua_ming@126.com 如果回复不是很及时,请谅解!
针对开源项目代码丰富而文档较少这一现状,提出了一种基于LDA(Latent Dirichlet Allocation)和静态分析的代码功能识别方法,对传统LDA方法进行了扩展,帮助软件开发人员更全面地了解项目的功能点,从而更好地支持...