[轉]程序員隨筆: 擁抱代碼

作者:天道酬勤

很多人都不喜歡代碼,或者編寫代碼。可能覺得寫代碼過於枯燥,無聊,也可能覺得寫代碼實在是件簡單得事情(高手們都這麼想),毫不值得去擁抱它,甚至還有些人包含功利的想法。我也是有這樣得毛病,不得已,爲了培養對代碼的好感,想盡辦法找了些代碼的好處。

代碼的第一大好處:實現軟件產品。呵呵,真是廢話,不過的確是首要得好處
代碼的第二大好處:在項目計劃階段,可以用來估算。通常得做法是按照代碼行來估算。比如,這個7人團隊以往的歷史記錄是平均每人,每天可以完成100行代碼,此項目估計總代碼行爲7萬行,那就大概要三個月才能完成。我曾經在的一個公司在讓老外評估cmm2,老外看了一下我以前參與的一個項目,每天能完成400行!!,當時老外就說,”公司有這樣得水平,我看cmm2不用過了,直接去評cmm5吧“,哈哈,寫代碼的確是件辛苦的事情,尤其是對中國程序員來說。那幫作計劃的混蛋!
代碼的第三大好處:用於交流。毫無疑問,代碼是最不會產生歧異的語言。如果你的口才不好,你就可以這樣說:“我現在也表達不出來,不過,你看我給你寫一個類。。,它有這樣的方法,可以接受我們剛纔談的那個系統變量。。”,瞧,我想任何人聽了這樣的表述,都能明白同伴的想法了。
代碼的第四大好處:用於設計,通過代碼實現,又可以印證,修改設計。基於前面一個觀點,直接構造一些僞代碼來完成設計,這樣的代碼肯定是能被所有開發人員所理解的。不用寫令人煩惱的文檔和花哨的設計圖形(當然,以後肯定是要補充的)。另外,設計的預研有時候就必須用代碼來驗證次設計,我有次做公司某個產品,當時設計的時候是這麼說的:“嘔,當系統接受到參與者發出的xml消息的時候,就通過xxx工具將xml消息轉化爲java對象,java對象在系統內部互相交互,如果需要響應參與者,那將該對象傳給yyy工具(xxx工具,yyy工具都是有名的開源軟件,但我剛開始並不熟悉其用法),yyy會自動將對象轉化爲xml消息併發送給參與者的”。瞧,多麼輕鬆的設計。然而,就是因爲這個在後期開發中發現用到的倆個工具並不象傳說中的那麼“神奇”,而導致系統重新設計。代碼開發者有時候會抱怨給設計人員擦屁股,其實,這是要一分爲二的來看待,有時候的確是因爲設計人員因爲能力,或者馬虎原因沒考慮到。但有些情況下的卻是項目發生變化,設計需要更改。解決問題的關鍵還是共同協商,抱怨只能讓心情平和一些。同我共事的一個扎倆個小辮子的姑娘就有這樣得好脾氣,常常在實現代碼的時候叫我“monkey,瞧,這個接口沒法實現,因爲pass進來的對象少定義了一個關聯字段”,我會說:“嘔,我忘定義了,馬上就補充”。
代碼的第五個好處:良好得代碼命名規範省去了爲代碼寫註釋的必要,比如Boolean.valueOf().再比如,ProductSpecification.createInstance()等,你可以參考java style這本書獲得更詳細得信息 。
代碼第六大好處:用於測試。可以通過編寫單元測試來保證系統的質量和增強自己的信息。通常,你可以用JUnit工具幫助你完成,關於單元測試的文章很多。在此就不多說。不過我有一個訣竅可以與大家分享,就是在閱讀源碼的時候,比如apache上的,你常常可以閱讀它的測試的代碼瞭解哪些類是系統重要的類,以及瞭解如何使用該工具。
代碼的第七個好處:物證,整人的證據。代碼是公正的,我和一同事在討論代碼的好處的時候,他告訴我,如果哪個人在唱歌的時候老霸着話筒不放,那下次代碼走查的時候,大夥就專挑他得錯。哈哈,開玩笑,千萬不要用這個好處整人。
代碼的好處有這麼多,發生在系統的計劃,分析設計,實現,測試當中,還能整人!!!不知道你看了後有什麼補充沒?不過,我相信,你肯定會去擁抱你親愛得代碼的,^_^。
我這些思路來源於xp,以及和同事的討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章