大教堂與集市是一本開(kāi)源運(yùn)動(dòng)的獨(dú)立宣言,也是黑客藏經(jīng)閣的第一收藏。
以下為摘抄內(nèi)容:
1. 好的軟件作品,往往源自于開(kāi)發(fā)者的個(gè)人需要。
2.優(yōu)秀的程序員知道寫(xiě)什么,卓越的程序員知道改寫(xiě)(和重用)什么。
3.“計(jì)劃好扔掉一個(gè)吧”,遲早你會(huì)這么做的。
4.如果你有正確的態(tài)度,有趣的事情自然會(huì)找到你。
5.當(dāng)你對(duì)一個(gè)程序不再感興趣時(shí),你最后的責(zé)任就是把它交給一個(gè)可勝任的接捧者。
6.把你的用戶當(dāng)作合作開(kāi)發(fā)者對(duì)待,如果想讓代碼質(zhì)量快速提升并有效拍錯(cuò),這是最省心的途徑。
7.早發(fā)布,常發(fā)布,傾聽(tīng)用戶的反饋。
8.如果有足夠多的beta測(cè)試者和合作開(kāi)發(fā)者,幾乎所有問(wèn)題都會(huì)很快顯現(xiàn),然后自然有人把它解決。
9.聰明的數(shù)據(jù)結(jié)構(gòu)配上愚笨的代碼,遠(yuǎn)比反過(guò)來(lái)要好的多。
10.如果你把beta測(cè)試者當(dāng)作最珍惜的資源對(duì)待,他們就會(huì)成為你最珍貴的資源。
11.僅次于擁有好主意的是,識(shí)別來(lái)自用戶的好主意,有時(shí)后者會(huì)會(huì)更好。
13.設(shè)計(jì)上的完美不是沒(méi)有東西可以增加,而是沒(méi)有東西可以再減。
14.任何工具都應(yīng)具備預(yù)期內(nèi)的功能,但一個(gè)偉大的工具能給你帶來(lái)預(yù)期外的功能。
15.寫(xiě)網(wǎng)關(guān)類軟件時(shí)盡可能不要干擾數(shù)據(jù)流,而且絕不要扔掉信息,除非接收方強(qiáng)迫你這么做。
16.當(dāng)你的語(yǔ)言還遠(yuǎn)不是圖靈完備的時(shí)候,語(yǔ)法糖會(huì)讓你受益良多。
17.系統(tǒng)的安全性只取決于它擁有的秘密,謹(jǐn)防虛假的秘密。
18.想要解決一個(gè)有趣的問(wèn)題,先去找一個(gè)讓你感興趣的問(wèn)題。
19.如果開(kāi)發(fā)協(xié)調(diào)者有一個(gè)至少像Internet這樣好的溝通媒介,并且知道如何不靠強(qiáng)制來(lái)領(lǐng)導(dǎo),那么多人合作必然強(qiáng)于單兵作戰(zhàn)。
Linux定律:只要眼睛多,bug容易捉。
用持續(xù)不斷地激勵(lì)回報(bào)著他的用戶,用自我滿足感激勵(lì)他們,用持續(xù)改進(jìn)回報(bào)他們。
公開(kāi)說(shuō),發(fā)現(xiàn)問(wèn)題更有挑戰(zhàn)性。
linux定律道出了大教堂模式和集市模式的最關(guān)鍵區(qū)別:在大教堂建筑者看來(lái),bug是棘手的,難以發(fā)現(xiàn)的,隱藏在深處的,要經(jīng)過(guò)幾個(gè)人數(shù)月的全新投入和仔細(xì)檢查,才能有點(diǎn)信心說(shuō)已經(jīng)剔除了所有錯(cuò)誤。而發(fā)布的間隔越長(zhǎng),倘若等待已久的發(fā)布版本并不完美,人們的失望就越發(fā)不可避免。
德?tīng)柗菩?yīng):一群專家(或一群無(wú)知的家伙)的平均觀點(diǎn)要比一個(gè)隨機(jī)選擇的人的觀點(diǎn)更有預(yù)見(jiàn)性。
一個(gè)協(xié)調(diào)者是否擁有卓越的原創(chuàng)設(shè)計(jì)能力,并不是項(xiàng)目成敗的關(guān)鍵,但他是否能識(shí)別出別人的優(yōu)秀設(shè)計(jì),才是關(guān)鍵的。
集市項(xiàng)目的協(xié)調(diào)人或領(lǐng)導(dǎo)人必須要有很好的人際交往和溝通能力。
brook定律,項(xiàng)目復(fù)雜度和溝通成本與開(kāi)發(fā)人員數(shù)目的平方成正比,與此同時(shí),工作完成量只會(huì)隨人數(shù)線性增長(zhǎng)。
egoboo是ego boosting簡(jiǎn)稱,是指參與志愿工作得到公共認(rèn)可而獲得的快樂(lè)。
可能最終導(dǎo)致開(kāi)源軟件取得勝利的,不是因?yàn)楹献魇堑赖抡_的或軟件閉鎖是道德錯(cuò)誤的,而僅僅是由于閉源世界不可能贏得一場(chǎng)與開(kāi)源社區(qū)之間不斷演化的軍備競(jìng)賽,因?yàn)楹笳呖梢栽谝粋€(gè)問(wèn)題上投入比前者多幾個(gè)數(shù)量級(jí)的熟練技術(shù)工時(shí)。
軟件管理有五個(gè)功能:1、明確目標(biāo)并讓大家朝同一個(gè)方向努力。2、監(jiān)督并確保關(guān)鍵細(xì)節(jié)不被遺漏。3、激勵(lì)人們?nèi)プ瞿切┓ξ兜匾捏w力活。4、組織人員部署并獲得最佳生產(chǎn)力。5、調(diào)配項(xiàng)目所需資源。
開(kāi)源軟件中的沖突主要有四類:1、誰(shuí)來(lái)做有約束力的決定?2、誰(shuí)該得到榮譽(yù)或責(zé)備,為什么?3、如何防范勞動(dòng)成果被復(fù)制?如何防范流氓版本使bug跟蹤變得更復(fù)雜?4、從技術(shù)上講,什么是正確的事情?
大教堂與集市的推斷:最終,當(dāng)自由市場(chǎng)經(jīng)濟(jì)開(kāi)始創(chuàng)造出足夠的財(cái)富盈余時(shí),大量程序員可以生活在后稀缺的禮物文化中,而軟件產(chǎn)品的工業(yè)模式注定走向衰亡。
軟件生命周期中超過(guò)75%的成本都花在維護(hù)、排錯(cuò)和擴(kuò)展上。
開(kāi)源世界里,你尋找的是最大可能的用戶群,以便獲得最大限度的反饋和最有活力的可能的二級(jí)市場(chǎng)。在閉源環(huán)境中你尋求的是盡可能多的購(gòu)買者和盡可能少的實(shí)際使用者
為降低商品成本,投在維護(hù)上的錢往往是增加而不是減少。當(dāng)汽車價(jià)格降低時(shí),汽車修理工的需求就會(huì)增加——這就是即便目前靠銷售價(jià)值養(yǎng)活5%的程序員也不會(huì)在開(kāi)源世界中難以過(guò)活的原因。在這個(gè)轉(zhuǎn)變過(guò)程中,有損失的不是程序員,而是那些不顧經(jīng)濟(jì)規(guī)律把賭注放在閉源策略上的投資者。
快樂(lè)的程序員是一個(gè)既沒(méi)有被浪費(fèi),也沒(méi)有被壓垮(由于不適當(dāng)?shù)哪繕?biāo)或過(guò)程中充滿壓力與沖突)的人,樂(lè)趣預(yù)示著效率。
公地悲?。篐ardin假設(shè)某個(gè)村子里面有一片公共的草地,每個(gè)村民都可以在這片草地上放牧,長(zhǎng)期放牧使得土地退化,草皮受損,到處是泥坑,而草皮的恢復(fù)很慢,如果沒(méi)有一個(gè)同意的(或者強(qiáng)制的)放牧分配策略。就很難抑制過(guò)度放牧,出于自身利益考慮,每個(gè)人都會(huì)盡可能多和盡可能快地放牧自家牛羊,以便在公地退化成泥沼之前,從中獲取最大價(jià)值。
非直接的銷售價(jià)值模型(5種已知,2種未知)
1.占領(lǐng)市場(chǎng) 2.硬件糖霜 3.送配方,開(kāi)餐館 4.附屬物策略 5.放下收費(fèi),未來(lái)免費(fèi) 6.軟件免費(fèi),品牌收費(fèi) 7.軟件免費(fèi),內(nèi)容收費(fèi)
開(kāi)源獲取高收益的條件大約有如下幾種
a.當(dāng)可靠性/穩(wěn)定性/可擴(kuò)展性至關(guān)重要時(shí)
b.沒(méi)有其他方法比獨(dú)立同行評(píng)審能更便捷易行地驗(yàn)證設(shè)計(jì)和實(shí)現(xiàn)正確性
c.當(dāng)軟件成為對(duì)業(yè)務(wù)起關(guān)鍵作用的資產(chǎn)
d.當(dāng)創(chuàng)建或運(yùn)轉(zhuǎn)一個(gè)公共計(jì)算或通信基礎(chǔ)架構(gòu)時(shí),開(kāi)源總是能夠非常成功的比閉源獲取更多的回報(bào)
e.當(dāng)關(guān)鍵方法(或能實(shí)現(xiàn)同等功能的方法)屬于公共知識(shí)時(shí),開(kāi)源更可能勝出
可以預(yù)期,由于開(kāi)源的存在,任何軟件技術(shù)的最終命運(yùn)不是滅亡就是成為開(kāi)源基礎(chǔ)架構(gòu)的一部分。
他們問(wèn)我如何做到的,
我把圣經(jīng)給他們看
讓你的光繼續(xù)閃耀
照亮在跟隨者的前方!
他們會(huì)設(shè)法復(fù)制一切
卻無(wú)法復(fù)制我的思想
我讓他們辛苦偷竊
卻永遠(yuǎn)落后我一年半載
——摘自the mary gloster ,rudyard Kipling
懂計(jì)算機(jī)的人可要有個(gè)好身體,因?yàn)榭傆泻芏嗷畹戎麄冏觥?/p>