讀書筆記 《大教堂與集市》

2021-06-27 15:18:53 字數 1416 閱讀 4349

看到裡面說道linus以重用 minix(乙個用於 p c 機的迷你型 u n i x 類作業系統)的**和理念作為開始,引領幾千名散布在全球各地的開發者們,利用業餘時間,僅僅是通過 i nternet 這種脆弱的合作,就鬼斧神工般地造就了乙個世界級的作業系統。 

這突然讓我想到小公尺在出手機前的miui,就適配市面上一些主流的機型,每週發布(linux當時也是每週發布),讓很多使用者刷機來用,及時發現和提出問題,並且提出一些有價值的建議。記得當時買了一部摩托的defy,刷了miui之後覺得系統好用了很多,基本的撥號、簡訊、通訊錄都好用很多,雖然問題也不少,但這種參與互動的感覺以及本身有很多兩點的功能就吸引使用者投入,自願當小白鼠,自願奉上自己的建議。 當然這個和linux的開源合作不一樣,但總有些共通處。

書中提到作者在遍尋乙個好用的郵件客戶端未果,著手寫乙個時(準確說的是在現有的好的開源**上完善乙個),總結了幾點:

1. 好的軟體作品,往往源自於開發者的個人需要。但太多的軟體開發人員並不需要也不熱愛他們正在開發的軟體,他們把程式設計當差事,為的只是拿薪酬。 linux 世界裡可不是這樣——也許這可以解釋為什麼 linux社群裡原創軟體的平均質量是如此之高。

2. 優秀的程式設計師知道寫什麼,卓越的程式設計師知道改寫(和重用)什麼。

3.「計畫好扔掉乙個吧,遲早你會這麼做的。」(fred brooks,《人月神話》第11章)或者可以這麼說:在你第一次把問題解決的時候,你往往並不了解這個問題,第二次你才可能知道怎麼把事情做好。所以,如果你想做對事情,至少要再做一次。

5. 當你對乙個程式不再感興趣時,你最後的責任就是把它交給乙個可以勝任的接棒者。

其中,對第2、3點有點感觸。

對於第2點,mike gancarz在《linux/unix設計思想》中曾經提到過軟體開發人員看完別人的解決方案時經常覺得自己也可以做得更好,於是花費大量的時間去重新造輪子,事實上不一定超越現有的,何況也耽誤了他們做其他的事情。我想,除非僅僅是為了練手,不然,在正當途徑下不要為了證明自己很牛就從零開始去做,大可借用現有的原始碼來改造提公升(除非現有成果真的是爛的一塌糊塗),甚至買一些合算的商用元件整合到專案中也可以。例如,我們在做乙個專案時,因為客戶需要做很多的統計彙總的報表,但這個不是我們的長項,也不適合花太多人力和時間成本。以前的做法是讓一些本身就不很懂業務的專案經理帶著初級的開發人員做出來乙個配置超級麻煩、功能簡陋的模組。後來的人要去看懂維護這段**很痛苦,何況功能本身就遠遠不夠用。後來的專案漸漸採用市面上比較成熟的報表軟體,整合到我們系統中,而且花在軟體上錢不比我們自己去開發維護來得多。

對於第3點,我記得專案中「會議系統」這部分的**相當亂,就像你不想走進乙個多次未衝的廁所一樣。這是以前請的乙個外派開發人員寫的, 本身就是趕工出來的東西,未經仔細考慮,而且也沒重構。但是很多人看到這部分**還是忍著臭味繼續用,本來就不是很多的**,其實如果好好重構甚至重寫一下,後期這一塊的維護和修改演進工作會順利省事很多。大家往往就看到當前為了修改一小個點,如果去重構整個**,感到很不划算,懶得去動

《大教堂與集市》閱讀筆記

1.只要眼睛多,bug容易捉。2.好的軟體作品,往往源自開發者的個人需要。3.優秀的程式設計師知道寫什麼,卓越的程式設計師知道改寫和重用什麼。5.我基本上是個很懶的人,別人做事,我得名譽。6.設計上的完美不是沒有東西可以再加,而是沒有可以再減。7.系統的安全性只取決於它所擁有的秘密,謹防虛假的秘密。...

觀後感《大教堂與集市》

在第一章中 大教堂與集市 講解了unix和linux的基本的發展史,也是計算機行業最初的發展史,在那個計算機遠古時代,乙個個黑客富有創新,乙個個人才創造了乙個個新的事物,最終逐漸的成熟。在早期unix佔據了作業系統的統治地位,但是因為 不是開源的,各個廠商開發自己的unix相互競爭,最終導致了win...

讀 Eric S Raymond 大教堂與市集

你常常在第一次實現乙個解決方案之後才能理解問題所在,第二次你也許才足夠清楚怎樣做好它,因此如果你想做好,準備好推翻重來至少一次。我有一句相似的話 第一次購買總會失敗,所以不要指望第一次購買一種東西時買得讓自己滿意。我有乙個發生在自己身上的聯想 當我狀態好時 當我有正確的態度 我會對所有事情感興趣 相...