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
小龍騰騰技術宅
執行效率高也是需要考量的指標