目前项目是一个互联网项目,面向物流行业,服务端用C++实现,客户端分为桌面客户端、android APP及浏览器,是一个典型的CS+BS架构。我主要负责桌面客户端和web端的开发,其中web端又包括前端网页设计和后端web服务器的开发,我也算是全栈攻城狮啦。
桌面客户端采用Eclipse富客户端技术,也就是RCP,采用RCP技术基于几点考虑,第一、RCP也是Eclipse插件开发,而Eclipse插件架构的可插拔性,使得应用程序容易扩展,不用模块之间不耦合;在目前项目里,GUI是一个单独的插件,它依赖于其他插件,比如用户管理、车辆管理、业务管理等,这种插件架构的好处在于,每个插件都是可以热插拔的,容易扩展升级;第二、Eclipse RCP建立在swt、jface基础之上,有丰富的组件可以采用;第三、RCP技术成熟,资料很多,遇到问题方便解决。
web层其实是把桌面插件架构中除GUI外的业务逻辑部署在web服务器中,web服务器采用Node.js实现,采用Express作为web框架。Node.js用到js,所以我需要把所有java写的业务逻辑改用javascript写一遍。node.js是基于异步回调机制的,所以把java的同步逻辑改成异步逻辑难度可想而知,异步回调效率是高,但是代码不好组织,不易调试,在前期遇到很多困难。而前端网页则采用jquery,组件大多使用bootstrap提供的组件。