軟件工程是什么
對於這個問題,我不想用那些概念的話語來解釋這個名詞,只想寫下一些自己的理解。
在自己實現的項目中,沒有具體的開發計划,遇到問題的時候只是見招拆招,一個一個地解決。有些問題雖然解決了,但是有會出現一些新的問題。維護起來非常困難。有時候發現自己寫的代碼都是重復的,但不知道怎么改進,合成一個方法。不懂得舉一反三。學習了軟件工程這門課程,解開了我的很對困惑。
軟件工程學讓我知道,軟件項目的開發其實是一個工程,整個開發過程是可以有效組織起來的;對於開發的各個階段,已經有很多解決問題的最佳實踐,有很多方法幫助我們高效完成任務;我們還可以借助工具協助管理,提升開發銷量。
編程方法,編程技術只是術的體現,軟件工程就是對道的思考。什么又是道呢?
亞馬遜的創始人傑夫·貝索斯(Jeff Bezos)曾在演講的時候說過
人們經常問我,未來10年什么會被改變,我覺得這個問題很有意思,但也很普通。從來沒有人問我,未來10年,什么不會變?
對於開發領域,我相信大家對數據結構、算法、面向對象思想、設計模式、軟件工程。都不會很陌生。基本上所有關於軟件的事情,都繞不開軟件工程。
軟件工程的知識架構
軟件工程的目的就是聚集與質量,構建和維護高質量的軟件,所以要知道質量焦點是軟件工程的基石。
軟件工程 = 工具 + 方法 + 過程。工具、方法、過程就構成了軟件工程的三要素。
如何學習軟件工程
- 通過實踐去學習。
- 領悟軟件工程的思想。
- 寫下自己對軟件工程的感悟。
參考書目
- 《構建之法》
- 《人月神話》
- 《人件》
- 《持續交付》