Java程式設計中,有哪些好的習慣從一開始就值得堅持?

陝西優就業發表於2018-12-25

640

來源:zhihu.com/question/32255673/answer/532272606


1. 規範化自己的程式碼,少點個人風格,多點通用規矩,並學會使用CheckStyle工具。


其實任何東西我們都希望它能夠“自動化”,隨著程式設計經驗的提升,大部分程式設計規範你已經瞭然於心,但是實際操作的時候,又總是忘這忘那,我們希望一個工具來幫我們自動檢測我們的程式是否是符合規範,結構良好的。


事實上,任何語言都是有自己的程式設計規範的,程式設計規範的制定,十分有利於程式碼的閱讀和潛在Bug風險的降低,比如在Java中,有嚴格的命名規範:


對於類(Class)的命名,有這樣的規範:


Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep your class names simple and descriptive. Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML).


類的名字必須是名詞,每個單詞的第一個字母需大寫。儘可能讓你的類名稱簡潔又能傳遞清楚含義。儘量使用單詞全拼,避免同義詞或縮寫(除非縮寫使用更廣泛,比如URL, HTML等)。


比如在Java中,有嚴格的文件規範:


/**
* Returns an Image object that can then be painted on the screen.
* The url argument must specify an absolute {@link URL}. The name
* argument is a specifier that is relative to the url argument.
* <p>
* This method always returns immediately, whether or not the
* image exists. When this applet attempts to draw the image on
* the screen, the data will be loaded. The graphics primitives
* that draw the image will incrementally paint on the screen.
*
* @param  url  an absolute URL giving the base location of the image
* @param  name the location of the image, relative to the url argument
* @return      the image at the specified URL
* @see         Image
*/

public Image getImage(URL url, String name) {
       try {
           return getImage(new URL(url, name));
       } catch (MalformedURLException e) {
           return null;
       }
}


文件是用HTML語言寫成的,前半部分是關於當前方法或類的描述,後面需要有引數標籤@param和返回標籤@return,還可以加一些別的標籤,比如@see,只有這樣,當別人試圖引用你的程式時,才能馬上明白你的某段程式是用來幹嘛的,引數傳遞,返回等一目瞭然,要知道,實際工作中,大量的協作就意味著程式碼需要高度的重用性,你必須把你的程式封裝完美,並且讓別人僅僅看你的文件,就知道你的這個API怎麼用。


上面說的僅僅是程式設計規範的冰山一角了,問題是,你有時會忘掉或用錯一些規範,即便你知道它。


所以我們需要使用checkstyle外掛去自動檢測我們的程式是否符合規範。


對於Java而言,詳情請見:http://checkstyle.sourceforge.net/


Github地址:https://github.com/checkstyle/checkstyle


在各大JavaIDE中,可以直接在Eclipse Marketplace中下載:


640


其他的語言應該也有自己的外掛,可以自行谷歌瞭解。


2. 寧可變數名長,也不要讓變數名短得讓人無法推測其含義。


3. 在電腦裡安裝兩套輸入法,程式設計的時候,將中文輸入法徹底關掉,確保任何快捷鍵都不會將其轉換成中文輸入法,防止中文類似符號引起混淆,比如:


中文 :(); English: () ;


一點點小錯誤,就有可能讓你多花一兩個小時在沒有意義的事上,人生苦短,儘量避免低階錯誤。


4. 儘可能杜絕重複程式碼,凡是需要用至少兩次的程式碼,給它單獨做一個類或函式。


5. 避免類與類之間的內部呼叫(Cycle Reference),其實也就是降低函式模組的耦合程度。類與類之間的呼叫只允許通過介面,保證更改某個類的時候,其他的仍然能工作。


6. 多讀別人的優秀程式碼,拿別人的優秀程式碼和自己的程式碼進行對比,學習別人的長處,吸收經驗。


7. 嘗試著做內容的生產者,嘗試著寫一些教程或筆記,分享給社群,不要只做社群內容的吸收者,還要不斷地生產內容,回饋社群給你的幫助,比如在StackOverFlow上回答別人的問題等。


8. 既要腳踏實地,也要多看看社群發生了什麼新聞,有什麼新的技術和軟體的釋出,這些技術和軟體將怎樣影響你的開發工作,現在使用的IDE或Editor是否有更好的替代產品等等。


9. 沒有任務的時候,也不要閒下來,去開發點你喜歡的東西,從中挑戰自己,增長經驗。


10. 不要過分依賴教程,要學會看官方文件。凡是能被做成教程的東西,往往已經過時了,最新的技術,最新發布的標準,往往沒有現成的教程,你需要去認真閱讀官方文件,那裡的東西才是最權威的。


11. 不要參與語言好壞的爭論,人們往往偏向於喜歡自己用得熟練,用得多的那個語言,語言好壞之爭,就和爭誰的女朋友漂亮一樣,我當然覺得自己的女朋友(雖然是null)最漂亮,但是別人並不這麼覺得。


12. 當你有什麼需求的時候,往往別人也有這個需求,而且往往也有了相應的工具去解決你這個需求,比如,你想將函式的呼叫關係視覺化,弄成樹狀圖那樣,這樣的工具已經有了,比如SourceInsight(付費),Source Navigator(免費)等。


13. 少在國內的XX軟體園裡下載各種破解軟體,盜版軟體等,這些軟體園為了盈利,會在你安裝的過程中,悄無聲息地給你安裝上一堆其他的流氓軟體,360首當其衝,這些垃圾軟體,刪的越乾淨越好。


14. 你的開發電腦,CPU可以差些,但記憶體最好大些,推薦至少要8G,甚至推薦10G往上走,你常常需要同時開啟一堆瀏覽器頁面和一個IDE甚至還有別的一堆工具,如果你做過安卓開發,AndroidStudio動輒就呼叫你電腦2-3G的記憶體,一般的4G電腦肯定是吃不消的,嚴重降低開發體驗,但也並不是讓你換電腦,記憶體條瞭解一下。


15. 保持一個健康,乾淨的電腦狀態,硬碟裡的檔案儲存要有調理,容易尋找指定檔案,降低檔案丟失概率,加快檔案尋找速度。


16. C盤快滿了的話,可以通過Disk Manager將別的磁碟的空間送給C盤。


17. 用NetWork NotePad畫網路圖表示函式呼叫關係(當然你可以用別的來畫),像這樣:


640


這是前兩天編一個FlappyBird時草草畫的圖,雖然簡陋,但有用。


18. 可以考慮用一個電腦架子,防止烏龜頸,保護頸椎。


640


19. 下載一個護眼寶,保護視力。


640


20. 多看Java團長公眾號裡的文章,但不要做一個不點讚的冷漠青年。


(完)


640?


Java團長

專注於Java乾貨分享

640

掃描上方二維碼獲取更多Java乾貨

相關文章