今天看了一篇很有意思的文章, http://www.aygfsteel.com/uiiang/archive/2006/10/30/77993.html ,介紹了種種項(xiàng)目中的編碼的惡習(xí),其中很多的東西看起來(lái)真的是很搞笑,比如趴在Tab上睡著了那個(gè),用中文做變量名的,還有 if(condition) a else a 那個(gè)也比較搞笑,算是夸張了點(diǎn)。
不過(guò)想想看,自己一直都在算是比較正規(guī)的軟件企業(yè),編碼規(guī)范還是有一定的要求的,不會(huì)出現(xiàn)這么搞笑的問(wèn)題,不過(guò)有些問(wèn)題還是會(huì)經(jīng)常的犯,比如說(shuō),又一次看一個(gè)同事寫(xiě)一個(gè)方法寫(xiě)了 1500 行,我立刻讓他改,最后精簡(jiǎn)代碼,分開(kāi)寫(xiě),也算是減少到可以接受的程度,另外一個(gè)惡習(xí)就是復(fù)制代碼,很多開(kāi)發(fā)人員自身都是不怎么會(huì)寫(xiě)代碼的,做開(kāi)發(fā)就是找過(guò)去相識(shí)的,復(fù)制,粘貼,改,所以會(huì)出現(xiàn)一堆比較搞笑的問(wèn)題,于是,錯(cuò)誤便不是自己犯的了,人家寫(xiě)錯(cuò)了,自己也就抄錯(cuò)了,我在第一次參加 Code Review 的時(shí)候就碰到這個(gè)情況,我自己的東西都是自己手工寫(xiě)的,出現(xiàn)了一些問(wèn)題,被大家指出來(lái)了,其它人寫(xiě)的東西都是抄來(lái)抄去,發(fā)現(xiàn)問(wèn)題都不是自己的,因?yàn)楦倪^(guò)去的代碼需要上面授權(quán),還有一堆測(cè)試要重做,所以看大致是可以用的也就蒙混過(guò)關(guān)了,造成了越來(lái)越混亂的代碼。
其實(shí)說(shuō)來(lái)要把代碼寫(xiě)的更好一點(diǎn)沒(méi)有想象中那么難的,凡事從小做起,從點(diǎn)滴做起,慢慢的把一些好的東西變成自己的習(xí)慣,重要的是要積累,而不是放任自流,多去看看人家著名的開(kāi)源項(xiàng)目,看看人家代碼是怎么寫(xiě)的,多去和自己的比較,然后善于用一些 Audit 工具評(píng)估自己的代碼,讓自己對(duì)自己的代碼中出現(xiàn)的問(wèn)題有一個(gè)更明確的認(rèn)識(shí),然后慢慢的去改變自己的習(xí)慣,其實(shí)從長(zhǎng)遠(yuǎn)角度來(lái)說(shuō)對(duì)自己有很大的好處的,起碼自己的編碼能力提升了,基礎(chǔ)更加穩(wěn)固了,有能力去勝任更高級(jí)的工作,不然,天天復(fù)制別人的代碼,自己又天天只能寫(xiě)出來(lái)一些不符合規(guī)范的代碼,而自己又天天不去想不去問(wèn),一直這樣下去,開(kāi)發(fā)能力還能提高嗎?
其實(shí)我還是很喜歡一本書(shū)《代碼大全 2nd》,今年上半年才出來(lái)的中文版,里面針對(duì)我們開(kāi)發(fā)的時(shí)候出現(xiàn)的問(wèn)題給出了很多規(guī)范和解決方案,我會(huì)經(jīng)常抽空去看看這本書(shū),然后想想自己該如何去改善自己的開(kāi)發(fā)習(xí)慣,去寫(xiě)出更好的代碼,另外就是用一些 Audit 工具去針對(duì)自己的代碼做出一些評(píng)審,比如 CodePro,另外我們一些同事在 Maven 上用一些插件對(duì) CVS 上的代碼做出 Audit 并發(fā)布在項(xiàng)目站點(diǎn)上,這些都是不錯(cuò)的手段了。
其實(shí)說(shuō)來(lái)最重要的還是自己的態(tài)度,工具,好的方法都不能轉(zhuǎn)變對(duì)于開(kāi)發(fā)惡劣的態(tài)度的。