使用Node.js和ExtJS来构build企业级的基于网格的单页面应用程序?

尽pipe标题表明我想尽可能多地把这个问题塞进这个问题,但我其实是认真的;)

我正在探索build立一个企业应用程序的选项,这个应用程序将有大量的网格,并且需要和桌面应用程序一样快。 虽然运营转型将是一个大问题(或者说是同时进行的编辑,用OT解决相关问题的一个可能的方法),但应用程序不可能有大量的并发用户(从50开始,可能不会超过几百)。

虽然SmartGWT似乎解决了我们面临的许多问题,但构build应用程序的团队非常小(可能是两位开发人员和一位技术项目经理)。 Node.js似乎很有吸引力,因为这两个开发者都可以在后端和前端工作。

在这方面我有几个问题:

Node.js适合这种types的应用程序吗? 从Node.js和这种应用程序的人和他们的经验听到是非常有趣的。

有没有人和ExtJS / SmartGWT一起使用? 你如何与Node一起工作的经验是什么?

我很肯定,find经验丰富的Node.js开发人员是不可能的,而findJava专家是一个相当简单的练习。 其他语言使Node.js过渡的经验是否容易?

我知道这是一个相当广泛的问题,请耐心等待。

通常这是通过使用:node.js + socket.io + backbone.js来解决的

但是你应该看起来: http : //meteor.com/和http://www.firebase.com/

你应该select你已经知道的技术。

(其余的是恕我直言)

我是Node.js和Java的粉丝。 但是如果你selectNode.js,你最好有一个有才华的团队。 虽然它更容易上手,但从长远来看也更容易让自己陷入困境。

  • 框架没有明确的赢家(Express是最接近的)
  • 移动目标。 图书馆一直在变。
  • 在Javascript中重构是一个PITA
  • 处理数据库事务是相当困难的(如果您需要事务)
  • 它很容易意外写出非常危险的代码(错过一个“VAR”,你会有一个全局variables的问题)。
  • 跟踪/debugging通过代码可能是相当困难的所有callback。
  • 读别人的代码(为什么一个有才华的团队很重要)

仅仅因为客户端代码恰好与前端语法相同,并不像你想象的那样帮助你。 事实上,当我使用node.js的时候,我经常会感到讨厌的认知失调,因为我对我有的东西(库)或者它的客户端或服务器代码感到困惑。

Java在服务器端有很多优点。

  • build立的select:Spring MVC或JAX-RS
  • 重构很容易
  • 阅读Java代码很容易,因为语言的一致性,静态types和交叉引用IDE。

您对于通过Javascript开发人员findJava开发人员的担心正变得越来越不重要。 除了有才华的人应该是/不应该是语言不可知的。

至于EXTJS或GWT,我也不会使用。 Backbone + JQuery + Twitter bootstrap就足够了。

我目前正在使用完全相同的设置,您的问题正在问。 我正在使用Sencha的Ext4和nodejs来构build一个拥有大量网格的大规模单页面应用程序。 我们在大部分UI工作中使用sencha架构师,而我们的数据库使用PostgreSQL。 这种设置有许多优点和缺点。

优点:

  • 没有HTML! 这是所有的最大的优势。 HTML很烦人。 如果你只使用ext组件,你几乎不用碰html。 我们所要做的最多的事情就是修改一下CSS。 单词没有恰当地描述这是多么伟大。 我们已经成功地消除了需要编写冗长,不一致的xml派生物。
  • 它使我们很多人更好的JavaScript程序员。 这是有原因的一个原因你不能摆脱javascript无论你做什么,如果你正在build立任何types的Web应用程序,你将不得不写大量的JavaScript。 你可能会喜欢它,而不是试图掩饰它。 通过隐藏或掩饰它,你只是复杂的问题。 如果你学会写更好,更高效的JavaScript,那么最终你只会让事情变得更好。
  • 数据库库在json中自动输出! 多么酷啊? 它会变成json,然后读取其余的api。 为什么不自动给你你将要使用的? 这是来自Postgres。 Postgres几乎不支持json自己的,这自动为你做。
  • 这个项目的全部内容只有两种语言pl / pgsql和javascript。 目前我们正在用pl / v8(将v8的一个端口replace为postgresql)来replacepl / pgsql。我几乎可以在不阅读文档的情况下进行编程。 那真棒?

缺点:

  • Nodejs不是所有的乐趣和游戏。 Maby这只是我,但是在我能够基本使用它之前,需要花费相当长的时间来阅读一个npm模块。
  • 你必须真正掌握JavaScript来利用Nodejs。 严重的是,Nodejs不适合初学者。 我不是说初学者应该远离它,我的意思是,当你学习如何做任何有用的东西时,你将不再是初学者。 如果你打算写任何有用的东西,准备深入学习JavaScript。
  • Sencha并不完全免费。 显然这取决于你在做什么,但它是我们唯一支付的软件。
  • 发展并不像看起来那么快。 为一个表格写一个完整的CRUD,显示网格,刷新网格添加button等等,还是非常耗时的。 基本上,有非常好的用户界面组件实际上减缓了我们的速度。 现在我们必须有面板和模式窗口以及真正的窗口框架所有的东西。 在使用sencha之前,事情要简单得多。 Eveythingfunction有限,因此编程速度更快。 显然,这样做会更好看,但是谁说我们真的需要这些东西呢?

就性能而言,速度足够快。 我无法做出比较,但是还没有性能问题。