`
tomcat_oracle
  • 浏览: 317008 次
社区版块
存档分类
最新评论

十种更好的表达“你的代码写的很烂”的方法

阅读更多

如果你有一个同事,他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反 应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷在心里直到憋不住,或者这最大胆的方法:走上去直接对烂程序员说他的代码很烂。

 

  事实上,这最大胆的方法其实也是最好的方法。大多时候,你可以做的巧妙些,从而避免由此引起的感情伤害或引发咆哮比赛。就像一句古话:只要方式正确,你可以向一个人说任何话。

 

  当然,找到这正确的方式并不是轻而易举的事情。为了方法大家行事,下面是10种让你的表达更具技巧性的好方法。

 

  • 开门见山:告诉他你看不懂他写的代码,并追加一些像这样的话:“我需要你帮我理解这块代码”——这是“硅谷iOS程序员研讨会”组织者、软件程序员Tim Burks的话。

 

  • 推心置腹:约他出去喝两瓶啤酒,麻痹他的抵抗情绪,先从讨论编码风格说起。你会发现,他之所以这样写代码是因为这样他很方便——而不是方便开发团队。通过讨论代码不仅仅是人和机器交流的工具,更重要的是通过代码的人和人的交流,你可以让他用一种全新的思维来认识代码。

 

  • 高山仰止:如果你的同事敬重你,想必他也会敬仰或效仿你所敬仰的著名程序员。所以,跟他讲那些杰出程序员的故事。或者向他转述Burks的观察所得:杰出的程序员总能把自己的编码风格融入到他人的风格中。

 

  • 一针见血:Adobe System研究实验室的领袖人物Tom Jacobs说,“为了格式而格式化代码毫无意义,但将调整代码格式作为重构工作的一部分,增加新功能、修改bug工作的一部分,那是很正常的,因为这样做本质的增加了代码的质量。”

 

  • 反馈问题,而不是批评:心理学家Leon Seltzer在“当代心理学”上的一篇博客中说,“人们更喜欢接受反馈信息而不是批评——即使是负面反馈”。所以,以反馈问题的形式诉说问题。

 

  • 以后改进:不要苛求当前的工作,而是要求日后对此改进提高。按这种思路,你可以说:“嗨,下一次,如果你能把每个方法的行数减到10行以下,那会更好。”这比说“你的代码一塌糊涂”要中听的多。

 

  • 糖衣炮弹:封装你的批评,在表达“你的代码很烂”的意思前和后先恭维一番。

 

  • 偷换概念:如果交谈中总是说你、你、你,这很容易引起敌意,就好象你在指控罪名。所以,不如换种方式,与其说“每次都让我为你写的代码擦屁股”,不如说“有时候我真感到很沮丧,因为需要重你的代码。”

 

  • 引蛇出洞:这种办法稍微有些麻烦,但不失为一种以守为攻的好办法。组织一些编程大赛之类的活动。如果顺利的话,它能引出一场安全的、没有猜疑的关于如何提高你的同事的代码质量的讨论。

 

  还有其它对付这些写烂代码的人的好办法吗?请分享出来,留在下面的评论里。

5
1
分享到:
评论
4 楼 crazy灬baby 2013-11-21  
还有第11种,在博客上写文章告诉他? 
3 楼 gandilong 2013-11-21  
还是个人素质问题
2 楼 tuxq5721 2013-11-20  
p2227 写道
说得这么笼统有意义吗?

什么叫做抽象
1 楼 p2227 2013-11-20  
说得这么笼统有意义吗?

相关推荐

    十种更好的表达同事代码有缺陷的方法

    他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷...

    mattsucks:马特很烂,你应该告诉他

    【标题】:“mattsucks: 马特很烂,你应该告诉他” 这个标题看似是一个贬义的评价,但其实可能是编程领域中一个项目或者代码库的命名方式,以一种幽默或者自嘲的方式表达。在编程社区,这种命名并不罕见,有时用于...

    java 你画我猜源码

    【Java 你画我猜源码解析】 "Java 你画我猜" 是一个基于 Java 开发的在线娱乐项目,允许玩家通过绘画来表达词语,其他玩家则...尽管代码质量被描述为“写的比较烂”,但仍然可以从中学到很多实际开发的经验和教训。

    i虫科(半成品,紫色的,UI没更新,不想弄了,摆烂)

    10. **学习与反思**:每个未完成的项目都是一个学习机会,开发者可以从中学到如何更好地规划、管理项目,以及如何应对挫败感,为未来的项目提供宝贵经验。 总结来说,“i虫科”项目反映了软件开发过程中可能遇到的...

    jdk1.8_64位

    对于Java开发者来说,熟练掌握这些新特性不仅能够提升开发体验,也能更好地应对现代软件开发的挑战。因此,深入理解和运用JDK1.8 64位版本的知识点,是每个Java程序员成长道路上不可或缺的一环。

    Java 8 全套API.zip

    Java 8是Java编程语言的一个重要版本,它引入了许多创新特性,极大地提升了开发效率和代码质量。这个"Java 8 全套API....通过阅读和实践,开发者可以更好地理解和利用Java 8提供的强大功能,提升编程效率和代码质量。

    Dice:基本应用程序shitcode

    "并且idk如何使它变得更好"揭示了作者正在寻求提高代码质量和结构的建议。"但永远向前"则表达了作者积极的态度,即使面对困难,也会持续学习和进步。 【标签】"Java"说明这个项目是使用Java语言编写的。Java是一种...

    ViralShellter:让我们看看我可以庇护多少[[

    ViralShellter是一款开源的安全工具,其主要功能是进行病毒样本的分析和脱壳。这款工具在Github上可能因其独特的命名而引人注目,但它...同时,探索项目的其他文件和目录,可以帮助你更好地理解其工作原理和功能实现。

    garden-controller

    标题 "garden-controller" 暗示我们正在讨论一个...通过深入研究这些知识点,开发者可以更好地理解和使用 "garden-controller",同时也可以学习到Go语言的开发实践、服务间通信的最佳做法以及如何有效地管理开源项目。

    Atc Sucks-crx插件

    【Atc Sucks-crx插件】是一款针对英文用户的浏览器扩展程序,主要目的是表达用户对“ATC”(可能是某个网站、服务或功能的缩写)的不满情绪。...不过,为了更好地理解其工作原理和实际效果,需要更深入的分析和测试。

Global site tag (gtag.js) - Google Analytics