这是一个以键盘鼠标为谋生工具已十多年的人初次进行专门的Java开发的体验和感受,对于Java程序员,这些也许早就习以为常,那就把这当成从一个来自不同世界的新人眼里看看他们自己的工作;对于我的Domino同行,这些体验或许将来有更多共鸣的可能。
在加入到这个Java产品开发团队之前,我的Java开发经验如下:十几年前跟着一本Java入门书做练习写的几个Applet,Domino项目开发中写的几个读写数据库和外部邮件的代理,XPages开发中的少量Java Beans和一个流程库。除此之外就只剩下对用Java做web开发涉及到的繁多的名词Struts、Hibernate、Spring……耳熟而已。
我的工作是给一个大型Java产品增添功能,面对的环境如下:
Linux操作系统,意味着Shell命令和脚本、SSH连接和PuTTy客户端。
JBoss应用服务器
MySQL数据库
Eclipse+Maven+GitHub的开发环境
采用Apache CXF的Web Service开发,随之而来的就是WSDL、SOAP、XML Schema、JAXB……
我的感觉就像从一间熟悉的暗屋走出,霎时被强烈的阳光照得睁不开眼。撇开我专栏文章一直在讨论的Domino在技术架构和开发上的独特性,这样的个人感受恰恰反映了一个封闭的适用于专门领域的开发平台与一种通用的(Versatile)开放的编程语言和环境之间的巨大和根本的差异。
Domino环境下的快速开发是建立在现成的封闭不透明的基础架构之上的,在传统的客户端应用程序开发