启动GWT应用程序的正确方法是什么?

启动GWT应用程序的正确方法是什么?,gwt,Gwt,我是否设计了基本的HTML框架,并通过java代码插入组件和操作来开始设计 是否计划通过使用java代码设计细节,将整个过程构建为java程序 还是有更好的方法我不知道 除此之外,维护代码有多容易或复杂 我是GWT的新手,我知道最基本的知识 提前感谢您的投入。我的建议是从思考您的界面开始。它的外观以及最重要的功能。想想你的应用程序将为用户解决什么问题,以及它如何用最少的点击和滚动来解决这个问题。对接口进行原型化,UiBinder很适合这样做,然后开始使用事件处理程序和服务调用激活它 简单的做法是

我是否设计了基本的HTML框架,并通过java代码插入组件和操作来开始设计

  • 是否计划通过使用java代码设计细节,将整个过程构建为java程序

  • 还是有更好的方法我不知道

  • 除此之外,维护代码有多容易或复杂

    我是GWT的新手,我知道最基本的知识


    提前感谢您的投入。

    我的建议是从思考您的界面开始。它的外观以及最重要的功能。想想你的应用程序将为用户解决什么问题,以及它如何用最少的点击和滚动来解决这个问题。对接口进行原型化,UiBinder很适合这样做,然后开始使用事件处理程序和服务调用激活它

    简单的做法是实现一个特性,然后构建一个适合该实现的接口,但最终的结果往往不是很好用。您可能也想考虑一下您的数据模型/db模式,但不要陷入像许多其他开发人员那样构建一个笨拙的CRUD应用程序的陷阱。
    GWT代码是相当可维护的,当然比在我的经验中尝试构建一个没有GWT的跨平台webapp更容易维护。您应该看看,也许它们有助于保持代码模块化和易于测试。

    在GWT/Seam项目上工作一年后,我的见解。我假设没有现成的网站,这意味着你可以从头开始。如果有,我建议您尊重您的传统,并通过选择性地将GWT小部件插入现有html页面的特定位置(更多细节)来改进它

    我们的开发过程可以大致概括为以下步骤(反馈循环、站立会议等,您知道交易):

  • 功能请求:包含所需功能的高级描述

  • 线框:一个高级用户界面,给最终用户留下如何向其提供功能以及如何将其集成到现有应用程序中的第一印象(没有任何提示)

  • 最终设计:设计师创建的新功能的最终扩展用户界面(仅限photoshop,无html框架,无css)

  • 实现和测试:我将重点介绍实现,并描述它在一年内的变化

  • 我们从GWT1.6开始我们的项目,它缺少任何的支持。因此,决定是1)使用GWT(即java代码)构建应用程序的整个客户端,或2)使用JSF构建页面(因为我们使用Seam),并使用GWT小部件扩展页面。我们决定采用第二种选择,主要是因为我们喜欢将大部分状态推送到客户机,让他们进行处理。而且,凭借我们在java开发方面的深厚背景,用java做所有事情都是有希望的

    实现业务逻辑一点也不麻烦。我们花费的时间最多的是构建UI:用java编写页面布局和样式化既耗时又容易出错。最终html(基于步骤3中的设计)和GWT小部件之间的差距太大

    当GWT2.0发布时,切换到UiBinder是我们采取的第一步。因为我们不得不重做大部分客户机代码,所以我们也修改了。此后,生产率显著提高:一名开发人员正在实现业务逻辑(主要是MVP的presenter部分),而另一名开发人员正在忙于构建视图部分(.ui.xml和小部件)。由于主要功能在presenter部分被很好地分离(GWTTestCase是过去的一部分),因此也变得更容易了

    我们目前正在做的下一个主要步骤是从我们自己的MVP实现切换到更详细的MVP实现(即。这一决定背后的理由:DI到GIN(依赖关系清晰,代码更清晰)、对浏览器历史的良好支持(我们鲁莽地忽略了它——一个巨大的错误!)、代码拆分支持、异步调用的命令模式等等

    在一年的经验之后,我的结论是:在UI部分使用UiBinder,并采用干净的MVP架构。学习曲线可能很陡峭,但走同样的道路,许多GWT开发人员肯定会花费你更多的时间


    …我的2美分:)

    +1,这是一个非常好的编程问题,关注“更大的图景”。我还想从那些在这一方面实际做过GWT项目的人那里得到答案(而不是从那些无法回答问题的人那里得到“这个问题不属于SO”的负面评论、评论以及那些真正都可以访问/dev/null的人)。Webinator,感谢您的支持。希望我们能得到一个好的答案。不客气。如果你有什么特别想知道的:我很乐意分享我的“经验教训”:)。