為什么架構(gòu)于開源之上?
1. 節(jié)約成本
開源基礎(chǔ)架構(gòu)有大量的開發(fā)者來維護,討論改進,反饋。假如軟件的質(zhì)量用人年工作量來衡量,開源的軟件積累了很多開發(fā)者的工作,必然比一個小組獨立完成的軟件質(zhì)量好。很多東西可以直接復(fù)用。并且有大量的用戶來測試同一套基礎(chǔ)框架,節(jié)約了測試成本。
2. 迭代更快
由于有大量的用戶反饋,***的技術(shù)趨勢往往在開源軟件里被迅速加上。而獨立軟件開發(fā)者可能沒有這樣的動力。比如,Rails 中增加的 CoffeeScript 支持,asserts 聚合支持。
3. 架構(gòu)完整
每個開發(fā)者或者架構(gòu)師都有自己的盲點。因為大型軟件是個系統(tǒng)工程,少量的人難以覆蓋所有的點。象很多國內(nèi)大型網(wǎng)站暴出的 XSS 漏洞??赡軆H僅是知識面的問題和重視程度的問題。開源軟件則有擅長各個方向的開發(fā)者共同決策,改進。
4. 技術(shù)支持
文檔維護和后期的技術(shù)支持可能是比開發(fā)本身更耗費成本的工作。開源軟件往往有大量的人分享文檔和寫博客。同樣的需求和問題,大部分情況下別人已經(jīng)遇到過,并且有解決方案。而內(nèi)部開發(fā)文檔維護極難,培訓(xùn)和溝通也非常耗費時間。
5. 架構(gòu)于開源的”弊端”
開源基礎(chǔ)框架的弊端是它過于龐大,弄清楚所有細節(jié)是非常耗費時間的。所以經(jīng)常會遇到問題,而且需要重新研究如何處理。相對于從零架構(gòu)我們了解所有細節(jié),開源產(chǎn)品更像面對和使用一個黑盒。不過好在很多人在用就已經(jīng)證明了它的正確性。
6. 選擇架構(gòu)于零和架構(gòu)于開源
假如團隊時間和資源相對缺乏,相關(guān)經(jīng)驗比較少,架構(gòu)于開源可能是***的選擇。節(jié)約了開發(fā)成本,就可以將更多精力放到其他方面。
如果架構(gòu)師有足夠經(jīng)驗熟悉整個系統(tǒng)的各個方面,有足夠精力追蹤所有技術(shù)趨勢,而且所建系統(tǒng)很簡單,或者所建系統(tǒng)跟現(xiàn)有開源產(chǎn)品差別很大,則可以選擇從零架構(gòu)。不過這”很難”。有時候群策群力的結(jié)果比一個專家更好。
來源:http://blog.eood.cn/why_based_on_open