讀《大道至簡:軟體工程實踐者的思想》有感

杨家兴發表於2024-08-11

《大道至簡:軟體工程實踐者的思想》是一本由軟體工程師周愛民創作的一部有關軟體工程行業的鉅著,其中的許多內容看似需要許多專業知識才能讀懂,但其中心思想對於我這個初學者也有很深的影響和啟發。
書中提到,程式的構成是演算法、結構和方法的結合。程式設計的首要任務是理清邏輯關係和依賴關係,而非直接寫程式碼,這強調了思想先行的重要性。文章進一步指出,合理的資料結構是程式設計的基礎,而演算法則是程式邏輯實現的描述,所有的演算法無非是順序、分支和迴圈這三種執行邏輯的組合。
書中強調程式語言只是工具,沒有“會不會”的問題,只有“喜歡不喜歡”的問題。語言的選擇應根據其適用範圍,而非個人偏好。對於程式設計方法的討論,書中提出程序導向程式設計涵蓋了“流程”、“結構”和“程式設計方法”,而物件導向程式設計則主要解決了“結構”和“程式設計方法”的問題。
其中關於程式設計思想的重要性,讓我深有感觸。作為一名程式設計學習者,過去我常常急於上手寫程式碼,而忽略了對問題本質和邏輯關係的深入思考,此外我也遇到了明明理論知識學習並沒有落下但C語言就是長時間入不了門的問題。透過這本書,我認識到只有先理清邏輯,明確依賴關係,像整理書桌一樣整理學過的理論知識,才能寫出高質量的程式碼。這讓我重新審視了自己的學習方法,開始注重程式設計前的思考和規劃。
在專案程式設計經驗方面,書中提出了“總體結構到物件導向,關係到資料結構,實現到演算法”的方法。這種系統化的思維方式,使我在處理複雜專案時能夠更加遊刃有餘。透過明確各個環節的重要性和關係,我能夠更好地把握專案的整體程序,提高開發效率。其中對瀑布模型和層狀模型的闡述,使我對軟體工程的理論體系有了更深入的理解。瀑布模型將開發過程分為需求、分析、設計、開發和測試五個階段,強調了階段性的遞進和各階段的緊密聯絡。而層狀模型(EHM)則將軟體工程分為不同層次,強調了角色、環節和溝通的重要性。這些模型幫助我在實際開發中更好地組織和管理團隊,提高專案的整體協調性。在討論敏捷開發方法時,提到了Scott的三個關鍵見解:“你不必非要做一個超人”、“敏捷性只是一個思維集”和“成為一名博學型的專家”。
這些見解讓我認識到,程式設計不僅僅是技術問題,更是思維和溝通的問題。透過與他人合作,廣泛學習不同領域的知識,我能夠更快地解決問題,提高自己的敏捷性。《大道至簡:軟體工程實踐者的思想》為我提供了關於軟體工程的全新視角和實踐方法。書中對程式設計思想、資料結構、演算法、軟體工程模型以及敏捷開發方法的詳細講解,使我在理論和實踐上都有了新的提升。

相關文章