Atitit 提升可讀性的藝術 目錄 1. 幾大原則 2 1.1. 直接原則,無腦原則。。。 2 2. 本地化命名法 2 2.1. 可以使用管理命名法 多個api 比如old api,new ap

attilax發表於2020-11-24

Atitit 提升可讀性的藝術

 

目錄

1. 幾大原則 2

1.1. 直接原則,無腦原則。。。 2

2. 本地化命名法 2

2.1. 可以使用管理命名法 多個api 比如old api,new api 2

2.2. 相關方法使用字首發名稱空間 2

2.3. 提高抽象級別,what與how相分離,優先指明what 2

2.4. 命名規範 參考知名api 2

2.5. 使用名稱空間,不支援名稱空間的事業類似字首 2

3. 管理程式碼儲存區域 優先檔案,函式 oo模式 3

3.1. 靜態模組最好了 3

3.2. 其次靜態方法 ,最後oo動態方法 3

4. 減少巢狀與跳轉 3

4.1. 減少簡化層次結構,單層其實可以滿足大部分架構,其次雙層,多層 3

4.2. 一個流程程式碼不要跨檔案,跳轉過多 3

4.3. 減少語法噪音巢狀使用lambda 與指令碼 3

4.4. 減少跳轉  內部類也不錯 3

4.5. 匿名方法,匿名建構函式 初始化塊,動態map模擬匿名類匿名方法 輸出 3

5. 減少語法噪音 4

5.1. Lambda 4

5.2. 多使用static import匯入機制。。注意函式名不要重複了。。 4

6. 適當分類 名稱空間模式 4

6.1. 資料庫使用分庫提升可讀性 4

6.2. 名稱空間字首發 4

7. 引數 使用通用介面   大力減少程式碼 5

8. Dsl 5

8.1. 表格對映表代替選擇 決策樹模式等 5

9. 同步 法  優先於非同步法 5

10. Other 5

10.1. 適當的事件驅動法 5

10.2. 異常模式代替返回 5

10.3. 方法鏈 5

10.4. 字串模板技術 5

10.5. 不要使用try catch包裹,直接方法上throw 出去,提升可讀性,減少語法噪音 5

10.6. 資料結構參照標準規範,方便文件對照  各種微格式等rss 5

10.7. 遞迴代替迴圈 6

10.8. 中綴表示式  優先於 前字尾表示式 6

11. 各種dsl 6

11.1. Ognl nodejs python 6

11.2. Guava等lib 6

 

 

  1. 幾大原則

 

    1. 直接原則,無腦原則。。。

 

  1. 本地化命名法
    1. 可以使用管理命名法 多個api 比如old api,new api
    2. 相關方法使用字首發名稱空間
    3. 提高抽象級別,what與how相分離,優先指明what
    4. 命名規範 參考知名api 

參考知名api  參考知名sdk 遊戲cocos2d、等..

Sql style api

這樣可以大大減少資料文件的編撰。。網際網路上已經有了

    1. 使用名稱空間,不支援名稱空間的事業類似字首

缺點就是命名長度變長了,單是可讀性優先,會提升可讀性,名字長度有ide自動補全緩解。。

 

  1. 管理程式碼儲存區域 優先檔案,函式 oo模式
    1. 靜態模組最好了
    2. 其次靜態方法 ,最後oo動態方法

 

  1. 減少巢狀與跳轉
    1. 減少簡化層次結構,單層其實可以滿足大部分架構,其次雙層,多層
    2. 一個流程程式碼不要跨檔案,跳轉過多

特別是指令碼會很麻煩。。帶來ide和大腦跳轉過多。。

 

    1. 減少語法噪音巢狀使用lambda 與指令碼
    2. 減少跳轉  內部類也不錯

 

    1. 匿名方法,匿名建構函式 初始化塊,動態map模擬匿名類匿名方法 輸出

匿名函式雖然沒有名字,但也是可以有建構函式的,它用建構函式塊來代替,那上面的3個輸出就很清楚了:雖然父類相同,但是類還是不同的。 

 

  1. 減少語法噪音
    1. Lambda
    2. 多使用static import匯入機制。。注意函式名不要重複了。。

 

  1. 適當分類 名稱空間模式
    1. 資料庫使用分庫提升可讀性
    2. 名稱空間字首發

 

 

  1. 引數 使用通用介面   大力減少程式碼
  2. Dsl
    1. 表格對映表代替選擇 決策樹模式等
  3. 同步 法  優先於非同步法
  4. Other
    1. 適當的事件驅動法
    2. 異常模式代替返回
    3. 方法鏈
    4. 字串模板技術
    5. 不要使用try catch包裹,直接方法上throw 出去,提升可讀性,減少語法噪音

 

結構可讀性

分層

 

    1. 資料結構參照標準規範,方便文件對照  各種微格式等rss

資料庫的schedu_info

日程的ics

郵件eml

文章 meatawebblog

通訊錄 vcf

 

    1. 遞迴代替迴圈

 

    1. 中綴表示式  優先於 前字尾表示式

 

 

  1. 各種dsl
    1. Ognl nodejs python
    2. Guava等lib

 

Atitit readablity enhance art 可讀性的藝術v4 t99.docx

Atitit. 提升可讀性推薦標準規範解決方案 關於程式語言的v5 docx

Atitit. 提升可讀性推薦標準規範解決方案 關於程式語言的v5 docx

 

1. 提升可讀性的意義 1

2. 提升可讀性大原則: 2

2.1. 分解 分類 層次結構 2

2.2. 命名規範推薦標準 2

2.3. 關注點分離原則 2

2.4. 面向人類程式設計,優先於面向機器,可讀性優先於效能原則 2

3. 具體措施 2

3.1. (推薦)Dsl **重要 2

3.2. **(推薦)使用漢字命名,獲取更大的可讀性,適合於絕大多數專案利大於弊(推薦) 2

3.3. (推薦)使用名稱空間,不支援名稱空間的事業類似字首 3

3.4. (推薦)有時候異常處理也會提升可讀性 3

3.5. (推薦)限制使用spring等框架範圍,防止濫用 3

3.6. (推薦)提高抽象級別,what與how相分離,優先指明what 3

3.7. (推薦)減少架構層次,雙層比三層四層架構更加簡單易讀 3

3.8. (推薦)注意學院派與工程派完全不同 3

3.9. 命名規範 參考知名api 3

3.10. (推薦)Sql style api 4

3.11. 適當分層、DI和AOP是繼OO之後的分解方法 4

3.12. 函式式樣 流程控制全部函式化 4

3.13. 遞迴代替迴圈 4

3.14. 中綴表示式  優先於 前字尾表示式 5

3.15. 防止出現大量介面,,介面過多過濫 5

3.16. 減少 巢狀級別 5

3.17. (推薦)使用模板法,關注點分離。。字串拼接太難讀怎麼辦?? 5

3.18. 減少“語法噪音” 5

3.19. 參考 5

4. Refactor 5

4.1. 方法鏈 5

5. 參考資料 5

Atitit 可讀性技術與實踐範例 艾提拉著

 

相關文章