记者:在我参加各种技术大会,包括去年北京Java10周年大会时,跟许多技术人员交流、聊天的时候,他们都反映Apusic的启动速度非常快,很快就启动了,和同类产品相比非常突出。看来使用者们对它快速启动的特点非常喜爱。据我了解,Apusic的代码只是其它产品的几分之一,是因为这个原因吗?你设计时是怎么想的?
袁红岗:很多人不理解,为什么Apusic和其他产品比起来代码规模上要小很多,但使用起来并没有感觉到有什么功能缺失呢?这里要涉及到软件使用上的一个“二八原则”,即80%的使用者通常只会用到一个软件20%的功能。象微软的产品个个都是巨无霸,但对某个产品真正做到完全精通的可以说寥寥无几。以Word为例,平时我们只是用它来写写文档,很多高级功能其实根本用不上。在Apusic应用服务器的开发上我们也是遵循同样的原则,我们将尽可能地将整个软件产品最重要的20%的功能做好、做完善,以保证大多数用户的需求,剩下的80%功能将根据需要逐步增加。譬如国外产品很早就有的集群功能我们最近才推出来,并不是我们没有能力实现集群功能,而是在我们看来,集群并不是解决性能问题的最好方案,只有在真正大并发请求下集群才会展现它的优势。因此,我们把集群功能归结为低优先级需求,只有在其他方面的性能和稳定性有了很大提高后再来考虑集群。
另一个使Apusic运行轻便的重要原因在于软件架构的设计。架构是一个软件的灵魂,好的架构将延长软件的生命力,轻松应付各种变化。Apusic的架构在2001年时就已定型,以微内核和多路复用为其核心,历经产品多次重大升级而未影响核心体系,展现了顽强的生命力。相反,如果架构设计不合理,每次升级都要对架构进行调整,势必引入大量冗余代码,使整个产品臃肿不堪。
第三个原因在于代码编写的简洁性上。莎士比亚有一句名言:“简洁是智慧的灵魂”,在科学界同样也推崇简洁性,麦克斯韦方程组简洁深刻,被誉为是上帝谱写的诗歌,爱因斯坦的著名公式E=mc^2更是将简洁性发挥到了极致。程序设计语言不仅仅是为计算机运行而设计的,它也是一种思想表达工具,甚至比自然语言更简洁、深刻、无歧义。我平时很少写文档,因为我认为代码本身就已经表达了作者的思想。当我看到简洁优美的代码时,我认为是在读一篇美丽的诗篇,并为作者深邃奔放的思想所折服。相反,当看到混乱、繁复而无章法的代码时,我相信作者的思想同样是混乱的。
记者:去年你曾预言J2EE正在迎来一次划时代的变革,关键词是EJB,对此你能再做一次阐述吗?
袁红岗:J2EE可以说是这几年发展非常快速的一个应用开发平台,这和Java这种灵活、方便、开放、跨平台的语言具有不可分隔的联系。Java是一个讲求实用的语言,所有对应用开发有用的特性都被吸收进来,成为Java平台的一部分,而那些花稍但无实际作用的特性被摒弃。Java的类库丰富、开发社区完善等特色标志着它还将在相当长的时期内保持旺盛的生命力。
J2EE可以说是在Java平台中应用最为广泛的技术,而且正在逐步走向成熟。JCP组织在总结了过去J2EE实践中的经验和教训,在将来的Java EE 5.0规范中将对J2EE技术做一个相当大的调整,其中最受影响的就是EJB规范。过去EJB给人的感觉过重,而且开发过程复杂,不易维护,因此在实际项目中使用EJB的很少。在EJB3中,EJB的开发方法将彻底改变,不再使用Home, Remote接口等概念,而采取轻量级的开发模式,以Java 5.0中引进的annotation作为EJB描述工具,特别是实体Bean的角色将被重新定位,使其单纯担负起O/R Mapping的作用。所有这些举措都是为了使EJB的开发过程更加简单、效率更高、维护更方便。
在Web开发方面,Java EE 5增加了新的JSF规范,这是一个类似于struts之类的web开发框架,但比它们更方便。JSF基于事件及UI组件模型的开发方式颠覆了传统的web开发习惯,结合开发工具的支持,将使其更接近于一个真正的MVC编程环境。使用JSF开发表现层现在看起来更象swing编程,基于UI组件的模型能够把web界面定制的很多工作独立出来,厂商可以针对具体的目标定制更多更好用的组件。而我们作为国产中间件厂商,比国外厂商理应更了解国内客户的需求,因此我们的应用开发平台Apusic Studio将成为以JSF为基础的一个强大的web应用开发平台。
记者:现在很多应用已经转移到所谓的轻量级J2EE方案上去了,比如Spring,已经红了快两年了。现在才推出Java EE 5.0是不是来得太晚些了?怎样预期Java EE对于整个产业的影响?
文章来源于领测软件测试网 https://www.ltesting.net/