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