於碼農而言什麼樣的程式碼才能叫做好程式碼?
好的程式碼,就像是好的笑話——無需解釋就能讓別人明白。如果你的程式碼能夠做到不解自明,在大多數時候,你根本無需為其配備說明文件。
好的程式碼,就像是一輛配備了優秀音響和杯架的汽車,這輛車在行駛到最高速度的時候,你聽不到噪音,也不用擔心水會灑出來。在它出現故障的時候,任何一名修理工都可以使用最常見的工具,在最短的時間裡輕鬆將其修好。
而壞的程式碼,就像是一輛向你承諾最高速度可以達到200MPH,但是音響只能播放老式的磁帶,而且杯架還不穩的車。你在調整反光鏡角度的時候,汽車都會突然出現故障,而且一般的修理工還修不了這輛車,必須要找專家,讓專家在生產線上使用專業的工具來修理。
好程式碼像是一本寫作技巧高超的人所寫的書
1.容易理解
2.分章明確,每一章都有清晰的主旨
而壞的程式碼像是剛剛學會寫字的人所寫的書
1.各個章節之間紛亂複雜,每一章都沒有明確的主旨
2.連篇累牘的重複一句話,而且毫無緣由
3.作者在一開始設定了一些規則,但是在後面的內容中卻自己不斷的違反這些規則
4.突然間書裡出現了一個吸血鬼,而且還能在白天出來吸血。
要想寫出好的程式碼,你一定要牢記以下內容
可讀性——不只是你,還有你身邊與你合作的其他開發者
可維護性——讓你的程式碼在修改的時候很簡單
簡潔性——不要讓你的程式碼看上去毫無必要的複雜
效率性——儘可能的讓你的程式碼獲得最快的執行速度
明確性——如果你的程式碼能夠做到不解自明,在大多數時候,你根本無需為其配備說明文件。在為方法和屬性命名的時候,做到儘可能的合理。把長的程式碼進行拆分。不要複製/貼上程式碼塊。
如果你的同事不能輕鬆的看懂你寫的程式碼,那麼你的程式碼就不夠好。
程式碼質量測試
1.找一個從來沒讀過你的程式碼的開發者,讓他看你的程式碼,並且讓他試著說出每一個模組的作用。
2.如果你經常需要向他進行解釋,那麼說明你的程式碼不夠好。解釋的次數越多,程式碼的質量就越低。
3.如果你只是靜靜的坐在一邊,他無需問你任何問題,那說明你的程式碼質量很高。
當你在寫程式碼的時候,一些訊號可以證明你寫的程式碼質量不錯:
- 程式碼寫的很聰明,但是又不會過分的聰明
- 無論在速度上,還是可讀性上,你都使用了最佳的演算法
- 類、變數和函式都得到了正確的命名,讓人看一眼就能理解
- 休息了一個週末之後,你繼續寫程式碼,發現自己可以立刻繼續之前的工作
- 那些需要重複使用的東西總是可用
- 你所使用的方法都很短,最理想的情況下要少於50行,最多不超過100行而且能夠完美的執行單個任務
- 在呼叫方法的時候,你有著足夠的資訊,無需在程式碼堆中苦苦尋找
- 能夠很輕鬆的在此前的程式碼中進行功能新增和修改
- try/catch塊的體量儘可能的小
- 毫不費力的就可以寫出單元測試
好程式碼都是模組化的
假設你的專案中有三個不同的層——內層、中層和外層。你的內容不應該從中層和外層那裡匯入任何東西。中層不應該從外層匯入任何東西 ,這樣做的好處是,你可以對程式碼的內層進行獨立測試。
“好的程式碼本身就是最好的說明文件。” — Steve McConnell
相關文章
- 碼農深耕 - 什麼樣的程式碼才是好程式碼?
- 什麼樣的程式碼稱得上是好程式碼?
- 什麼是低程式碼?低程式碼平臺能解決什麼樣的問題?
- 碼農程式碼之外的生存指南
- 程式碼架構設計-1.為什麼要做好程式碼架構設計架構
- 本著什麼原則,才能寫出優秀的程式碼?
- 程式設計師or碼農程式設計師
- 低程式碼與無程式碼真正的區別是什麼
- 無程式碼和低程式碼最大的區別是什麼?
- 程式設計師是否有義務做好程式碼的註釋?你做好程式碼註釋了嗎?程式設計師
- 什麼是程式碼審計?程式碼審計有什麼好處?
- 低程式碼優於無程式碼?
- 什麼是程式碼整理?
- 低程式碼是什麼?
- 程式碼樣式
- PS指令碼篇--1.程式碼是什麼,寫程式碼幹嘛?指令碼
- 低程式碼與專業程式碼有什麼區別?
- 什麼是低程式碼的窘境?
- html的空格程式碼是什麼HTML
- 寫害羞的程式碼才能模組化
- 低程式碼是什麼意思?低程式碼平臺的技術特點是什麼?
- 什麼是 unicode 程式碼點Unicode
- 低程式碼是什麼意思?
- 低程式碼是什麼意思
- 【科普】碼農是程式設計師嗎?碼農與真正程式設計師的區別是啥?程式設計師
- 2021年爆火的低程式碼開發技術,對企業而言有什麼好處?
- 不止於程式碼
- 低程式碼會使初級碼農失業嗎?
- 一文看懂“低程式碼,零程式碼,APAAS”是什麼?怎麼選?
- java程式碼簽名證照適合什麼樣的場景Java
- 無程式碼相對於低程式碼的優勢分析
- 碼農與程式設計師的區別程式設計師
- 什麼是低程式碼?低程式碼開發平臺的三大優勢
- 什麼才是低程式碼開發?
- 什麼是程式碼覆蓋率
- 為什麼要做程式碼審計?
- HTTP狀態程式碼是什麼?HTTP
- 這是什麼騷批程式碼!
- javascript程式碼放在什麼裡面JavaScript