首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

用 C 設計,用 C++ 編碼:系統級開發的務實風格

     編輯:關於C++

前言:C++ 的「心智包袱」與 Linus 的啟示

Linus 指出「關鍵在設計」,暗示好設計用 C 也能實現,C++ 反而帶來額外「心智包袱」。大多數 C++ 程式設計師難以跨越此關:寫代碼時不斷糾結「有無更好方案?加模板?抽象基類?Bridge 模式?所有權誰負責?shared_ptr?weak_ptr 斷循環?」,結果耗時極大,不如用「Ctrl+C/V+Modify+Debug」的 C 風格開發者效率高。

核心主張:C 設計 + 具體類 + STL

思考階段用 C 方式:系統級開發中,華麗抽象機制用不上。以 C 思維思考問題,設計更精簡、直接、精益。C 同樣能做基於物件、甚至組件級設計。

實作階段選用 C++ 現成設施:設計方案出來後,若某部分 C++ 已完美實現且無副作用,直接用 C++ 實作對應部分。

歷史佐證與實例

  • COM 設計源於 C:發現與 C++ 虛函數表機制吻合,後改用 C++ 大量開發,微軟甚至修改編譯器適應 COM 設計——**先有設計,再讓語言適應**
  • 早期 C++ 精神:將 C 常用模式內建語言,提升開發效率。今日應回歸此精神

STL 的正確使用姿勢

從 C 設計出發,常見資料結構與演算法恰為 STL 強項:

  • 針對 C 陣列適用:accumulate 求和、transform 映射、adjacent_find 尋找相鄰相等項
  • lower_bound/equal_range 二分搜尋
  • 前提:必須熟悉 STL 內部機理,否則老實用 C

總結

系統級開發:用 C 設計(精簡直接),用 C++ 編碼(利用現成設施提效)。避免讓設計迷失於語言機制,回歸「工具服務設計」本質。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved