精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

老碼農:如何寫出讓自己滿意的代碼

開發(fā) 項目管理
要想寫出自己滿意的代碼,首先不要急于動手,要先仔細想清楚思路性的東西,尤其是數(shù)據(jù)結構,然后 在實現(xiàn)過程中大膽嘗試小心驗證,設計好測試用例,確保代碼的可讀性,就可以在代碼中表現(xiàn)出自己的最高水平。但畢竟各人水平是有差異的,自己滿意并不等于其他人欣賞。我對此的看法是,不求盡如人意,但求無愧我心,足矣。

今天有位朋友在微博上問我這樣一個問題:

“@老碼農的自留地 ,最近出于學習目的寫一個管理系統(tǒng),越到后邊,越覺得自己前邊的代碼寫得爛。前輩,我想讓代碼寫得更好一點,能不能談談你的經驗,給我指點一下!”

我在回復里剛寫了幾句,就意識到140個字很難把我的想法說清楚,本著知無不言言無不盡的好為人師精神,我決定把我的回答寫成一篇博文。

[[85645]]

首先要說明的是,我寫這篇博客并不代表本人覺得自己的代碼寫得有多好。事實上我很清楚自己的水平,作為一個做應用系統(tǒng)的程序員,和那些做框架做系統(tǒng) 的大牛根本就不在一個層次。而且即使在應用層次,我的水平大概也只能算二三流,只是因為熱愛編程所以一直在努力而已,但不管怎么說,能做自己喜歡的工作我 已經很滿足了。所以我稍微篡改了一下問題,針對“覺得自己前邊的代碼寫得爛”這個重點,把這位朋友問的如何“讓代碼寫得更好一點”改成了“如何寫出讓自己滿意的代碼”

言歸正傳,我自己的體會是寫代碼很像寫作文,開始寫之前的構思過程是最關鍵的。記得高中的時候,有位語文老師給我傳授的經驗是,至少花三分之一的時 間來構思,反復斟酌中心思想、各個段落的大意,文章的脈絡,主要的修辭手法,等等。把這些要素都想清楚了,寫起來就可以一氣呵成。

我覺得寫代碼也是一樣,思路是最關鍵的。假定采用的技術平臺、框架、工具等已經確定了,那么在開始動手寫之前,花三分之一以上的開發(fā)時間去把所有的 數(shù)據(jù)結構及其相互關系考慮清楚。例如需要定義幾個類,類和類之間的關系是怎樣的,每個類里都有什么屬性,每個類提供一些什么樣的方法,等等,這些是最核心 的。這些數(shù)據(jù)結構要考慮得盡可能細,比如功能實現(xiàn)可能沒問題,但是性能上不理想,這就說明你的數(shù)據(jù)結構設計還需要改進。這些細節(jié)要反復考慮,交叉檢驗,直 到自己覺得很周到了為止。在此基礎上,再注意實現(xiàn)的細節(jié)、測試用例、代碼可讀性,就應該可以寫出讓自己滿意的代碼。具體說明如下:

1. 數(shù)據(jù)結構和核心算法

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

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

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

2. 功能實現(xiàn)

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

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

3. 測試

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

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

寫到這里我又想到大神Linus說過的另一句話:”Regression testing” What’s that If it compiles, it is good; if it boots up, it is perfect. (“回歸測試”?這是什么東西?如果代碼能編譯就是好的,如果它啟動了,那就是完美的。)

當然了,大神水平擺在那里,他有資本目空一切,咱確實沒資格仿效。但是我還是覺得TDD也有TDD的問題,測試是很重要,但把它擺到驅動開發(fā)的高度,就有點本末倒置了。這個是我自己的一點看法,本人對TDD了解得不深入,如果有謬誤之處,請多多指教。

4. 代碼可讀性

要想自己滿意,代碼的可讀性一定要好。要做到一年后甚至幾年后你拿到自己寫的代碼,還能很容易看明白當時的思路和實現(xiàn)。這就涉及到命名和注釋的問題。

命名就像超市里的商品標簽一樣,要讓看得人一目了然就知道這是個什么東西,比如你的員工類里有兩個屬性分別是到崗日期和離職日期,把它們定義成date1和date2就沒有多少可讀性,而定義成dateOnBoard和dateQuit就比較清晰。

注釋也是很重要的,它可以用來說明一段代碼的作用,算法的設計思想,或者是方法調用的參數(shù)格式要求等。有人覺得命名就是注釋,代碼本身就為自己代言 了。我覺得這種說法用來強調命名規(guī)范的重要性是很好的,但是因此說不需要注釋則有失偏頗。試想,如果Dijkstra首次發(fā)明最短路徑算法的時候,他給出 的代碼里沒有一行注釋,即使所有的變量命名都定義得準確而嚴謹,又有幾個人能看懂他的算法呢?所以,在重要或者復雜的地方,都需要詳細地寫一些注釋,便于 看代碼的人清晰地了解你的思路。

最后總結一下:要想寫出自己滿意的代碼,首先不要急于動手,要先仔細想清楚思路性的東西,尤其是數(shù)據(jù)結構,然后 在實現(xiàn)過程中大膽嘗試小心驗證,設計好測試用例,確保代碼的可讀性,就可以在代碼中表現(xiàn)出自己的最高水平。但畢竟各人水平是有差異的,自己滿意并不等于其他人欣賞。我對此的看法是,不求盡如人意,但求無愧我心,足矣。最后再啰嗦一句,技術水平是可以慢慢提高的,但是好的編程習慣需要從一開始就養(yǎng)成,它會讓 你在前進的道路上事半功倍,受益終生。

責任編輯:陳四芳 來源: 博樂在線
相關推薦

2022-02-08 19:33:13

技巧代碼格式

2015-09-28 10:49:59

代碼程序員

2019-06-24 10:26:15

代碼程序注釋

2020-10-18 07:21:34

CPU代碼執(zhí)行效率

2020-07-15 08:17:16

代碼

2020-05-11 15:23:58

CQRS代碼命令

2013-06-07 14:00:23

代碼維護

2021-09-01 08:55:20

JavaScript代碼開發(fā)

2021-11-30 10:20:24

JavaScript代碼前端

2023-07-16 22:34:55

2015-05-12 10:15:15

程序員

2020-09-30 11:14:24

AI碼農架構

2022-02-17 10:05:21

CSS代碼前端

2021-01-04 07:57:07

C++工具代碼

2019-09-20 15:47:24

代碼JavaScript副作用

2020-05-19 15:00:26

Bug代碼語言

2020-12-19 10:45:08

Python代碼開發(fā)

2022-03-11 12:14:43

CSS代碼前端

2024-01-15 15:11:03

物聯(lián)網(wǎng)5G數(shù)字孿生

2018-10-17 22:01:06

點贊
收藏

51CTO技術棧公眾號

日韩一区二区电影在线| 91免费看`日韩一区二区| 久久精品国产综合| 精品国产免费久久久久久婷婷| av手机在线观看| 国产清纯在线一区二区www| 成人精品在线视频| 日本a在线观看| 日韩成人精品一区二区| 亚洲精品在线免费播放| 午夜激情在线观看视频| 影音先锋在线播放| 亚洲国产激情av| 国产日韩久久| 91精品在线视频观看| 国产精品呻吟| 欧美第一黄网免费网站| 免费看黄色三级| 国产一区调教| 91精品国产全国免费观看| 超碰网在线观看| 黄色美女视频在线观看| 国产精品久久久久久久久久久免费看 | 国产日韩二区| 国产精品国产精品国产专区| 久久xxxx| 久久男人的天堂| 欧美特黄一级片| 色爱综合网欧美| 亚洲欧美制服另类日韩| 日本不卡视频一区| 婷婷久久免费视频| 欧美在线免费观看亚洲| 啊啊啊一区二区| heyzo在线欧美播放| 亚洲天堂网中文字| 一级日韩一区在线观看| 国产黄在线看| 久久久国产一区二区三区四区小说 | 性色av蜜臀av| 麻豆91小视频| 国产精品羞羞答答| 欧美人一级淫片a免费播放| 99精品视频免费全部在线| 欧美日本亚洲视频| 国产这里有精品| 亚洲情侣在线| 久久这里只有精品99| 国产精品视频看看| 国产精品久久久久一区二区三区厕所 | 欧美三级韩国三级日本三斤| 亚洲国产精品久久久久婷蜜芽| 9765激情中文在线| 黑人巨大精品欧美一区二区| 日本丰满少妇xxxx| sm久久捆绑调教精品一区| 亚洲一区二区三区不卡国产欧美 | 国产高清一区二区三区视频| 国产精品久久久久久久裸模| 亚洲视频欧美在线| 国产在线观看91| 亚洲激情图片qvod| 久久av综合网| 在线观看的黄色| 欧洲亚洲精品在线| 日本精品一区在线| 年轻的保姆91精品| 亚洲成人激情视频| 在线观看av中文字幕| 先锋影音国产精品| 一区二区中文字幕| 日韩欧美国产成人精品免费| 欧美精品日韩| 91福利视频网| 这里只有精品999| 国精产品一区一区三区mba桃花| 亚洲free性xxxx护士白浆| 北条麻妃一二三区| 91伊人久久大香线蕉| 日韩国产精品一区二区| 日本激情视频在线观看| 一区二区三区欧美在线观看| aa在线观看视频| 丁香婷婷久久| 亚洲成人a**站| 日本xxxxxxxxx18| 性xxxx欧美老肥妇牲乱| 欧美极品少妇xxxxⅹ喷水| 久久黄色精品视频| 国产一区欧美日韩| 精品久久蜜桃| 国产cdts系列另类在线观看| 亚洲va天堂va国产va久| 丰满少妇在线观看| 一区二区在线视频观看| 亚洲视频网站在线观看| 国产97免费视频| 久久亚洲一区| 99在线观看视频网站| 黄网在线观看| 亚洲综合免费观看高清完整版在线 | 国产原创在线观看| 懂色av影视一区二区三区| 怡红院亚洲色图| 日韩成人一级| 久久成年人视频| 69国产精品视频免费观看| 国产麻豆精品在线观看| 欧美一级日本a级v片| 污污网站在线看| 久久久亚洲午夜电影| 伊人久久成人| 不卡日本视频| 成人在线不卡| 91在线小视频| 中文字幕欧美日韩一区二区| 24小时免费看片在线观看| 欧美视频在线观看一区二区| 国产在线不卡av| 香蕉综合视频| 国产精品久久一| 性xxxx视频播放免费| 亚洲视频精选在线| 成人黄色一区二区| 日韩成人午夜| 97在线日本国产| 国产sm主人调教女m视频| 日韩三级不卡| 成人不卡免费av| 中文字幕欧美日韩一区二区| 偷拍中文亚洲欧美动漫| 亚洲精品二三区| 麻豆chinese极品少妇| 久久精品国内一区二区三区| 欧美国产综合视频| 99热99re6国产在线播放| 欧美一卡2卡三卡4卡5免费| 波多野结衣家庭教师在线观看| 午夜亚洲福利在线老司机| 国产精品久久精品视| 菠萝蜜视频国产在线播放| 欧美日韩免费观看一区三区| 欧美日韩高清丝袜| 亚洲资源av| 久久国产精品久久| 日本不卡免费高清视频在线| 欧美α欧美αv大片| 激情小说中文字幕| 国产精品正在播放| 人偷久久久久久久偷女厕| 丝袜美腿诱惑一区二区三区| 亚洲免费中文字幕| 成人午夜视频在线播放| 91一区二区三区在线观看| 精品视频在线观看一区| 好吊妞视频这里有精品| 国内外成人免费激情在线视频| 乱精品一区字幕二区| 亚洲成人你懂的| 亚洲天堂资源在线| 老司机精品视频网站| 日韩福利二区| 亚洲福利影视| 欧美激情精品久久久久久黑人| 亚洲国产成人一区二区| 午夜一区二区三区视频| 亚洲精品视频久久久| 热久久国产精品| 精品91一区二区三区| 影音先锋欧美激情| 91成人福利在线| porn亚洲| 欧美videos大乳护士334| 黄色一级片免费看| 国产欧美日韩在线观看| 午夜大片在线观看| 伊人久久成人| 日韩一区二区电影在线观看| 欧美一级免费| 久久久噜噜噜久久| 久久国产精品高清一区二区三区| 欧美日韩在线播放| 成年人网站免费看| 色视频在线观看福利| 午夜国产不卡在线观看视频| 国产又爽又黄无码无遮挡在线观看| 麻豆精品网站| 国产盗摄视频在线观看| 久久aimee| 国产精品一区专区欧美日韩| 18加网站在线| 亚洲欧美一区二区精品久久久| 中文字幕在线2019| 亚洲影院久久精品| аⅴ天堂中文在线网| 懂色av一区二区在线播放| 无码少妇一区二区三区芒果| 欧美激情1区2区3区| 日韩高清国产精品| 成人精品毛片| 91精品久久久久久综合乱菊| 91在线超碰| 另类天堂视频在线观看| 日韩一二三四| 欧美videossexotv100| 美女黄页在线观看| 五月激情综合色| 日本爱爱小视频| 91女人视频在线观看| 一个人看的视频www| 日韩精品国产欧美| 欧美一级欧美一级| 久久精品国内一区二区三区水蜜桃| 蜜桃狠狠色伊人亚洲综合网站| 疯狂欧洲av久久成人av电影| 热99在线视频| 成人免费高清观看| 不卡伊人av在线播放| 91精彩视频在线观看| 亚洲欧美日韩精品久久| 国精产品一品二品国精品69xx| 欧美男男青年gay1069videost| 国产成人一级片| 亚洲国产美国国产综合一区二区| 久久久久久久久久97| 欧美国产精品一区二区三区| 国产熟女高潮一区二区三区 | 91精品国产91久久久久| sm国产在线调教视频| 日韩一级裸体免费视频| 国产在线观看免费| 亚洲免费成人av电影| 亚洲伦理在线观看| 日韩一级二级三级精品视频| 国产精品热久久| 欧美日韩视频一区二区| www.亚洲激情| 欧美三级视频在线观看| 青青草视频在线观看免费| 欧美性猛交xxxx乱大交| 欧美一级片免费在线观看| 婷婷国产v国产偷v亚洲高清| 亚洲精品在线观看av| 亚洲一区二区三区四区在线免费观看| 91日韩中文字幕| 亚洲精品高清在线| 麻豆亚洲av成人无码久久精品| 亚洲色图视频网| 中文字幕在线观看成人| 亚洲另类春色国产| 久久激情免费视频| 午夜伦欧美伦电影理论片| 日韩激情在线播放| 日韩欧美999| 在线观看黄色网| 欧美精品777| 性一交一乱一乱一视频| 亚洲国产毛片完整版| 色哟哟在线观看| 一本一道久久a久久精品逆3p| 91在线网址| 美女av一区二区三区| 国产色婷婷在线| 57pao成人国产永久免费| 刘亦菲一区二区三区免费看| 国产精品久久久久高潮| 国产美女视频一区二区| 岛国视频一区| 亚洲福利天堂| 亚洲一二区在线| 欧美二区视频| 97xxxxx| 美国av一区二区| 国产精品19p| 久久亚洲精精品中文字幕早川悠里| 夜夜春很很躁夜夜躁| 亚洲欧美日韩国产手机在线| 日本一区二区欧美| 91黄色小视频| 国产夫妻性生活视频| 亚洲精品国产免费| 最新真实国产在线视频| 欧美激情第一页xxx| 美女日韩欧美| 7777奇米亚洲综合久久| 色哟哟精品丝袜一区二区| 亚洲精品9999| 亚洲国产mv| 99视频在线视频| 国产成人aaaa| 日韩黄色中文字幕| 亚洲一区二区三区中文字幕| 天堂网一区二区| 欧美成人精品福利| 最新97超碰在线| 午夜免费日韩视频| 色综合视频一区二区三区日韩| 国产视频在线观看一区| 日韩欧美精品| 99色精品视频| 国产69精品久久99不卡| 日日碰狠狠添天天爽| 亚洲成人www| 国产在成人精品线拍偷自揄拍| 日韩精品视频在线| 日本动漫理论片在线观看网站| 国产xxx69麻豆国语对白| 99久久人爽人人添人人澡| 亚洲国产一区二区三区在线| 亚洲视频播放| 精品久久久久久无码人妻| 国产精品久久久久久久久免费樱桃 | 欧美丰满老妇熟乱xxxxyyy| 亚洲妇熟xx妇色黄| 国产男女裸体做爰爽爽| 一区二区三区精品99久久| 国产传媒在线观看| 成人av免费在线看| 亚洲欧美网站在线观看| 国产一伦一伦一伦| 国产亚洲欧美激情| 日韩不卡在线播放| 亚洲精品97久久| 美足av综合网| 亚洲综合视频1区| 天天操综合网| 天天干天天操天天做| 国产欧美日韩亚州综合| 久久久成人免费视频| 日韩精品免费在线观看| 国产www视频在线观看| 亚洲精品欧美日韩| 国产精品91一区二区三区| 中文字幕亚洲欧洲| 欧美国产日韩一二三区| 一级黄色在线观看| 一道本无吗dⅴd在线播放一区 | 一级黄色毛毛片| 在线视频中文字幕一区二区| 六十路在线观看| 国产精品高潮粉嫩av| 精品国产精品国产偷麻豆| 欧美国产日韩在线播放| 国产欧美日韩精品a在线观看| 毛片在线免费播放| 一区二区三区国产视频| 精品三区视频| 亚洲精品在线免费| 麻豆视频观看网址久久| 国产在线观看免费视频软件| 欧美另类高清zo欧美| 黄色在线视频网站| 91九色露脸| 亚洲区国产区| 丝袜美腿中文字幕| 欧美中文字幕不卡| 激情成人四房播| 国产不卡一区二区三区在线观看| 在线不卡亚洲| 免费毛片视频网站| 欧美三级日本三级少妇99| 高潮毛片在线观看| 国产精品三区四区| 日韩精品视频网| 日韩在线视频网址| 337p日本欧洲亚洲大胆色噜噜| 九色porny丨入口在线| 日本在线观看一区| 精品一二线国产| www.youjizz.com亚洲| 亚洲欧美在线看| 日韩免费大片| 久久艹国产精品| 国产清纯美女被跳蛋高潮一区二区久久w| 五月激情丁香网| 欧美精品做受xxx性少妇| 美女av一区| 欧美婷婷精品激情| 亚洲一线二线三线视频| 免费一级毛片在线观看| 国产免费观看久久黄| 亚洲电影av| 999久久久国产| 精品国产伦一区二区三区观看方式 | 在线观看网站黄| 欧美日韩一二三四五区| 午夜免费播放观看在线视频| 国产精品久久久久久久久久久久午夜片 | 一区二区激情| 无码黑人精品一区二区| 日韩精品在线视频观看| 9999在线精品视频| 人妻精品无码一区二区三区 | 欧美牲交a欧美牲交| 国产精品欧美极品| 少妇人妻一区二区| 91精品视频网站| 久久亚洲欧洲| 中文字幕一区二区三区手机版| 综合国产在线视频|