我需要构建一些复杂的GUI(大约100个视图)。因此,我们需要尽可能并行化开发(可能是10个开发人员)。一种选择是以经典的方式使用html,css(指南针)和JQuery +插件进行开发。我们确切知道该怎么做,对此毫无疑问。
另一个选择是使用GWT,但我们担心可以与GWT并行化多少开发。我们希望大量使用Ajax,我们的100个视图将最多托管5页
非常感谢任何有这种关注的经验回报。
JM。
答案 0 :(得分:7)
GWT非常适合并行开发,但要注意学习曲线!
IMO GWT更适合OO开发人员编写UI代码而不是Js开发人员。
Java(与许多其他OO语言一样)允许您在许多小文件中拆分类,允许许多人同时处理项目。设计模式可以帮助您将复杂的编程模式分解为可重用的块。使用GWT的大多数模式是MVP(MVC的替代版本),Observer(使用eventBus),Command(使用gwt-dispatch),...此外,您还可以使用Gin等依赖注入之类的东西。这样,模块可以根据它们的界面(实现与否)轻松组合。
因此,GWT非常适合Java开发人员。他们可以使用他们(应该)掌握的模式,他们(大多数时候)不必担心浏览器特定的细节或Javascript。
许多具有JavaScript背景的开发人员至少在开始时倾向于使用Java编写代码,就好像它是JavaScript一样。风格不同,需要花费大量时间才能生成设计良好的Java代码,而不是太多提及GWT,其中模式和GWT特定的设计是至关重要的,并不总是有详细记录。任何人都可以使用Java编写,但是数十本书和数十亿条糟糕的代码行清楚地表明生成好的 OO代码并不容易。
Js也是如此。在Js项目上放置一个Java开发人员,并在几小时内看到混乱的代码。
正如Rod Johnson(Spring框架的父亲)在他的伟大着作expert one on one j2ee design and development中所说,在选择技术时,你应该根据你的技能做出决定!因此,如果我有一个拥有Javascript,HTML和CSS的杀手团队,他们对上述模式或Java知之甚少,我会告诉他们要了解Ember(如果他们不知道)或者任何其他Javascript MVC框架也有助于并行开发,购买“可维护的JavaScript”或“Javascript模式”之类的书籍,并让每个人继续做他们最擅长的事情。
如果团队受到新技术的激励并想尝试GWT,我会将其中的一两个人放在概念验证上至少一个月。如果他们对GWT感到满意,我会聘请最好的GWT顾问,让他每周检查一次我们在正确的地方使用正确的工具和正确的模式,让团队拥抱GWT。根据他们对Java及上述模式的了解,我至少会为每个人提供3到6个月的预算,以便加快速度。
这是我自己的经历。
我们聘请了两名没有GWT背景的medior顾问进行为期一年的项目,其中6人具有一半的程序性程序背景,而另一半则用于非常花哨的Java。
顾问表现得好像是一个有偿的自我培训机会。外包人员和团队采取的大多数设计决策都没有机会犯下自己的错误并从中吸取教训。目前(一年后),每个人都在改进,但我们仍然在努力解决模式,工具和设计问题。我花了一个月的时间阅读GWT文档和两本关于这个主题的书,但至少有4个月的动手开发人员开始弄清楚我在很多地方都错了。我每天都会学习关于GWT的新内容,并发现我们每隔两周做出的新设计决策。
答案 1 :(得分:1)
使用GWT,您可以使用MVP设计模式,该模式将您的屏幕分成小视图和演示者。相反,创建了常见的社交和导航,您可以在独立视图上处理每个开发人员。 GWT的文件: http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html
我希望我回答你的回复。