Erich在他和Bill的訪談第三部分中談到,他希望支持Eclipse的整個社群,可以維持10到20年的生命期(“ We always keep in mind as we design Eclipse that it has to last ten or twenty years. ….. I really mean that Eclipse should still be able to support an active community in ten or twenty years. ”),甚至更長(雖讓他不敢奢望Eclipse社群會像埃及的金字塔一樣保存上千年)。這種想法,現在確實已經非常普遍了,就連Sun的首席執行官Jonathan Schwartz也認為,“you can compete against a product, but it's close to impossible to compete against a community. (和一個產品競爭容易,但是和一個社群競爭幾乎接近不可能)”(Ecology, Communities and Platform Adoption)。所以,Sun也在不斷的培養Solaris和Netbean的開發和使用者的社群。
Eclipse需要保持競爭力,關鍵也在于開發和使用者的這個社團。 Eclipse的plug-in架構,已經保證了這個社群會很快的成長(因為會有大量的開發者去寫plug-in),大公司(如IBM,BEA,Borland)的加入和支持,也擴大了Eclipse的知名度,使得更多的開發者加入進去。 但是如何更好的融合這個社群,如何保證Eclipse的核心基礎架構不受外部的困惑(變得更加龐大,或者臃腫)但又會不斷創新,如何協調好Eclipse和其他Eclipse.org下面的頂級項目(如BIRT,WTP,AspectJ等)的整合關系,這些,確實也值得思考。
對interface編程,這個似乎是個老生常談的問題了,但是卻從來沒有思考過,這種編程方式會影響到這個開發團隊的協同工作,特別是一個超過10人的開發團隊,而對一個分布在不同地方的開發團隊(比如項目外包以后,不同的開發小組位于不同的城市,甚至國家),這種編程方式帶來的影響更大。
為什么會這樣呢? 在一個只有3-4人的開發團隊里面,任何的改動,可以快速的通知其他的人,而且,現在IDE中的重構工具會解決大部分的工作。 但是,當一個開發團隊變大的時候,通常就會分成小組,不同的小組對不同的部分負責。 在這種情況下,你在自己的模塊中發布了API,你就必須確保這個API是穩定的。“Once you have published an API then it is your responsibility to keep them stable. Otherwise you will break the other components and nobody is able to make progress. Having stable APIs is a key to making progress in a project of this size.” 所以這是一個是否把API發布以及發布了以后如何維護的問題:“So it's the difference, as Martin Fowler would say, between public and published. Something can be public, but that doesn't mean you have published it. ” 即使定義了API,公開發布(publish)和這個API是公共的(public)是有區別的:API公開發布以后,就需要非常的小心,因為任何的API改動都可能會破壞其他在使用這個API的代碼。
Email this store to a friend (send a short email with a subject to this story)
Subscribe to kukooBlog (subscribe kukooBlog's RSS feed)
Send me feedback on this story
Eclipse,Design Pattern
Programming