對軟工聖經《人月神話》的筆記 持續更新

2021-10-02 15:38:13 字數 1921 閱讀 3642

從不曾見過任何一本書,對工學描繪的如此具有藝術性。以下僅記錄書中一些個人比較看重的點

chapter 1 the tar pit 第一章 焦油坑

史前史中,沒有別的場景比巨獸們在焦油坑里垂死掙扎的場面更令人震撼。上帝見證著恐龍、猛獁象、劍齒虎在焦油坑里掙扎。它們掙扎得越猛烈,焦油糾纏得就越緊,沒有哪種猛獸足夠強壯或具有足夠的技巧,能夠掙脫束縛,它們最後都沉到了坑底。而軟體工程就是乙個巨大的焦油坑。

chapter 2 the mythical man-month 第二章 人月神話

一切以人月去度量乙個工程的規模,是乙個危險並且帶有欺騙性的神話

chapter 3 the surgical team 第三章  外科手術隊伍

團隊合作很重要,乙個人走得更快,但是一群人才能走得更遠。外科手術隊伍包括:

chapter 4 aristocracy, democracy, and system design 第四章  貴族**,民主政治和系統設計

架構師可以擁有貴族**,但是程式設計師應該具有民主政治(對**細節如何具體實現),以及程式設計師不應該在系統設計階段無所事事,應該開始慢慢了解熟悉系統。

chapter 5 the second-system effect 第五章  畫蛇添足

設計第乙個系統的時候往往由於種種原因導致系統差強人意勉強上線。但是切忌第二個系統多加修飾,畫蛇添足。

chapter 6 passing the word 第六章  貫徹執行

一定要貫徹執行產品說明書文件。當然在四十年後的今天,敏捷開發提倡面對面的交流勝過面面俱到的文件。

chapter 7 why did the tower of babel fail? 第七章 為什麼巴比塔會失敗

巴比塔在當時不缺時間,不缺成本,不缺資源,可以說什麼都不缺,但是失敗了,因為缺少團隊交流,因為軟體工程是乙個teamwork。

chapter 8 calling the shot 第八章  胸有成竹

胸有成竹講的不要盲目去寫**,一定要先進行系統的分析設計。

chapter 9 ten pounds in a five-pound sack 第九章  削足適履

chapter 10 the documentary hypothesis 第十章  提綱挈領

chapter 11 plan to throw one away 第十一章  未雨綢繆

chapter 12 sharp tools 第十二章  干將莫邪

chapter 13 the whole and the parts 第十三章  整體部分

chapter 14 hatching a catastrophe 第十四章  禍起蕭牆

chapter 15 the other face 第十五章  另外一面

chapter 16 no silver bullet—essence and accident 第十六章  沒有銀彈

在所有恐怖民間傳說的妖怪中,最可怕的是人狼,因為它們可以完全出乎意料地從熟 悉的面孔變成可怕的怪物。為了對付人狼,我們在尋找可以消滅它們的銀彈。如果把軟體工程比作人狼,銀彈應該是指某種策略、技術或者技巧可以極大地提高程式設計師的生產力。但實際上卻是不存在。因此銀彈效應是指:妄圖創造某種便捷的開發技術,從而使某個專案的實施提高效率。又或者擺脫該項目的本質或者核心,而達到超乎想象的成功,這麼做的結果只是徒勞。

chapter 17 "no silver bullet" retired 第十七章  再論「沒有銀彈」

chapter 18 propositions of the mythical man-month: true or false? 第十八章  《人月神話》的觀點:是與非?

chapter 19 the mythical man-month after 20 years 第十九章  二十年後的人月神話

epilogue 結束語  令人嚮往、激動人心和充滿樂趣的50年

notes and references 註解和參考文獻

人月神話的理解

我的感想 除了執行時間外,記憶體的開銷也很重要。這個觀念其實早在大一剛接觸演算法不久後,就有了這個概念,做演算法題的時候不僅講究時間複雜度,還要考慮他的空間開銷程度。同樣,讀了本節後讓我知道他也同樣適應於開發的軟體。規模控制,對專案經理而言,規模控制既是技術工作的一部分,也是管理工作的一部分。他必須...

《人月神話》中的「計畫謬誤」

何為計畫謬誤?1977年,計畫謬誤 一詞最先由心理學家丹尼爾 卡內曼和阿莫斯 特沃斯基提出,它指人們低估任務完成時長的傾向。卡內曼和特沃斯基指出在制定預期計畫時,人們傾向於無視歷史資料。我們的預期沒有建立在歷史證據 粉刷房間總是需乙個月 上,而是僅關注下乙個任務的特點 房間小,不會花太長時間 201...

讀《人月神話》感 職業的苦惱

正如brooks在職業的苦惱一節中所言,軟體程式設計人員面臨中職業的苦惱 1.必須將做事的方式往追求完美的方向調整。計算機程式設計就像是在玩魔術,如果咒語中的字元沒有與預期的完全一致,魔術所要達到的現象就不會出現。2.工作目標大多情況是由他人設定,供給資源,提供資訊。個人的權威與他所承擔的責任是不相...