什麼樣的代碼叫好代碼?

thfghfg


本人是軟件行業從業者,也經常考慮這個問題,正好借這個機會說一下個人的一些想法。個人認為好代碼,可能需要滿足一下一些條件:

第一,實現功能,我認為這也是最重要的。如果你寫的代碼連最基本的功能都沒實現,即使再漂亮再優雅,但一點實用性都沒有,這點不滿足的話,根本談不上好代碼。所以,我認為最大的質量就是實現功能,沒有實現功能,其他的都是白扯。

第二,排版合理。必要的縮進、換行、空行、空格和括號的對齊要合理,代碼有層次感。

第三、必要的註釋。類註釋,說明類的用途,類的作者,可能還有類的用法等說明。方法註釋,方法用途,方法作者,繼承說明,參數說明,返回值說明等等。變量註釋,主要說明變量的用途。代碼塊的註釋,簡明扼要的說明代碼的作用,讓其他人清楚明白。

第四、合理的命名規則。類的命名、方法的命名、變量的命名要有意義,易懂。

第五、編碼中需要注意的一些事項和遵循的原則。比如輸入流和輸出流的關閉,需要在finally中進行操作。比如在代碼中注意判空,防止NPE的出現。比如對大文件的處理,不要一下子讀入內存,防止內存爆掉。比如注意抽取常量,統一處理,便於維護。比如對異常,最好進行精細化處理,可針對不同進行不同操作等等。還有一些基本原則,比如單一原則,方法實現功能儘量單一。比如開閉原則,比如依賴倒置原則,比如接口隔離原則,比如DRY原則等等。

第六、設計模式的使用。合理的使用設計模式,可以減少你代碼的耦合度,提高代碼的擴展性,提高可維護性。另外,可藉助框架來減少你代碼的耦合度,比如我們經常提到的spring。

第七、合理的設計。進行必要的設計,但不會過度設計,讓代碼滿足當前的需求。好的架構一般是演化出來的,未必是一次設計出來的。


本人具有多年的java開發經驗,熟悉多種框架,熟悉網絡編程,熟悉java安全編程,熟悉大數據,熟悉多種安全協議,熟悉併發編程,有興趣的同學可以互相關注,互相學習!!!


代碼飼養員天齊


一段好的代碼,最少要遵守基本的編程規範,比如命名方式,注視等等,就拿變量名來說,必須讓人通過字面意思大概能知道這個變量是做什麼的,代表什麼意思,閱讀性要好,否則其他人看到代碼跟看天書一樣,完全不知道是在做什麼。同樣的,方法命名也是一個道理。

以下圖舉例來說,兩個方法都是檢查用戶名與密碼是否為空,但是第一個方法明顯規範於第二個方法,變量名就是賬號與密碼的英文單詞,一看就明白,而第二個方法以a,b,c來命名,沒人知道是啥意思,這種代碼是最差的。



allen5168


給我十天時間,helloworld能給你寫出花出來,你信不信?

什麼?這個需求明天上線,好吧,先別加註釋了,趕緊12點之前調通,別fatory了,先ifelse寫死吧!

什麼,需求變了要加個分支?來不及,來不及。

不行,領導定了明天必須上,先做個臨時版本吧。

……

……

我要花個版本改一下底層結構,要不新需求不能支持。

不行,這個二期需求已經定下來了,開發就給你一週。

草泥馬……


亂風飛絮X


我認為沒那麼複雜,只要代碼能高效的運作並滿足需求,沒有BUG和副作用,就是好代碼。如果硬要結合軟件工程,那麼可能對代碼的要求會很不一樣,規範化會是一個很重要的考量,這是公司層面要考量的。但就我看來,代碼其實和人類語言是一樣的,只不過他是機器的語言而已,因此國籍,方言,不同表達方式,哪怕WTF掛嘴邊都沒有問題。重要的是,我知道你在說什麼,而且不會誤解你的意思。任何一門工具型技術,都不能教條,因為他的根本目的在於生產,生產結果才是唯一的評判標準。


High自然


好的代碼,首先要是正確的,也就是正確地實現了所需的功能,並且沒有bug,能穩定運行。

再者執行效率要在可接受範圍內,當然高效更好。

第三,要符合項目的編碼規範,如果沒有編碼規範,至少要做到該有的空格、空行不能少,讓代碼結構清晰;儘量使用能表達變量含義的變量名,少用i,j,k這種變量名,再加上一些必要的註釋,讓代碼更易懂,將來也更好維護。


zcphoenix2018


鄙人還是喜歡python的強制代碼縮進,簡直就是強迫症患者的福音,看著就很舒服


Python當歌


如詩般優美的代碼。


曉曉vip


好讀,好讀,好讀

好改,好改,好改

做到好讀好改,程序的效率一般不會太差。工作個幾年你就會明白,一般工作中最重要的是邏輯而很少強調運行效率,過分強調運行效率和簡化寫出來的代碼一般是找罵


蜂鳥7625


沒人說嗎,我先說,一看就是net


小龍騰騰技術宅


執行效率高也是需要考量的指標


分享到:


相關文章: