国产男女精品_免费黄网在线观看_av综合在线观看_在线v片_欧美一区二区三区激情视频_99视频只有精品

18577034138
四個要點教會你如何寫出讓自己滿意的代碼

概述:

寫代碼,思路是最關(guān)鍵的。假定采用的技術(shù)平臺、框架、工具等已經(jīng)確定了,那么在開始動手寫之前,花三分之一以上的開發(fā)時間去把所有的數(shù)據(jù)結(jié)構(gòu)及其相互關(guān)系考慮清楚。在此基礎(chǔ)上,再注意實現(xiàn)的細節(jié)、測試用例、代碼可讀性,就應(yīng)該可以寫出讓自己滿意的代碼。接下來,南寧

   寫代碼,思路是最關(guān)鍵的。假定采用的技術(shù)平臺、框架、工具等已經(jīng)確定了,那么在開始動手寫之前,花三分之一以上的開發(fā)時間去把所有的數(shù)據(jù)結(jié)構(gòu)及其相互關(guān)系考慮清楚。在此基礎(chǔ)上,再注意實現(xiàn)的細節(jié)、測試用例、代碼可讀性,就應(yīng)該可以寫出讓自己滿意的代碼。接下來,南寧網(wǎng)站建設(shè)小編來詳細介紹一下。

   1. 數(shù)據(jù)結(jié)構(gòu)和核心算法

  關(guān)于數(shù)據(jù)結(jié)構(gòu)的重要性,大神Linus Torvalds講過這樣的話,我覺得非常贊同:”Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” (低水平程序員總在考慮代碼,高水平程序員總在考慮數(shù)據(jù)結(jié)構(gòu)及其之間的關(guān)系)

  數(shù)據(jù)結(jié)構(gòu)考慮清楚了,核心的算法自然就出來了,這就是關(guān)于每個類的每個方法如何實現(xiàn)的問題。比如需要實現(xiàn)一個中位數(shù)查詢方法,如果你前面確定了數(shù)據(jù)保存的格式是一個列表,那么你可以考慮采用插入排序法;如果數(shù)據(jù)格式是自平衡二叉排序樹(AVL),則只需直接返回根節(jié)點就可以了。

  數(shù)據(jù)結(jié)構(gòu)決定算法,所以你在考慮數(shù)據(jù)結(jié)構(gòu)的時候,一定要盡可能地使數(shù)據(jù)的結(jié)構(gòu)和它的自然屬性相匹配,不然后面的實現(xiàn)就會是一場噩夢。比如,你把一個多層級的結(jié)構(gòu)定義成二維數(shù)組,看上去也靠譜,相當于在一個表格里維護一個組織結(jié)構(gòu)圖,可是當你做到部門增減的時候,本層級的數(shù)組元素移動自不必說,下面各個層級的元素移動就很容易亂套,而且性能很差,可能你寫了2000行代碼還有很多邊界條件會出錯。相反,如果用一個孩子兄弟鏈表來表示這個樹型結(jié)構(gòu),操作起來就非常容易,可能100行都足夠了。

  2. 功能實現(xiàn)

  思路確定后,實現(xiàn)過程也需要大量的構(gòu)思活動。碰到你比較熟悉有經(jīng)驗的領(lǐng)域,你自然可以輕車熟路,但難免會有一些你不太熟悉的技術(shù)需要嘗試。有的同學(xué)比較排斥這種領(lǐng)域,比如我好不容易才掌握了Struts 2,領(lǐng)導(dǎo)又讓我去學(xué)習(xí)Grails框架,我就會覺得很不爽,大概看了看就挑出它的一堆問題,然后能躲多遠就躲多遠。可是我要說,這樣的心態(tài)會阻礙自己不斷提高技術(shù)水平。作為一個程序員,最大的挑戰(zhàn)也是最大的樂趣所在,就是不斷學(xué)習(xí)新的技術(shù),沒有這樣的心態(tài),很快就會落后。

  好,那么遇到不熟悉的技術(shù)怎么辦?我的體會是,先不要急著實現(xiàn)項目中的代碼,自己另外維護一個測試項目,在里邊邊查文檔邊學(xué)習(xí),邊做一個小功能,把所有需要在項目中實現(xiàn)的功能先在測試項目里跑通,然后再寫項目里的代碼。這樣做的好處是把單個技術(shù)問題和其他潛在的bug隔離開來,便于快速學(xué)習(xí)新技術(shù)。否則,你直接在項目里寫代碼出錯以后,要判斷問題的源頭都要多費好幾倍的精力。

  3. 測試

  測試很重要,設(shè)計測試用例就像開發(fā)時設(shè)計數(shù)據(jù)結(jié)構(gòu)一樣,也是很關(guān)鍵的。在設(shè)計測試用例的時候,要把當時自己設(shè)計數(shù)據(jù)結(jié)構(gòu)的思路全部忘掉,或者找別人來設(shè)計測試用例,不然會不由自主地測試那些你已經(jīng)考慮到了的地方。這樣測試是跑通了,用戶一用起來可能各種邊界條件會到處出問題。

  有人會推崇TDD的方法,先設(shè)計好測試用例,然后在開發(fā)過程中確保所有測試通過。我個人不喜歡這種方法,雖然承認從開發(fā)質(zhì)量管理和長期維護的角度來說TDD是很有必要的,但我個人嘗試的結(jié)果是,設(shè)計完測試用例后,想到開發(fā)的目標不是實現(xiàn)功能,而是為了跑通測試,就感到毫無樂趣可言。這一點我自己也覺得很矛盾。


主站蜘蛛池模板: 欧美日韩一区精品| 免费在线a| www麻豆| 亚洲色图自拍| 日韩两性视频| 九九视屏| 国产天堂在线观看| 亚洲永久精品在线观看| 国产特黄一级片| www国产91| 深夜小视频在线观看| 天天综合天天做| a级一a一级在线观看| 中文在线日韩| 香蕉尹人网| 91国内视频| 波多野结衣午夜| 蜜桃久久精品| 久久免费看片| 国产日韩在线播放| www欧美在线| 国产在线成人| 夜夜爽天天干| 国产久操视频| www色婷婷| 欧美国产片| 中文字幕观看| 免费在线日韩| 久久精品系列| 久久久久久成人| 久艹精品| 欧美精品亚洲精品| 日本免费网| av噜噜噜| 欧美hdse| 欧美日韩aaa| 王语嫣跪趴高撅翘臀含白浆| 亚洲精品一区二区三区在线播放| 五月婷婷在线观看视频| 亚洲精品一区二区三区在线播放| 日韩成人免费视频|