Erich在他和Bill的訪談第三部分中談到,他希望支持Eclipse的整個(gè)社群,可以維持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. ”),甚至更長(zhǎng)(雖讓他不敢奢望Eclipse社群會(huì)像埃及的金字塔一樣保存上千年)。這種想法,現(xiàn)在確實(shí)已經(jīng)非常普遍了,就連Sun的首席執(zhí)行官Jonathan Schwartz也認(rèn)為,“you can compete against a product, but it's close to impossible to compete against a community. (和一個(gè)產(chǎn)品競(jìng)爭(zhēng)容易,但是和一個(gè)社群競(jìng)爭(zhēng)幾乎接近不可能)”(Ecology, Communities and Platform Adoption)。所以,Sun也在不斷的培養(yǎng)Solaris和Netbean的開(kāi)發(fā)和使用者的社群。
Eclipse需要保持競(jìng)爭(zhēng)力,關(guān)鍵也在于開(kāi)發(fā)和使用者的這個(gè)社團(tuán)。 Eclipse的plug-in架構(gòu),已經(jīng)保證了這個(gè)社群會(huì)很快的成長(zhǎng)(因?yàn)闀?huì)有大量的開(kāi)發(fā)者去寫plug-in),大公司(如IBM,BEA,Borland)的加入和支持,也擴(kuò)大了Eclipse的知名度,使得更多的開(kāi)發(fā)者加入進(jìn)去。 但是如何更好的融合這個(gè)社群,如何保證Eclipse的核心基礎(chǔ)架構(gòu)不受外部的困惑(變得更加龐大,或者臃腫)但又會(huì)不斷創(chuàng)新,如何協(xié)調(diào)好Eclipse和其他Eclipse.org下面的頂級(jí)項(xiàng)目(如BIRT,WTP,AspectJ等)的整合關(guān)系,這些,確實(shí)也值得思考。
對(duì)interface編程,這個(gè)似乎是個(gè)老生常談的問(wèn)題了,但是卻從來(lái)沒(méi)有思考過(guò),這種編程方式會(huì)影響到這個(gè)開(kāi)發(fā)團(tuán)隊(duì)的協(xié)同工作,特別是一個(gè)超過(guò)10人的開(kāi)發(fā)團(tuán)隊(duì),而對(duì)一個(gè)分布在不同地方的開(kāi)發(fā)團(tuán)隊(duì)(比如項(xiàng)目外包以后,不同的開(kāi)發(fā)小組位于不同的城市,甚至國(guó)家),這種編程方式帶來(lái)的影響更大。
為什么會(huì)這樣呢? 在一個(gè)只有3-4人的開(kāi)發(fā)團(tuán)隊(duì)里面,任何的改動(dòng),可以快速的通知其他的人,而且,現(xiàn)在IDE中的重構(gòu)工具會(huì)解決大部分的工作。 但是,當(dāng)一個(gè)開(kāi)發(fā)團(tuán)隊(duì)變大的時(shí)候,通常就會(huì)分成小組,不同的小組對(duì)不同的部分負(fù)責(zé)。 在這種情況下,你在自己的模塊中發(fā)布了API,你就必須確保這個(gè)API是穩(wěn)定的。“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.” 所以這是一個(gè)是否把API發(fā)布以及發(fā)布了以后如何維護(hù)的問(wèn)題:“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,公開(kāi)發(fā)布(publish)和這個(gè)API是公共的(public)是有區(qū)別的:API公開(kāi)發(fā)布以后,就需要非常的小心,因?yàn)槿魏蔚腁PI改動(dòng)都可能會(huì)破壞其他在使用這個(gè)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