讀《設(shè)計(jì)原本》

FrederickP.Brooks.Jr.的這本書(shū)是我們從事IT的人都應(yīng)該讀讀的書(shū),雖然做軟件隨著歷史變得越來(lái)越專(zhuān)業(yè),但是對(duì)于從事軟件編寫(xiě)的我們來(lái)說(shuō),歷史會(huì)交給我們技巧的演變。

Brooks之前的《人月神話》我還沒(méi)有讀,不過(guò)透過(guò)一些簡(jiǎn)介,以及《設(shè)計(jì)原本》描述的細(xì)節(jié)不難推測(cè)出《人月神話》是一本教導(dǎo)IT如何高效率的編寫(xiě)出高質(zhì)量的代碼并且能夠滿足用戶的要求。

做為IBM出身的大牛,在一個(gè)巨型公司工作了幾乎半輩子,他身上會(huì)或多或少的沾染上大公司的通病。但是這不影響他在設(shè)計(jì)硬件和軟件方面的權(quán)威。時(shí)代在發(fā)展,軟件開(kāi)發(fā)也從個(gè)人到團(tuán)隊(duì)到小團(tuán)隊(duì)的演變,但是一些共通的比如設(shè)計(jì),會(huì)一直如影隨行。對(duì)我們?cè)O(shè)計(jì)人員來(lái)說(shuō),最希望的就是一旦設(shè)計(jì)確定,就不會(huì)在變動(dòng)了。但是在現(xiàn)實(shí)生活中這是不可能的。有客戶的關(guān)系,有設(shè)計(jì)公司領(lǐng)導(dǎo)的關(guān)系,有設(shè)計(jì)人員的關(guān)系,有實(shí)施人員的關(guān)系,甚至一個(gè)掃地的阿姨都能改變?cè)O(shè)計(jì)的正確方向。這在作者的理解是要設(shè)計(jì)一個(gè)理性模型,但是這個(gè)理性模型可能有很多約束,包括已知的和未知的。這個(gè)理性模型有長(zhǎng)處也有缺點(diǎn)。它可以有明確的分工,細(xì)致的設(shè)計(jì),能夠很好的預(yù)測(cè)軟件的開(kāi)發(fā)時(shí)間和消耗。但是需求是不斷變化的。對(duì)于現(xiàn)在的我來(lái)說(shuō),需求基本上變動(dòng)不大,約束明確,結(jié)果明確,我在項(xiàng)目中可以事先設(shè)計(jì)好功能的實(shí)現(xiàn)。滿足Brooks的開(kāi)發(fā)完整性就好。對(duì)于優(yōu)美的軟件,Brooks提到優(yōu)美的框架是設(shè)計(jì)的目標(biāo)和實(shí)現(xiàn)后的結(jié)果是一致的,并且附帶代碼簡(jiǎn)潔、功能明確的優(yōu)點(diǎn)。

Brooks對(duì)與團(tuán)隊(duì)的協(xié)作,以及分布式的團(tuán)隊(duì)協(xié)作有深入探討,畢竟在IBM做一個(gè)項(xiàng)目需要世界不同地點(diǎn),不同時(shí)區(qū)的同事共通努力,團(tuán)隊(duì)協(xié)作是歷史發(fā)展的產(chǎn)物,功能越來(lái)越龐大,需求越來(lái)越細(xì)化,都決定了大部分的開(kāi)發(fā)者不能精通各個(gè)方面,每個(gè)細(xì)節(jié)都有相應(yīng)領(lǐng)域的執(zhí)牛耳者,這就決定了團(tuán)隊(duì)協(xié)作越來(lái)越重要。愛(ài)迪生可以一人發(fā)明很多東西,現(xiàn)在建造一架飛機(jī)需要各個(gè)團(tuán)隊(duì)成員通力合作。對(duì)于分布式的團(tuán)隊(duì)開(kāi)發(fā),Brooks提到了各種溝通手段,但是Brooks還是極力推薦團(tuán)隊(duì)成員面對(duì)面的溝通,這帶來(lái)的結(jié)果不僅僅是技術(shù)和問(wèn)題的交流更加流暢。對(duì)于文檔書(shū)寫(xiě),Brooks也是相當(dāng)在意的。Brooks覺(jué)得好的文檔書(shū)寫(xiě)是優(yōu)美架構(gòu)的一部分。在我們公司的開(kāi)發(fā)理念就是,盡量把時(shí)間用到設(shè)計(jì)與開(kāi)發(fā)上。我覺(jué)得和公司的規(guī)模,以及人員流動(dòng)也有關(guān)系。這種現(xiàn)象在現(xiàn)在的小公司或許非常普遍。這也許是未來(lái)的一種趨勢(shì)。[我覺(jué)得未來(lái)的公司都是越來(lái)越細(xì)化,應(yīng)該是一個(gè)小而精的時(shí)代]。但是協(xié)作確實(shí)我們必要的。

Brooks非常重視人才的培養(yǎng),Brooks再說(shuō)中說(shuō)過(guò),他在IBM做過(guò)最正確的事就是把一位同事送到高校深造,而這位同事開(kāi)發(fā)出的關(guān)系數(shù)據(jù)庫(kù)一直到現(xiàn)在還是IBM的搖錢(qián)樹(shù)。人才的培養(yǎng)不僅是培養(yǎng)他人,也包含培養(yǎng)自己,我們可以從以前優(yōu)秀的設(shè)計(jì)中吸取精華,研習(xí)來(lái)提高自己的設(shè)計(jì)。而這恰恰是現(xiàn)在每個(gè)從事IT的設(shè)計(jì)人員所欠缺的。我們?cè)谠O(shè)計(jì)建筑時(shí),會(huì)去教堂,會(huì)去設(shè)計(jì)優(yōu)美的建筑參觀。去研究他的歷史,他的架構(gòu),他的施工。對(duì)于軟件開(kāi)發(fā),我們也需要這樣的培訓(xùn)。

設(shè)計(jì)是預(yù)先思考的解決方法,他的優(yōu)雅或臃腫,他的可擴(kuò)展或固定。都是我們?cè)谠O(shè)計(jì)時(shí)的經(jīng)驗(yàn)總結(jié)。Brooks對(duì)于優(yōu)秀的設(shè)計(jì)師是通過(guò)設(shè)計(jì)經(jīng)驗(yàn)而取得進(jìn)步還是生而就為設(shè)計(jì)堅(jiān)定的選擇了經(jīng)驗(yàn)決定。經(jīng)驗(yàn)是我們?cè)谠O(shè)計(jì)過(guò)程中實(shí)實(shí)在在的碰到了問(wèn)題并解決了,我們?yōu)槭裁词褂眠@種方法而舍棄另外的方法都是我們?cè)诋?dāng)時(shí)的約束以及當(dāng)時(shí)的資源決定的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容