讀古今文學網 > 程序員必讀之軟件架構 > 本書寫作初衷 >

本書寫作初衷

跟很多人一樣,我的職業生涯從軟件開發開始,從前輩那裡得到指導,和團隊一起工作,交付軟件系統。久而久之,我也開始設計軟件系統中的一小部分,最後我的職務變成了這樣:承擔我現在認為是設計軟件架構的任務。

我的職業生涯多數是為IT咨詢機構工作,這意味著我參與過的大多數項目要麼是為 客戶構架軟件系統,要麼是和客戶一起 完成構建。IT咨詢機構要發展壯大,就需要更多的人和團隊。要組建更多團隊,又需要更多的軟件架構師。這就是我寫這本書的理由。

1.軟件架構應該容易理解 。第一次設計軟件架構時,儘管有一些優秀的導師,但我還是搞不清自己該幹些什麼。的確,有很多軟件架構方面的書籍,但它們的寫作視角不一樣。我發現其中大多數都偏研究方向,甚至完全是學術派,而我是一個尋求現實建議的軟件開發者。我想寫一本對我職業生涯的那個階段有用的書,即面向軟件開發者的軟件架構書。

2.所有軟件項目都需要架構 。我真心喜歡敏捷方法,但其中很多方法缺乏對軟件架構的明確重視,這讓我如坐針氈。敏捷方法不是說不應該做任何預先設計,但它們通常也不明確探討這一點。我發現這會讓人們得出錯誤的結論,我也看到了缺乏預先思考可能造成的後果。我非常清楚大型預先設計也不能解決問題。我感覺適當地做一些 預先思考能提供一種愉快的中間狀態,而這特別適合與不同經驗和背景的團隊一起工作的情形。我更喜歡輕量的軟件架構方法,這樣我就可以盡早讓一些 結構單元到位,從而提高成功率。

3.傳播輕量級軟件架構實踐 。這些年我學習和實踐了很多對設計軟件架構很有幫助的做法。這些實踐涉及軟件設計流程,並通過發現技術風險來溝通和記錄軟件架構。我總是認為這些實踐都合理,但情況並非如此。過去幾年,我向上千人教授這些實踐,並見證了他們的變化。寫書可以幫助我把這些想法傳遞給更多人,希望其他人也能從中受益。