国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

系統程序員成長計劃-寫得又快又好的秘訣(三)

發布時間:2009-10-13 08:59    發布者:linux_Ultra
關鍵詞: 成長 , 程序員 , 秘訣 , 系統
系統程序員成長計劃-寫得又快又好的秘訣(三)
                                                                Thursday, December 04th, 2008 | Author: admin                                                               

轉載時請注明出處和作者聯系方式
文章出處:http://www.limodev.cn/blog
作者聯系方式:李先靜
                        代碼閱讀法
軟件工程實踐已經證明Code Review是提高代碼質量最有效的手段之一,極限編程(XP)更是把CodeReview推向極致,形成著名的結對編程工作方式,兩個程序員在一臺電腦前面工作,一個人編寫程序,另一個Review輸入每一行代碼,寫程序人的專注于目前細節上的工作,Review的人同時要從高層次考慮如何改進代碼質量,兩個人的角色會經;Q。
可惜我即沒有結對編程的經驗,也沒有在CMM3(及以上)團隊中工作過。不過現在我要介紹比結對編程更敏捷更輕量級,但是同樣有效的Review方法。這種方法不需要其他程序員配合,有你自己就夠了。為了把這種方法與傳統的Code Review區分開來,我把它稱為代碼閱讀法吧。

很多初學者包括一些有經驗的程序員,在敲完代碼的最后一個字符后,馬上開始編譯和運行,迫不急待的想看到自己的工作成果。快速反饋有助于滿足自己的成就感,但是同時也會帶來一些問題:
讓編譯器幫你檢查語法錯誤可以省些時間,但程序員往往太專注這些錯誤了,以為改完這些錯誤就萬事大吉了。其實不然,很多錯誤編譯器是發現不了的,像內存錯誤和線程死鎖等等,這些錯誤可能逃過簡單的測試而遺留在代碼中,直到集成測試或者軟件發布之后才暴露出來,那時就要花更大代價去修改它們了。
修改完編譯錯誤之后就是運行程序了,運行起來有錯誤,就輪到調試器上場了。花了不少時間去調試,發現無非是些低級錯誤,或許你會自責自己粗心大意,但是下次可能還是犯同樣的錯誤。更嚴重的是這種debug & fix的方法,往往是頭痛醫頭腳痛醫腳,導致低質量的軟件。
讓編譯器幫你檢查語法錯誤,讓調試器幫你查BUG,這是天經地義的事,但這確實是又慢又爛的方法。就像你要到離家東邊1000米的地方開會,結果你往西邊走,又是坐車又是搭飛機,花了一周時間,也繞著地球轉了一周,終于到了會議室,你還大發感慨說,現代的交通工具真是發達啊。其實你往東走,走路也只要十多分鐘就到了。不管你的調試技巧有多高,都不如一次性寫好更高效。
我以前也一樣,想趕時間結果花了更多時間,在經過很多痛苦的經歷之后,我開始學會放松自己,讓自己慢下來。寫完程序之后,我會花些時間去閱讀它,一遍兩遍甚至多遍之后,才開始編譯它,只要有時間,在通過測試之后,我還會閱讀它們,每讀一遍都有不同的收獲,有時候會發現一些錯誤,有時候會做些改進,有時候也有新的想法。
下面是我在閱讀自己代碼時的一些方法:
o檢查常見錯誤。
第一遍閱讀時主要關注語法錯誤、代碼排版和命名規則等等問題,只要看不順眼就修改它們。讀完之后,你的代碼很少有低級錯誤,看起來也比較干凈清爽。第二遍重點關注常見編程錯誤,比如內存泄露和可能的越界訪問,變量沒有初始化,函數忘記返回值等等,在后面的章節中,我會介紹這些常見錯誤,避免這些錯誤可以為你省大量的時間。如果有時間,在測試完成之后,還可以考慮是否有更好的實現方法,甚至嘗試重新去實現它們。說了讀者可能不相信,在學習編程的前幾年,我經常重寫整個模塊,只我覺得能做得更好,能驗證我的一些想法,或提高我的編程能力,即使連續幾天加班到晚上十一點,我也要重寫它們。
o模擬計算機執行。
常見錯誤是比較死的東西,按照檢查列表一條一條的做就行了。有些邏輯通常不是這么直觀的,這時可以自己模擬計算機去執行,假想你自己是計算機,讀入這些代碼時你會怎么處理。這種方法能有效的完善我們的思路,考慮不同的輸入數據,各種邊界值,這能幫助我們想到一些沒有處理的情況,讓程序的邏輯更嚴謹。
o假想講給朋友聽。
據說在CodeReview時發現錯誤的,往往不是Review的人而是程序員自己。我也有很多這樣的經歷,在講給別人聽的時候,別人還沒有聽明白,自己已經發現里面存在的錯誤了。上大學時,我常常把寫的或者學到的東西講給隔壁寢室的一個同學聽,他說他從我這里學到很多知識,其實我從講的過程中,經常發現一些問題,對提高自己的能力大有幫助?上Р⒉皇请S時都能找到好的聽眾,幸好我們有另外一個替代辦法,記得剛開始寫程序時看過一本書(忘記名字了),作者說他在寫程序時,常常把思路講給他的布娃娃聽。我沒有布娃娃當聽眾,講給鼠標聽總是有點怪怪的,所以就假想旁邊有個朋友,我把自己的思路講給他聽,同時也假想他來質疑我。這種方法很效,能夠讓自己的思路更清晰,據說一些大師也經常使用這種方法。
這種代碼閱讀法會花你一些時間,但是可以省下更多調試時間,而且能夠提高代碼質量,可以說是名符其實的“又快又好的” 秘訣之一。至于讀幾遍合適,要根據情況而定,個人覺得讀兩到三遍是最佳的投資。
本文地址:http://m.qingdxww.cn/thread-4663-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
wangkj 發表于 2009-10-13 09:25:47
理論上如此,但是,很多問題,必須摸索才能發現。
俺現在的顯卡代碼不超過1000行,調試了幾個月,就是有些問題不太清楚,
只能不斷的實驗和摸索。關鍵點就是幾個數字。
wangkj 發表于 2009-10-13 09:27:11
lz說的這種代碼是需求及其明確,軟件工具沒有bug,對編程環境及其熟悉的情況。
也就是說,軟件工人級別的問題。
ebuffalo 發表于 2009-10-13 09:49:10
有幾個人不是工人級別?

老王很自信的說.
原野之狼 發表于 2009-10-13 10:00:17
純軟件的可以這樣,嵌入式軟件一定得調試,因為對硬件的理解有可能出現偏差。
一朝成名 發表于 2009-10-13 22:49:45
多寫寫,就快了~~~~沒辦法的辦法
xihulu 發表于 2009-10-14 17:13:45
多寫,深度鉆研基礎功能模塊的原理,確保每個基礎模塊的穩定可靠,積累到一定程度就可以不斷的復用,包括基礎架構等等。尤其是在一個公司,做某個特定行業的開發,通常有很強的繼承性,積累3年之后,每個新項目實際需要的工作量其實只是有限的一小部分而已——到時候自然就“又好又快”了。
zengguangjun 發表于 2009-10-26 13:39:00
說的有理,溫故而知新嘛!
li_mu 發表于 2009-10-27 11:41:24
回復7樓xihulu

是啊,關鍵是繼承性,每次從頭開始就太累了
cxthw 發表于 2011-6-16 16:15:19
“溫故知新”,要有足夠的耐性去溫......
kdsky 發表于 2011-8-25 19:01:06
冰凍三尺非一日之寒,為山九仞非一日之功,路很長啊
octubersun 發表于 2012-2-3 13:24:57
具體環境具體對待吧
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • PIC32CM LS00 Curiosity Pro評估工具包
  • PIC32CK SG單片機——輕松滿足新型網絡安全要求
  • 探索PIC16F13145 MCU系列——快速概覽
  • PIC32CM LS60 Curiosity Pro評估工具包
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品国产福利在线观看| 色综合视频在线| 色天天综合网| 欧美成人精品| 天天操天天干天天操| 天天操操操操| 亚洲精品综合| 微拍秒拍99福利精品小视频| 亚洲九九视频| 日本在线国产| 亚洲天堂网站在线| 色综合综合| 日韩视频免费| 四虎国产精品永久免费网址| 香蕉国产成版人视频在线观看| 亚州 色 图 综合| 午夜在线不卡| 色女人综合| 亚洲啪啪| 日韩欧美综合| 欧美亚洲免费| 欧美激情一区二区三区视频| 色综合天天综合网国产国产人 | 亚洲αv久久久噜噜噜噜噜| 欧美人成网| 欧洲1区二区三区二页| 欧美精品黄页免费高清在线| 日韩专区视频| 欧美成人综合在线| 啪啪.com| 视色视频| 热久久视久久精品18国产| 亚洲一个色| 网红毛片| 欧美日韩激情一区二区三区| 欧美黄区| 亚洲欧美一区二区三区麻豆| 日本成人在线视频网站| 一级毛片一| 欧美成人久久一级c片免费| 欧美一级免费片|