5.經驗學習
當Igor Sysoev開始編寫nginx的時候,構建互聯網的大多數軟件已經存在,這些軟件的體系結構通常 遵循 舊式服務器的定義、網絡硬件、操作系統以及老互聯網架構。然而,這並沒有阻止Igor 思考他或許能夠在web服務器領域做一些改善性的工作。因此,第一課似乎很明顯:改進的空間總會是有的。
自從頭腦中有了更好的web軟件的想法,Igor花費了很多時間開發nginx初始代碼結構和學習不同的方式爲各種操作系統優化nginx代碼。十年後,他正在開發nginx 2.0版本的一個原型,考慮到 版本1數年來的積極發展。顯然,一種新體系結構的初始原型和代碼結構對軟件產品的未來而言是極爲重要的。
另一點值得注意的是,可擴展性應被重點關注。window版本的nginx也許很好的證明了如何避免開發工作的東西被稀釋,既不是開發者的核心能力也不是應用本身的事情。這在重寫引擎過程中通過嘗試使用更多的向後兼容的功能來加強nginx時同樣適用。
最後但同樣重要的,值得一提的是,儘管nginx開發者社區不是很大,nginx的第三方模塊和擴展一直是它凝聚人氣很重要的一部分。Evan Miller,Piotr Sikora , Valery Kholodkov, Zhang Yichun (agentzh)和其他有才華的軟件工程師所做的工作被nginx用戶社區和nginx最初的開發者賞識已久。
(全文完。。。)
1. 本文由mathew翻譯,程序員學架構校審
2. 本文譯自The Architecture of Open Source Applications
3. 轉載請務必註明本文出自:程序員學架構(微信號:archleaner )