「回到我在貝爾實驗室(The Bell Lab)工作的日子。我們有個不嚴謹的發現,採用一致性的縮排風格是降低程式錯誤率的最顯著指標之一。」
「我們原本希望架構或程式語言或其他更高概念的東西是影響品質的因素,當我們以為專業能力歸功於對工具的掌握和高尚的設計方法時,那些寫程式的人(Coder),僅僅是在應用程式裡添加一致的縮排風格就產生了價值」」
取自: Clean Code (p.xii)
就從最簡單的變數命名、註解,及編排來介紹吧~ 希望每一位不論初學者或是老手,在看完本日文章後都能回頭去審視自己有沒有注意過這些很簡單的細節呢? 這之前,筆者先行補充各大語言的編程風格與慣例,讓有興趣的讀者們可自行去了解。這邊須先提醒,關於程式碼的風格 (Style) 或慣例 (Conventions),在不同語言上的實踐都有差異
C# 來說可以參考微軟官方文件: C# Coding Conventions
Python 的話官方文件則有 PEP 8 -- Style Guide
可以看到其實與 C# 的 Codeing 風格有些不同,即使只是宣告基本的資料結構而已
JavaScript & TypeScript 的編碼風格又像是另一個世界了...
Ref: Google JavaScript Style Guide、Google TypeScript Style Guide
如果對 註解風格 及 API 文件規格 的產生也很注重,也可參考:
SQL 語法的可讀性是很多人常忽略的,簡單引用 2 個例子比對:
/* 查閱文章資料 */
select albums.title, albums.release_date, albums.recording_date, albums.production_date
from albums where albums.title='Charcoal Lane'
or albums.title='The New Danger';
-- Which one is more clean!?
/* 查閱文章資料 */
SELECT a.title,
a.release_date, a.recording_date, a.production_date
FROM albums AS a
WHERE a.title = 'Charcoal Lane'
OR a.title = 'The New Danger';
Ref: SQL樣式指南 · SQL Style Guide
即使是最簡單的 HTML 也能從一致的編排風格中受益,可以從 w3schools 給出的範例中發現不同編排風格所帶來的差別: HTML Style Guide and Coding Conventions
在多人團隊的協作過程,版控工具也有其對應的 Conventions,如下圖:
Ref: Git – Commit Message Conventions、Git Commit Message 這樣寫會更好,替專案引入規範與範例
要是當時就知道 Git Commit Conventions,我就能更好的維護和整理作品了!
相信如果不是因為大家都坐在附近,其他的成員根本沒辦法得知我每一次的改版都做了些什麼...。Commit Messages 風格很重要的應用就在於: 團隊協作時讓彼此能夠快速了解進度狀況!