讀者來信指出:《0bug-C/C++商用工程之道》中C++用法過於保守,僅將其視為「帶封裝的C」,未深入運用多態、繼承等面向對象高級特性,也未涉及設計模式。這確實觸及了我的技術棲息地——我承認,對C++的理解確不深,設計模式也沒系統研讀過。但這背後,藏著一個職業程序員的生存邏輯。
1995年進入遊戲行業前,我是建築施工員。轉行意味著起點較低,又必須在項目壓力下快速產出代碼換取薪水。無法像科班生那樣系統學習,只能「用到哪塊、惡補哪塊」——這就是「用以致學」模式。缺點是理論基礎薄弱、易走彎路、術語溝通有障礙;優點是無條框束縛、實戰驗證過的技術極具凌厲度、解決實際問題極高效。
長期堅持下來,養成鐵律:「計算機是檢驗程序的唯一標準」。語言好不好、技術新不新,跑起來滿足需求、開發多快好省才是硬道理。
核心原因是開發需求。年輕時可拼命加班,但隨著年齡增長(我快40歲了),體力不再支持高強度重複勞動。必須建立屬於自己的高效、低Bug、可長期維護的工程庫,通過持續沉澱讓後續工作越來越輕鬆,而非每次從零開始。
《0bug》書中的庫正是這個理念的產物。與其花費數月脫產攻克C++晦澀特性,不如打磨能直接產出價值的庫——這才能幫我賺錢、養家、走得更遠。
許多學生以此為由拒絕自建庫。但實際工作中:機器、平台、需求千變萬化,現成庫總有不合適用時。「大多數庫在大多數時候都是無用的」。遇到無庫可用時,只能自己寫。不敢面對這種局面,就不敢稱職業程序員。
這些都是純C實現——因為無實體數據的純算法模塊,封裝類全是靜態函數,不如C簡潔直接。
至於把C++當「帶對象的C」用?既然這角色演得好、庫裡用得順、工作裡沒阻力,就讓它繼續演下去吧。不然書名就得改成《0bug-C語言商用工程之道》了。😄
本文出自「肖舸的blog」博客,轉載請保留出處。