如果你有一個(gè)同事,他寫的程序與其說是代碼,不如說更像希臘神話中女妖美杜莎的頭發(fā),你當(dāng)然不能熟視無睹,你應(yīng)該做出一些反應(yīng),但你可選的合適的反應(yīng)方式并沒有多少:自己默默的幫他整理清楚、向上級(jí)抱怨、向其他同事背后嘮叨此事、悶在心里直到憋不住,或者這最大膽的方法:走上去直接對(duì)爛程序員說他的代碼很爛。
事實(shí)上,這最大膽的方法其實(shí)也是最好的方法。大多時(shí)候,你可以做的巧妙些,從而避免由此引起的感情傷害或引發(fā)咆哮比賽。就像一句古話:只要方式正確,你可以向一個(gè)人說任何話。
當(dāng)然,找到這正確的方式并不是輕而易舉的事情。為了方法大家行事,下面是10種讓你的表達(dá)更具技巧性的好方法。
- 開門見山:告訴他你看不懂他寫的代碼,并追加一些像這樣的話:“我需要你幫我理解這塊代碼”——這是“硅谷iOS程序員研討會(huì)”組織者、軟件程序員Tim Burks的話。
- 推心置腹:約他出去喝兩瓶啤酒,麻痹他的抵抗情緒,先從討論編碼風(fēng)格說起。你會(huì)發(fā)現(xiàn),他之所以這樣寫代碼是因?yàn)檫@樣他很方便——而不是方便開發(fā)團(tuán)隊(duì)。通過討論代碼不僅僅是人和機(jī)器交流的工具,更重要的是通過代碼的人和人的交流,你可以讓他用一種全新的思維來認(rèn)識(shí)代碼。
- 高山仰止:如果你的同事敬重你,想必他也會(huì)敬仰或效仿你所敬仰的著名程序員。所以,跟他講那些杰出程序員的故事?;蛘呦蛩D(zhuǎn)述Burks的觀察所得:杰出的程序員總能把自己的編碼風(fēng)格融入到他人的風(fēng)格中。
- 一針見血:Adobe System研究實(shí)驗(yàn)室的領(lǐng)袖人物Tom Jacobs說,“為了格式而格式化代碼毫無意義,但將調(diào)整代碼格式作為重構(gòu)工作的一部分,增加新功能、修改bug工作的一部分,那是很正常的,因?yàn)檫@樣做本質(zhì)的增加了代碼的質(zhì)量?!?
- 反饋問題,而不是批評(píng):心理學(xué)家Leon Seltzer在“當(dāng)代心理學(xué)”上的一篇博客中說,“人們更喜歡接受反饋信息而不是批評(píng)——即使是負(fù)面反饋”。所以,以反饋問題的形式訴說問題。
- 以后改進(jìn):不要苛求當(dāng)前的工作,而是要求日后對(duì)此改進(jìn)提高。按這種思路,你可以說:“嗨,下一次,如果你能把每個(gè)方法的行數(shù)減到10行以下,那會(huì)更好。”這比說“你的代碼一塌糊涂”要中聽的多。
- 糖衣炮彈:封裝你的批評(píng),在表達(dá)“你的代碼很爛”的意思前和后先恭維一番。
- 偷換概念:如果交談中總是說你、你、你,這很容易引起敵意,就好象你在指控罪名。所以,不如換種方式,與其說“每次都讓我為你寫的代碼擦屁股”,不如說“有時(shí)候我真感到很沮喪,因?yàn)樾枰啬愕拇a。”
- 引蛇出洞:這種辦法稍微有些麻煩,但不失為一種以守為攻的好辦法。組織一些編程大賽之類的活動(dòng)。如果順利的話,它能引出一場(chǎng)安全的、沒有猜疑的關(guān)于如何提高你的同事的代碼質(zhì)量的討論。
還有其它對(duì)付這些寫爛代碼的人的好辦法嗎?請(qǐng)分享出來,留在下面的評(píng)論里。
英文原文:10 Nice Ways to Say ‘Your Code Sucks’
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費(fèi)用,即可穩(wěn)步提升排名至首頁。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。
