精心開發的韌體(firmware)可以很漂亮。遺憾的是,我看過的大多數程式碼不僅不漂亮,而且談不上好看。整潔、工整和方便閱讀的韌體不僅好看,但更重要的是,它通常比程式碼(code)更不易理解。易於理解能力的提升可以使得程式碼更容易除錯(debug)和維護。

以下是如何確保你的韌體更加好看且更容易閱讀的一些想法。

想法1—遵循風格指南(style guide)

遵循某種風格指南也許是獲得整潔、可閱讀程式碼的最明顯途徑之一。即使使用風格指南是顯而易見要做的事,但我看到許多開發人員不是沒有風格指南,不然就是完全忽視他們已經有的風格指南。一種風格指南具定義每位開發人員應該如何組織程式碼美學的優勢,遵循規律正確使用風格指南的結果是一致性的程式碼基底。

網路上有許多不錯的的風格指南範例,大多範例採用word格式,允許開發人員方便地根據他們自己的風格和目的進行修改。開發人員需要確保他們的風格指南經過同行評審或使用自動化工具得到強制實施。

想法2—設置一致的定位字元間距

如果將10位開發人員召集在一起、問他們喜愛的文字編輯器是什麼,那麼最可能得到10種不同的答案。答案覆蓋範圍包括Eclipse、SlickEdit、Sublime Text、NotePad++、VIM、Nano等等。每位開發人員都有自己的喜好,而且正如預期的那樣,當把在不同編輯器中開發的程式碼片段彙聚到一起時,這些編輯器處理空格、定位字元的方式不夠具備差異性,以至於程式碼的間格和對齊效果會完全被破壞。沒有什麼事情比打開一個檔案,發現曾經對齊的配置表卻變得歪歪扭扭更讓人惱怒。

傳統編輯器的定位字元設置為8個字元,但沒人能夠保證這個規則永遠不變,比如我用過的一些編輯器默認將定位字元間距設為4個字元。一個好的風格指南應該告訴開發人員在他們的IDE中使用哪種設置,這樣一旦在一種編輯器中編寫了程式碼,這些程式碼就能夠很容易在另一種編輯器中打開,而不遺失空格和程式碼對齊效果。

想法3—使用定位字元到空格的轉換

老實說,無論如何,開發人員都不應該使用定位字元來對齊他們的程式碼,開發人員應該使用空白鍵。但誰會願意在能按一次鍵的情況下,去按3次、4次甚至更多次的空白鍵呢?

幸運的是,許多文字編輯器都有一個隱藏的功能,亦即把檔案中的任何定位字元轉換為等效的空格!定位字元到空格轉換功能可以幫助開發人員更快的編寫出程式碼,然後在提交程式碼前轉換定位字元,釋放源自編輯器設置的對齊功能。當然,這裡的技巧首先是要確保配置了正確的定位字元參數,然後嚴格遵守規定運行轉換器。

想法4—使用程式碼美化器

即使是最守紀律的開發人員遵循了風格指南,嚴格設置了定位字元間隔,仍可能得到難看的程式碼。原因是什麼呢?開放原始碼。許多開發人員自願或被迫使用開放原始軟體,這些開放原始軟體通常看起來像老鼠窩或一盤麵條一樣雜亂。你見過感測器或晶片製造商提供的範例程式碼嗎?我只能說他們心中根本就沒有美麗這個字眼。

幸虧開發人員可以借助神一樣的程式碼美化器。程式碼美化器是一種簡單的工具,它會掃描整個純文字檔,然後根據輸入格式化參數設置對該檔案進行格式化處理,那些沒有對齊、很難閱讀的程式碼可以瞬間轉換成工整並可閱讀的程式碼。一個簡單的Google搜尋程式碼美化器,可找到大量的免費線上程式碼美化器;市場上也有價格不到100美元的大量商用程式碼美化器。

不過,程式碼美化器真的不應該用來處理開發人員自己編寫的程式碼。開發人員應該遵循他們自己的風格指南,以規定的方式開發軟體。程式碼美化器工具只可用來處理不符合風格指南的供應商程式碼和開放原始碼。

結論

乾淨、齊整和容易閱讀的韌體通常比程式碼更加容易維護和理解。由於程式碼容易被理解,開發人員可以節省開發時間,也許最重要的是,還可以減少意外在軟體中植入缺陷的可能性。創建美麗的程式碼所付出的時間和努力是值得的。