[程式基礎] 程式的可讀性、可維護性、可變更性

[程式基礎] 程式的可讀性、可維護性、可變更性

  • 任何語言都需要強調編碼風格的一致性。只要是團隊開發,每個人都以相同的方式編寫程式碼就是至關重要的。這樣大家才能方便地互相看懂和維護對方的程式碼
  • 可讀性:
    • 容易閱讀、跟蹤和理解的程度
    • 提高程式碼的可讀性可以為程式碼閱讀者節約時間(避免閱讀時浪費過多無謂的時間)和精力(Debug、擴充套件功能或是效能優化的前提條件是你要讀懂這段程式碼
    • 可以參考的策略:
      • 編碼風格一致
      • 程式碼清晰表達意圖
        • 寫別人看得懂的單詞,如果選用英語,那麼避免日語、法語和漢語拼音等,儘量使用語義化的命名組合;
        • PIE 原則:意圖清楚而且表達明確地程式設計;
        • 能夠讓人快速看懂(最低限度的要求是自己一個月後能快速讀懂);
      • 恰到好處的註釋
        • 不能太多或太少,註釋的形式根據程式碼具體的情況有不同;
        • 避免用註釋包裹程式碼;
        • 儘量留下簡明扼要的註釋;
      • 評估取捨(不要編寫大段的程式碼)
        • 避免寫一些現在不需要、將來也不太可能需要的功能:
          • 不完美主義:不多寫程式碼(如會話儲存拆分);
        • 避免做沒有太大價值的優化工作;
        • 區分任務的輕重緩急:
          • 頭疼醫頭也醫腳:先容忍失敗,再解決問題(如節點關閉邏輯);
          • 不頭疼不醫頭:量化分析(如引數調整回滾等);
        • 綜合考慮一下效能、便利性、生產力、成本和上市時間……
      • 簡單就是美,避免簡單的功能寫出複雜的程式碼;
        • 保持簡單的程式碼遠比寫出複雜程式碼要難得多,但這是值得的;
        • 不編寫討巧的程式碼;
        • 避免無謂的條件巢狀和過度封裝;
        • 第一眼看上去就能知道其用處的程式碼,才是簡單而美的程式碼
        • 堅持操作方法的原子性,而後使用組合模式實現業務邏輯;
        • 避免大段程式碼,要寫高內聚、低耦合的程式碼
  • 可維護性
    • 指理解、改正、改動、改進軟體的難易程度
    • 編寫時可維護性

      • 編寫時可維護性是指在程式或系統上線後爆出 BUG,開發團隊能夠及時撲滅這個 BUG 且不會爆出其他 BUG。保持方法的原子性,提高程式碼內聚,能使某處修改的影響降到最低,這樣某處方法出現 BUG,也不太會影響到其他模組的正常運作。編寫時可維護性還包括了程式碼的可測試性。

    • 執行時可維護性

      • 執行時的可維護性是指在系統執行過程中(或無需再次編碼釋出、只需系統重啟一次)修改系統的某項配置並使其生效,且不影響現在正在進行的業務和使用者的操作。這要求軟體工程師不能把程式碼寫死。例如配置檔案、資料庫連線字串、資原始檔、日誌等。

    • 可供參考的策略:

      • 不要把程式碼寫死;

      • 預測可能發生的變化

      • 通過提高程式碼的複用性提高程式碼的可維護性

  • 可寫性:

    • 程式碼的可寫性包括程式碼的可變更性,程式碼的可變更性是軟體理論的核心。

    • 程式碼的可寫性是建立在程式碼的可維護性上的,而程式碼的可寫性與可維護性又都建立在程式碼的可讀性上。

    • 如果程式碼難以閱讀,那麼 BUG 的修正將變得難以入手,新功能的新增就更是無從入手了。

  • 相關資源參考: