java – 对GWT的不同后端的反馈
我必须重新设计一个现有的应用程序,它在后端使用Pylons(
Python),在前端使用GWT.
在重新设计的过程中,我还可以更改后端系统. 我试着阅读各种后端系统(Java,Python等)的优点和缺点,但我要感谢社区的一些反馈. 现有申请: 现有的应用程序是使用GWT 1.5(现在在2.1上运行)开发的,并且是一个多主机页面设置. 数据存储在MySQL数据库中,后端使用SQLAlchemy / Elixir进行访问.使用RequestBuilder(JSON)完成服务器/客户端通信. 该应用程序不是典型的业务,如具有复杂CRUD功能(事务,锁定等)或复杂权限系统的应用程序(需要简单的ACL). 该应用程序用于科学数据的可视化(图表,表格).客户端界面主要用于以只读模式显示数据.可能有一些CRUD功能,但它不是应用程序的主要方面. 新系统的要求: 我想从多主机页面设置转移到MVP架构(一个主机页面). 可能的后端解决方案: Python(SQLAlchemy,Pylons或Django): 好处: >快速原型制作. 缺点: >弱类型语言 – >调试可能很痛苦 Java(Hibernate / JPA,Spring等) 好处: >客户端和服务器的一种语言(Java) 缺点: > Multitear架构(复杂性,需要大量配置) 我没有提到任何其他后端系统(RoR等),因为我认为这两个系统对我的用例来说是最可行的. 如果我使用Java后端,我必须决定是否执行RESTful服务(并明确地将客户端与服务器分开)或使用RequestFactory(更严格的耦合). “RESTfulness”没有具体要求.在Python后端的情况下,我可能会使用RESTful后端(因为我必须处理客户端/服务器通信). 虽然主要显示科学数据(不是任何域对象图的一部分),但是相关的元数据也将显示在客户端上(这将有利于RequestFactory). 两种后端系统都有其优点和缺点. 提前致谢 解决方法
我们过去也遇到了同样的困境.
我参与了设计和构建具有GWT前端和Java(Spring,Hibernate)后端的系统.我们的一些其他(相关)系统是用Python和Ruby构建的,所以专业知识就在那里,并且出现了与你一样的问题. 我们主要决定使用Java,因此我们可以在整个堆栈中使用单一语言.由于同一个人在客户端和服务器端工作,因此在从客户端代码移动到服务器代码时(例如,在调试时),使用单一语言工作减少了上下文切换的需要.事后我觉得我们被证明是正确的,这是一个很好的决定. 我们使用了RPC,正如你所提到的那样,你肯定能够简化c / s通信的实现.我不能说我喜欢它很多. REST JSON感觉更正确,至少可以在服务器和客户端之间创建更好的解耦.我想你必须根据你是否希望将来可能需要独立地重新实现客户端或服务器来做出决定.如果这不太可能,我会使用KISS原则,因此使用RPC可以在这种特定情况下保持简单. 关于你提到的Java的缺点,我倾向于同意原则(我更喜欢RoR),但不是细节.多层和配置架构并不是真正的问题IMO – Spring和Hibernate现在已经足够简单了. IMO在这个项目中跨客户端和服务器使用Java的优势胜过使用python的相对容易性,而且你将在接口中引入复杂性(即通过REST与本机RPC相比). 我不能评论Numpy / Scipy和任何Java替代品.我没有经验. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |