新项目的UI部分用到了GWT技术,所以就花了一些时间对GWT进行了一下研究,也接受也一些培训,下面就把培训的和学习的内容进行一下总结,希望对使用GWT的朋友有所帮助。
关于GWT官网上提供的Tutorials:
官网上的教程是不适合重用和大型项目开发的,不是实际项目的best practices.
GWT开发中需要注意的问题
1. 如果不注意的话,GWT的client端会变得非常臃肿,因为cilent端的所有东西都是转化为javascript的,所以要时刻考虑如何保持瘦client端
2. Think in Javascript, 因为一切归于javascript,所以在开发时候就应该考虑到你的代码转化为javascript后会是什么样的效果,包括数据。
3. 保持客户端数据最小化,不要大量cache数据在客户端。否则开发复杂UI的话会大大增加浏览器负担。
4. 保持你的业务逻辑在服务端,这样会使你的应用易于维护也有助于trouble shooting.
5. 在服务端做数据校验, 这点在以前的blog里面已经提到过了。
GWT开发中需要follow的一些patterns 和 rules(使用于我们项目,供大家参考)
1. 每个module使用一个control panel来控制widget之间的交互。 其他所有的交互和消息都需要通过control panel和event bus进行。
2. 使用event bus来进行模块中不同对象的交互。
3. 项目按照模块分为不同的module, 每个module为一个单独的war, 模块之间的信息传递依靠session 变量来进行(我们使用WebLogic的shared session服务来支持session共享)。
4. 不使用hardcode字符串来标示label, message等内容
5. 不适用inner class, GWT的在线教程使用了inner class,为了更易于debug, source control和重用,项目不允许使用inner class.