軟件開發(fā)32條法則:經(jīng)過實踐檢驗的實用建議和經(jīng)驗教訓(xùn)
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
過去的幾年里,筆者一直在為各種大小客戶專業(yè)開發(fā)軟件。一些軟件已經(jīng)在非常嚴(yán)格的環(huán)境中使用了,在這些環(huán)境中,安全性和可靠性是最重要的。根據(jù)多年的經(jīng)驗,我整理了一些實用建議。無需贅言,以下是一些自認(rèn)為實用的建議、經(jīng)驗和優(yōu)秀實踐。
1. 偶爾寫寫垃圾代碼沒關(guān)系,應(yīng)用程序的各個部分并非都是平等的。
2. 無需學(xué)習(xí)一門新的語言來學(xué)習(xí)新東西,同樣的事情通??梢杂迷S多語言來完成,深度勝于廣度。
3. 可以編寫一次性代碼來測試不同的方法,只是不要讓一次性代碼變成生產(chǎn)代碼。
4. 防御性代碼。還記得你認(rèn)為的永遠不會為空的方法參數(shù)嗎?是的,事實證明它為空,你的應(yīng)用程序爆炸了,只需編寫這些保護條款并加以使用即可。
5. 拒絕硬編碼應(yīng)用程序設(shè)置。編寫可配置組件并將環(huán)境變量傳遞給它們,重新啟動應(yīng)用程序比重新編譯和重新部署更容易。
6. 編寫易于測試的代碼。這意味著停止在命令處理程序、服務(wù)類等內(nèi)部“新建”數(shù)據(jù)庫對象等等,而是將其轉(zhuǎn)變?yōu)橐蕾図棥?/p>
圖源:unsplash
7. 僅在發(fā)生異常情況時拋出異常。
8. 了解If-Else的合適替代方法。If-Else經(jīng)常被過度使用,它是設(shè)計不良的早期跡象,事實上,許多設(shè)計模式都不需要If-Else語句。
9. 并非每個IF都需要ELSE IF或ELSE。
10. 重構(gòu)就是重構(gòu)。在進行重構(gòu)時,請勿嘗試添加新功能,相信我,結(jié)果不會很好。
11. 當(dāng)識別垃圾代碼時,花點時間把它清理干凈,使其變得更好——無論“更好”在特定情況下意味著什么。
12. 若不學(xué)習(xí)設(shè)計模式將會遇到困難。它們無處不在,學(xué)習(xí)它們可以使工作更輕松。
13. 應(yīng)用設(shè)計模式很可能會改進代碼。
14. 抨擊別人的代碼不會讓你成為更好的程序員,也不能彰顯你的資歷。初學(xué)者抨擊其他開發(fā)人員的代碼的主要原因是,即使是簡單的概念,他們有時也會很難理解。
15. 在需要界面之前不要先創(chuàng)建界面,從具體的類開始就完全可以了。
16. 確定字段/屬性/方法需要公開嗎?不,將其私有化或內(nèi)部化即可。
17. 超級簡單的類(就像簡單的方法一樣)是正確的方法。
18. 為簡單問題編寫簡單代碼。
19. 確保對重構(gòu)的每一部分都進行測試,否則你將不知道自己的問題所在。
20. 剛剛記下的代碼并不比具有1100萬次下載量的NPM / NuGet / pip程序包更好,下載f * kn程序包并繼續(xù)。
21. 不要害怕為復(fù)雜的問題提出復(fù)雜的解決方案,只是要把握好大方向。
圖源:unsplash
22. 你可以選擇幾種語言。嘗試使用后端、前端和數(shù)據(jù)庫語言,你會對團隊其他成員正在處理的事情深深地感激。
23. 停止觀看各種無用的教程,試著得出有自己的想法。當(dāng)然,當(dāng)遇到問題或需要快速學(xué)習(xí)時,偶爾使用教程也可以,只是不要受困于教程。
24. 大多數(shù)開發(fā)人員也編寫垃圾代碼。不要迷失自己的方向,他們這樣做肯定是有原因的。
25. 觀看開發(fā)者大會演講,追隨思想領(lǐng)袖,可以吸取豐富的經(jīng)驗并容易獲得靈感。
26. 在成為更好的開發(fā)人員過程中,每個人都會遇到一段停滯期。向有經(jīng)驗的開發(fā)人員尋求建議,不要害怕向任意一位開發(fā)人員發(fā)送消息。
27. 將GUID / UUID用作實體ID通常會使事情更容易處理,但請注意要做出的權(quán)衡。
28. 遵守SOLID原則。它們易于理解,可以提高代碼質(zhì)量。諸如“遵守或違背原則無所謂”之類的說法會傷害到你。
29. 如果選項數(shù)量有限,請用字符串枚舉作為參數(shù)。
30. 將代碼排列在模塊中(以.NET術(shù)語表示的項目)。不要將所有內(nèi)容都放在一個模塊中,這樣很快就會失控。
31. 記住,要解決的業(yè)務(wù)問題或開發(fā)的業(yè)務(wù)應(yīng)用程序是最重要的事情。對于企業(yè)而言,你的代碼只是達到目的的一種手段。
32. 將軟件開發(fā)視為一門手藝。編寫目標(biāo)明確的美觀代碼,積極提高自己的技能。
圖源:unsplash
這只是筆者自己在實際工作中總結(jié)出來的經(jīng)驗建議,肯定會有人反對上面的一些建議,總是會有不同的意見、方法和心態(tài),多角度考慮是有益的。你要做的是保持批判性,并把你認(rèn)為有意義的內(nèi)容融入到自己的思想行為體系當(dāng)中。
【責(zé)任編輯:趙寧寧 TEL:(010)68476606】