什麼樣的代碼纔是好代碼

轉自:http://ms.csdn.net/geek/186524?winzoom=1css

衡量代碼的好壞的指標或者維度有不少,好比性能好、架構好、高內聚等,這些指標的側重點各不相同,不一樣的開發人員的關注的重點也各不相同。我我的更喜歡簡單的可讀性高的代碼,我主要從如下幾個維度衡量代碼是否良好:html

代碼是可工做的 
代碼是可讀性高的 
代碼是簡單的 
代碼是高內聚的 
代碼是低耦合的 
代碼是可工做的前端

寫代碼的目的是要爲了解決特定問題的,所以不管如何,代碼首先是可工做的,能解決特定的問題。可工做的包含有兩層含義:一是從功能角度來講能知足用戶的需求,二是從性能角度來講要知足當前基本的性能需求。因此可工做是衡量代碼好壞的前置條件,只考慮代碼自己不考慮可工做性是捨本取末。vue

代碼是可讀性高的html5

(想學習前端 js html5 div css3 nodejs bootstrap vue.js的朋友們加一下qq羣4780527166一羣已滿這是二羣點擊連接加入羣【前端技術交流羣羣】:https://jq.qq.com/?_wv=1027&k=45vs1z3 
咱們有免費的直播課程 視頻等資料 )node

代碼是開發人員來開發和維護的,並且在軟件漫長的生命週期中,一般會由不一樣的開發人員來維護的,若是代碼的可讀性不好,那未來的維護就將是一個噩夢。咱們寫的代碼是給開發人員看的,絕對不是給機器看的(編譯後的代碼是給機器看的,編譯器會幫咱們去掉無心義的空行等),所以代碼必須首先是可讀性高的。css3

那什麼是可讀性高的代碼呢?從coding style角度來講,有意義的命名、添加必要的文檔和註釋、類和方法不要太長、每一行也不要太長、添加必要的空行以及必要的縮進等,具體能夠參考《C++編程規範》和《重構 改善既有代碼的設計》。另一方面就是從代碼的結構來定義,例如代碼是高內聚、低耦合的,代碼是簡單的,這三個方面下面會有詳細描述。編程

代碼是簡單的bootstrap

咱們先來看一下什麼是複雜的代碼,好比說美其名曰爲了代碼的擴展性,使用了好多設計模式和軟件開發原則,結果就是明明能夠用很簡單幾行代碼搞定的事情,結果用了幾十行代碼甚至更多,並且代碼用了各類酷炫的技術,可是事實上大部分的擴展性可能一生也沒有發生過,從敏捷開發角度來講,這是很是典型的過分設計。敏捷開發不是不考慮設計,只是不推崇過分設計,好比考慮10年後系統的擴展性是沒有任何意義的,另一種場景是隻是作一個簡單的後臺管理系統,可是卻花大量的精力考慮高併發也是沒有意義的,過分設計的代碼一般是複雜的。設計模式

因此在適度考慮代碼的可擴展性的基礎上,能不用設計模式就不要用設計模式,能不用新的、複雜的技術就不用新的、複雜的技術,技術夠用就好,代碼越簡單越好,有人說代碼太簡單是否是有點low,其實寫出高質量的簡單代碼遠比寫出複雜的代碼難度高,尤爲是系統比較複雜時,保持代碼的簡單性難度是很是大的。

因此說簡單的代碼就是:代碼全部人都看得懂,尤爲是新人,可是又具有必定的擴展性和維護性,簡單的講就是簡約而不簡單。複雜的代碼首先對讀代碼的人要求就很高,最終致使代碼很難維護。代碼是簡單的是代碼可讀性高的一個方面。

代碼是高內聚的

內聚是從功能角度來度量模塊內的聯繫,代碼關聯性比較強的代碼應該放在內聚在一塊兒,造成一個獨立的功能模塊,能夠是一個獨立的類,也能夠是一個微服務。其實判斷代碼是否內聚一個比較簡單的方法就是看你可否給代碼或者服務給一個貼切的名字,若是代碼功能不內聚,咱們是很難用一個簡短的名字來表示它的含義的。

代碼是低耦合的

耦合性(Coupling),也叫耦合度,是對模塊間關聯程度的度量。耦合的強弱取決與模塊間接口的複雜性、調用模塊的方式以及經過界面傳送數據的多少。模塊間的耦合度是指模塊之間的依賴關係,包括控制關係、調用關係、數據傳遞關係。模塊間聯繫越多,其耦合性越強,同時代表其獨立性越差。

耦合比較高的代碼危害比較大,最多見的表現就是改一個模塊的代碼會影響許多其它模塊,最終必然致使你們不敢修改舊的代碼,只能不停的添加新的接口,系統的可維護性很是差。

相關文章
相關標籤/搜索