有效掌握編程風(fēng)格 - 問題所在

野火燒不盡,春風(fēng)吹又生。

代碼中不協(xié)調(diào)的編程風(fēng)格,就像野草一樣有頑強的生命力,永遠除不盡;
聰明的程序員立刻發(fā)現(xiàn),靠人肉去Review不是長久之計。

斬草除根,以絕后患。

于是Lint這樣的靜態(tài)代碼檢查工具中必不可少的一項就是編程風(fēng)格,大家期望在流程中加一道關(guān)卡以一勞永逸地解決該問題。

堵不如疏

風(fēng)格要保持一致

大家在編碼或Review代碼時,發(fā)現(xiàn)風(fēng)格不協(xié)調(diào)很容易,憑本能就能做到,于是達成了第一條共識:在同一上下文內(nèi)風(fēng)格要保持一致。這個上下文靈活性也可以很大:從同一種編程語言要保持同一種風(fēng)格,到同一個項目內(nèi),還可以小到同一個源文件內(nèi),甚至同一個函數(shù)內(nèi)。一切全憑Review代碼時的心情。

還是不服

風(fēng)格保持一致,并沒有解決問題,總有人跳出來抱怨受不了前任的代碼風(fēng)格。

不患寡而患不均

爭論到了這個層次,事情本身-編程風(fēng)格是什么已經(jīng)不重要,重要的是-為什么是你的,而不是我的。

知其然,知其所以然

好的編程風(fēng)格指南長什么樣

  • 告知WHY
    好的編程風(fēng)格會明確告訴你規(guī)約產(chǎn)生的背景及要解決的問題。
    如Angular的Style Guide對每個Style都有Why?的條目解釋;
    Alibaba的Java Coding GuidelinesNote條目。
  • 分級
    不是每條規(guī)約都一樣重要,可適當抓大放小。
    如Alibaba的Java Coding Guidelines依據(jù)約束力強弱及故障敏感性分為三個等級:Mandatory, Recommended and Reference。
    Angular的Style Guide則分為DoConsider兩級。
  • 給出正反例
    一圖勝千言,一個例子可以讓大家秒懂這條規(guī)約。
    如Google Java Style Guide有正例和Exception例子;
    Angular Style Guide有正例和avoid例子;
    Alibaba的Java Coding GuidelinesPositive exampleCounter example

問題解決了嗎

這樣的風(fēng)格指南像法律條文一樣,做為編程智慧的結(jié)晶,倒是解決了爭議的問題。
知法犯法的問題也有執(zhí)法機構(gòu)來解決,可不知法呢?

TBC

有效掌握編程風(fēng)格 - 命名規(guī)范

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容