我(wǒ)(wǒ)從高級開(kāi)發者身上學到的19條編碼原則

時間:2020-10-28 作者:管理員(yuán) 點擊:631

進行軟件開(kāi)發,整天敲代碼、好不容易調試成功,但是代碼的質量堪憂,可讀性不是很高,反過頭來還得對代碼進行完善。也許這不是你的編碼能力問題,很有可能在你進行代碼編寫時,一(yī)些看似不重要的編碼注意事項沒有遵守。這有一(yī)份高級開(kāi)發人員(yuán)經常遵循的 19 條原則,其中(zhōng)很多與實際編碼無關,而是與流程以及如何處理任務有關,可能對你有幫助。

1. Rule Of Three 原則
這是一(yī)條代碼重構的經驗法則,用于決定何時将複制的代碼段替換爲新的代碼 / 過程 / 方法。

它的含義是,第一(yī)次用到某個功能時,你寫一(yī)個特定的解決方法;第二次又(yòu)用到的時候,你拷貝上一(yī)次的代碼;第三次出現的時候,你要着手「抽象化」,寫出通用的解決方法。

該原則的主要思想是使代碼 / 過程 / 方法更加通用,從而保證在其他地方可以重複使用。

2. 應用程序結構與編碼方式保持一(yī)緻
應用程序結構與編碼方式保持一(yī)緻有助于提高其可讀性和可維護性。

嘗試制定編碼标準,這有助于保持編碼一(yī)緻性。編碼标準應該與變量的命名規則一(yī)樣少。另一(yī)大(dà)問題是應用程序的結構,開(kāi)發人員(yuán)進行更改或添加新内容的地方應該很明顯。

3. 減少程序嵌套
if 裏面嵌套 if 會使得程序很混亂,代碼很難讀。在編寫代碼時可能無法繞開(kāi)這些問題,但你需要經常查看代碼結構。

else if 同樣如此,因此需要盡量避免嵌套。

4. 了解全局很重要
了解全局有助處理較小(xiǎo)的細節。一(yī)旦了解了全局,你就不會花很長的時間在小(xiǎo)細節上。

5. 程序中(zhōng)的命名
在編程中(zhōng)進行命名是最困難的事情之一(yī),包括爲一(yī)個類、一(yī)個方法命名,甚至是爲變量命名。優秀的開(kāi)發人員(yuán)會花時間考慮相關的命名方式,這樣會增加程序的可讀性。

6. 減少技術負債
技術負債指開(kāi)發人員(yuán)爲了加速軟件開(kāi)發,在應該采用最佳方案時進行了妥協,改用了短期内能加速軟件開(kāi)發的方案,從而在未來給自己帶來的額外(wài)開(kāi)發負擔。這種技術上的選擇就像一(yī)筆債務一(yī)樣,雖然眼前看起來可以得到好處,但必須在未來償還。軟件工(gōng)程師必須付出額外(wài)的時間和精力持續修複之前的妥協所造成的問題及副作用,或是進行重構,把架構改善爲最佳實現方式。

對于技術負債問題,提高預估時間有助于解決這類問題。盡自己最大(dà)的努力寫好代碼,否則你将不斷地進行代碼完善。

7. 提高預估時間
你會看到,高級開(kāi)發人員(yuán)總是給任務預留更多的時間,因爲他們知(zhī)道完成任務所需的時間總是高于預期,而且在評估階段增加一(yī)個緩沖時間可以真正幫助你把事情做好。

這确實有助于解決技術負債問題。如果你低估了任務完成時間,你就可能會因爲時間不夠而寫出僅僅可以運行的代碼,簡潔性、可維護性就顧不上了。

8. 文檔和代碼注釋
文檔和代碼注釋有助于保存上下(xià)文和共享知(zhī)識。你會聽(tīng)到有經驗的人一(yī)直在說,我(wǒ)(wǒ)們是否可以記錄這個過程,或者代碼審查失敗,因爲對接口之類的内容沒有任何注釋。

9. 删除不需要的代碼
許多缺乏自信的開(kāi)發人員(yuán)會注釋掉大(dà)量的代碼塊,而不是選擇删除。但是代碼版本控制是有目的的!優秀的開(kāi)發人員(yuán)會删除應用程序中(zhōng)不好的代碼。

10. 花時間進行代碼評審
優秀的開(kāi)發人員(yuán)會花更多的時間在代碼評審上,代碼評審的重要性包括:

更早地發現錯誤;

提高開(kāi)發人員(yuán)的技能,并讓團隊的其他成員(yuán)參與到良好的實踐中(zhōng);

共享知(zhī)識;

一(yī)緻的設計和實現。

最好的代碼評審過程是:

對于一(yī)個風險較小(xiǎo)的任務,1 名開(kāi)發人員(yuán)評審就可以;中(zhōng)型 / 大(dà)型更改或者是有風險的更改,應由 3 名開(kāi)發人員(yuán)進行評審,其中(zhōng)須有一(yī)位是高級開(kāi)發人員(yuán);風險極高的更改或者是正在開(kāi)發的應用程序的新部分(fēn),應該安排一(yī)次會議,3 名開(kāi)發人員(yuán)中(zhōng)至少有一(yī)位是首席開(kāi)發人員(yuán),他們一(yī)起完成每條線并提出觀點。

11. 編寫好的測試
你會注意到經驗豐富、能力更強的開(kāi)發人員(yuán)花更多的時間編寫好的測試。擁有好的測試可以幫助你更有信心地擴展應用程序,并減少錯誤。

12. 花時間設計程序
在真正投入寫代碼之前,開(kāi)發者會經過一(yī)番思考并将代碼分(fēn)解成小(xiǎo)塊。這有助于他們更好地将所有内容組合在一(yī)起并創建更清晰的代碼。

13. 關注基礎原理,而不是語法
更多地關注基礎原理,而不是語法,有助于開(kāi)發者更快地發現問題,也能更好地理解問題并在搜索引擎上搜索解決方案。

14. 讓搜索引擎成爲你最好的朋友
高級開(kāi)發者都是用搜索引擎來解決問題的專家。從上一(yī)條也可以看出,他們關注基礎原理而不是語法,因此知(zhī)道要搜索的關鍵詞。如果你一(yī)直專注于語法,這将很難做到。

15. 首先确保程序能運行,然後再完善
你經常會看到一(yī)些相對較弱的開(kāi)發人員(yuán),他們一(yī)開(kāi)始花費(fèi)大(dà)量的時間讓程序看起來漂亮,但之後發現,程序不能運行。

優秀的開(kāi)發人員(yuán)會在更早的階段找到愉快的工(gōng)作方式。在他們把事情做好之前,盡早發現問題。這可以幫助項目進行得更加順利。

16. 風險管理和問題解決
高級開(kāi)發人員(yuán)可以定義風險,能夠通過應用設計模式提煉出複雜(zá)的問題,并且能夠根據以往的經驗獨立解決不同的問題。

17. 多提問
高級開(kāi)發人員(yuán)什麽都想知(zhī)道。他們不介意問問題,包括技術問題和業務問題,盡管這些問題聽(tīng)起來非常簡單。理解業務需求有助于開(kāi)發者編寫更好的代碼!他們不害怕問問題,因爲他們對自己的能力有信心。

18. 盡可能将邏輯排除在數據庫之外(wài)
這一(yī)點可以歸結爲你正在構建的應用程序的類型,并且僅當它不會影響性能時才适用。

高級開(kāi)發人員(yuán)知(zhī)道将數據庫查詢保留爲簡單的 CRUD 操作。CRUD 是指在做計算處理時的增加 (Create)、檢索(Retrieve)、更新(Update) 和删除(Delete)。

接下(xià)來,業務邏輯層應将 CRUD 操作整合在一(yī)起。這有助于開(kāi)發人員(yuán)了解在哪裏尋找業務邏輯。如果你在數據庫查詢和代碼中(zhōng)有邏輯,這會很快變得混亂!

19. 保持代碼簡潔
保持代碼簡潔是最好的做法。即使這意味着要編寫更多行代碼。下(xià)面是相對較弱的開(kāi)發人員(yuán)編寫的單行代碼:

return dir.Keys.Any(k => k >= limit) ? dir.First(x => x.Key >= limit).Value : dir[dir.Keys.Max()];

這樣的代碼雖然可以運行,但可讀性很低。
返回列表
在線溝通

Are you interested in ?

感興趣嗎(ma)?

有關我(wǒ)(wǒ)們服務的更多信息,請聯系

136 7365 2363(同微信) 13140187702

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--聯系索騰

與我(wǒ)(wǒ)們合作

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--與索騰合作,您将會得到更成熟、專業的網絡建設服務。我(wǒ)(wǒ)們以客戶至上,同時也相互挑戰,力求呈現最好的品牌建設成果。

業務咨詢熱線:

136 7365 2363

TOP

QQ客服

在線留言