成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

開發(fā) 前端
如果你還沒有發(fā)現(xiàn)代碼質(zhì)量的區(qū)別,如果你從未見過優(yōu)秀的代碼,或者從未見過糟糕的代碼,那么本文將以直觀地對比,告訴你代碼質(zhì)量究竟會有多大的區(qū)別。

可持續(xù)開發(fā)不僅在于項目架構設計,還與代碼質(zhì)量密切相關,代碼的整潔度和質(zhì)量成正比。—— Robert C. Martin, “Clean Code”

如果你還沒有發(fā)現(xiàn)代碼質(zhì)量的區(qū)別,如果你從未見過優(yōu)秀的代碼,或者從未見過糟糕的代碼,那么本文將以直觀地對比,告訴你代碼質(zhì)量究竟會有多大的區(qū)別。

[[205580]]

[ 代碼量 ]

我們知道代碼量顯示著功能的復雜程度,例如Windows XP的代碼量超過2000萬行,Linux內(nèi)核有1500萬行(2012年)。然而代碼量和功能數(shù)量之間并非線性關系。

優(yōu)秀的設計中,代碼量和功能數(shù)的關系是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

糟糕的設計中,代碼量和功能數(shù)的關系是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

優(yōu)秀的系統(tǒng)往往會有優(yōu)秀的結構設計:層次清晰、職責單一、模塊化,方便擴展或者復用。功能的添加往往只是在現(xiàn)有框架中添加少量代碼。

然而糟糕的設計中,層次混亂、互相耦合、難以閱讀,既難以復用又不易擴展。每當被要求添加功能時,不得不幾乎完整地實現(xiàn)整個功能的流程,并修復與原系統(tǒng)的所有兼容問題。

[ 注釋 ]

優(yōu)秀的代碼中,注釋是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

糟糕的代碼中,注釋是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

最愚蠢的程序員都能寫出機器能讀懂的代碼,而優(yōu)秀的程序員能寫出人可以讀懂的代碼。

程序的注釋是為了讓人讀得懂。多數(shù)優(yōu)秀的代碼中,注釋幾乎接近代碼行數(shù)的一半,描述函數(shù)功能、解釋參數(shù)配置、指出陷阱所在。而糟糕的代碼中不僅不含這些注釋,甚至會保留大量殘余代碼,可讀性差又難以重構。

[ 命名 ]

優(yōu)秀的代碼中,命名是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

糟糕的代碼中,命名是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

命名是為了讓代碼更加容易閱讀,使用規(guī)范的術語不僅更加易懂,同時也是開發(fā)者知識水平和開發(fā)經(jīng)驗的表現(xiàn)。如果說以中文拼音命名顯得奇怪,那么直接以a, b, c, d命名的便會顯得可恨,誰記得你的a是神馬東西!

看一個經(jīng)典的例子,字符串替換:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

[[205585]]

稍微有點Java常識的便會想到正則表達式:

何必拷貝這一堆的代碼給老板看呢?開發(fā)中確實有很多時候,直接拷貝代碼既能立竿見影地完成功能,又不會影響原有功能。但這樣的代碼多起來之后,萬一功能調(diào)整你便需要重新debug所有的副本?;ㄒ恍r間學習更優(yōu)雅的用法是值得的。

[ 函數(shù) ]

保持函數(shù)的短小,使你的代碼更加易讀,例如:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

將復雜的邏輯分步驟完成。如果寫在一起將會是這樣的:

沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

相信我,一旦你寫了這樣的函數(shù),它會隨著時間的推移變得越來越長,直到有一天,你也忘了其中的一段代碼到底是做什么的。

事實上,復雜的函數(shù)不僅可以按照步驟劃分,更應按照層次來細化。不要在一個函數(shù)中進行不同層次的操作,否則它會變得非常難懂。

責任編輯:未麗燕 來源: 程序師
相關推薦

2017-09-15 10:18:46

云容器Google容器亞馬遜

2015-08-31 10:14:30

程序員處理代碼糟糕代碼

2015-09-01 11:20:58

程序員糟糕代碼

2023-03-23 15:18:03

JavaScrip代碼實踐

2012-06-13 01:23:30

開發(fā)者程序員

2023-11-23 13:07:18

代碼Golang

2015-03-06 17:36:46

Folders編程語言

2022-05-27 05:39:46

光纖激光網(wǎng)絡

2012-12-28 09:47:07

程序員代碼編程

2022-08-04 23:41:10

零信任安全API

2019-09-26 09:34:51

網(wǎng)絡爬蟲搜索引擎大數(shù)據(jù)

2014-07-10 10:58:36

安卓碎片化

2011-10-09 09:11:25

2014-03-14 17:25:07

2009-09-08 18:31:32

ITSM運維管理摩卡軟件

2020-05-19 15:00:26

Bug代碼語言

2022-12-26 00:02:24

重構代碼軟件

2015-06-30 08:31:59

舊代碼重寫

2014-05-16 10:51:33

科學代碼最佳實踐

2015-12-30 10:36:59

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产乱码久久久久久久 | 国产精品国产自产拍高清 | caoporn国产| 精品国产综合 | 久久久久久99 | 色综合色综合色综合 | 黄色欧美视频 | 国产黄色一级电影 | 国产精品.xx视频.xxtv | 欧美 日韩 国产 成人 | 一区二区视频在线 | 亚洲日本一区二区三区四区 | 三级在线视频 | 国产精品视频一区二区三区四区国 | 亚洲a级| 精品视频网 | 日本三级日产三级国产三级 | 国产精品九九视频 | 亚洲自拍偷拍欧美 | 涩涩导航 | 国产精品视频久久 | 国产97视频在线观看 | 日韩精品一区在线 | 中文字幕在线一区二区三区 | 日日骚视频 | 爱综合| 国产在线一区二区 | 中文字幕乱码视频32 | 国产精品电影在线观看 | 成人一区在线观看 | 黄色在线观看国产 | 成人婷婷| 久久国产欧美日韩精品 | 日韩国产一区二区三区 | 香蕉超碰 | 国产乱码精品一区二区三区五月婷 | 国产福利资源在线 | 日韩欧美国产精品一区二区三区 | 国产精品国产精品国产专区不蜜 | 国产精品成人一区二区三区夜夜夜 | 蜜桃精品视频在线 |