成功的GWT开发人员在多大程度上需要成为一名成熟的“网络开发人员”?

时间:2011-09-17 09:27:46

标签: gwt extjs

  • “网络开发者”是指有声音的软件开发人员 理解Web基础知识(HTTP,HTML,CSS,JavaScript和 AJAX)。
  • '成功的GWT开发者'我指的是能够生产的人 及时打造高质量,高光泽的GWT应用程序。

我的部门正在准备一个需要开发大量单屏RIA网络应用程序的项目。这些将是用Java实现的前端企业服务器组件。我们的UI原型是使用ExtJS开发的,并且取得了成功(在开发速度方面,生成了专业,优美的UI,与使用Spring-MVC + Jackson实现的面向服务的API完美结合)。然而,在准备开发实际产品时,我们意识到我们部门的技能概况并不适合ExtJS。我们在Java方面很强,但在Web开发人员方面相对较弱。 UI原型的开发表明,您确实需要完全成熟的Web开发人员来掌握ExtJS,因为他们将花费大量时间来解决CSS和JavaScript问题。因此,出现了一个问题,即我们是否可以更好地使用GWT(与提供与ExtJS相当的抛光水平的库相结合,例如SmartGWT)。显然,这假设GWT对Web开发技能的要求要低得多。 GWT + SmartGWT在多大程度上允许我们的Java开发人员制定高质量的RIA,而不必获得除了上面列出的网络基础知识的基本评价之外的任何东西?

如果我们决定进一步探索GWT,我们会做另一个原型,但同时听听有经验的GWT开发者的意见会非常有趣。

2 个答案:

答案 0 :(得分:3)

我的经验是,如果没有先进的网络技能,你可以侥幸逃脱,但最终的结果是一个相当平淡的应用程序,但更糟糕的是,你会发现自己正在努力实现你想要的所有动态效果。

例如,我的应用在主选项卡上有一个DataGrid。使用纯GWT可以很容易地做到这一点。但后来我想在DataGrid小部件下面放一个复选框,用户可以用它来选择“单行模式”,其中每行都是一行 - 单元格中包含自动换行的任何数据都会在边缘消失细胞点击复选框,每行折叠为一行,然后再次点击,行高度扩展到显示单元格中所有数据所需的任何大小。没有办法解决这个问题。您需要做的是调整DataGrid的行样式以添加或删除CSS元素“white-space:nowrap;”。因此,您将一个ValueChangeHandler添加到CheckBox小部件(GWT技能),它修改了DataGrid小部件的CSS样式(Web技能)。

如果没有网络技能,你会发现自己在尝试实现所需的外观(甚至是动态行为)方面遇到了障碍。话虽如此,您可以在网上轻松找到这些类型的答案。要记住的关键是,因为GWT似乎没有某种方法,可能它确实是一个Web问题,而不是GWT问题,并且你必须记住在GWT框之外思考来解决你的问题问题(而不是抛弃你的手,指责GWT缺乏功能,并希望像SmartGWT这样的东西能解决你所有的问题。)

事实上,每个GWT小部件都有大量设置,添加和删除样式的方法,以及通过ClientBundles和UiBinder等进行的非常丰富的集成,这意味着这始终是意图。

答案 1 :(得分:2)

GWT是一个非常强大的框架,可以用来产生很好的结果,例如Pictarine,但是作为Pictarine indicate的开发者:

  

当我们开始使用GWT时,另一件对我们来说不明显的事情是,如果他/她想要超越GWT小部件提供的基本用户界面,那么Java开发人员需要熟悉HTML / CSS。

我没有引用这个来劝阻任何人。在没有太多HTML / CSS知识的情况下,GWT确实可以实现基本接口。然而,GWT依赖于Web语言,因此在非平凡的应用程序中熟悉JavaScript,HTML和CSS将会派上用场。就个人而言,使用GWT一直在不断深化我的JS / HTML / CSS技能,因为我一直在寻找增强我的GWT项目的方法,这最终是非常有益的。