技術日新月異,身為開發者常感迷茫。本文嘗試探討程式設計中不變的核心本質,期能為學習方向提供指引。
從職業誕生至今,程式設計的本質未變:概念抽象與邏輯描述始終是核心。程式為解決問題而存在,問題可拆解為概念與邏輯關係。結構化與物件導向只是表達方式的不同,隨規模增大,邏輯複雜度隨之提升。
程式品質不在技巧,若缺乏良好的邏輯組織,即使套用所有 Effective C++ 條款,程式仍可能高耦合、低內聚、難擴充。四大要素為:
需求:依已知檔名產生暫存檔名。輸入 prog.dat → 輸出 prog.tmp;mydir → mydir.tmp;hello. → hello.tmp;oops.tmp → oops.xxx。
if (無副檔名)
產生 檔名 + ".tmp"
else
取得副檔名
if (副檔名為空) 產生 檔名 + "tmp"
else if (副檔名 == "tmp") 替換為 "xxx"
else 替換 "." 之後為 "tmp"
邏輯獨立於語言與作業系統,技巧只是載體。
作者發現自己 90% 時間投入技巧精進,邏輯表達能力卻停滯不前。即使倒背 Windows 核心程式設計 等巨著,若無邏輯組織能力,仍寫不出高品質程式。林銳《高品質 C++/C 程式設計指南》雖詳盡語言細節,卻將「技巧」等同「高品質」,恐誤導初學者。
此議題宏大,拋磚引玉,歡迎共同探討。