2013-03-11 96 views
0

我们有一些JSP代码可以在我们的页面中运行。JSP/HTML UI设计

有一个UI设计师将不断更新用户界面,但没有Tomcat服务器。我们更喜欢他并不是因为他不是程序员。

但是,每次更新UI时都必须剪下和粘贴JSP相关代码,这让人很烦。

无论如何要处理这个问题?我们更喜欢保留相同的文件,但仍然拥有它,这样他就可以看到他的UI工作而不用担心JSP,并且当他检查新文件时,我们不必剪切和粘贴我们的JSP相关代码。

这样的代码的一个例子是有某些导航菜单项根据用户显示。

我们正在使用Tomcat身份验证。我们可以使用AJAX来获取用户信息,但安全性较低?应用程序中的其他所有内容都是AJAX。

+0

问题是关于推动设计更改或有关登录AJAX的安全性的问题? – 2013-03-11 19:01:48

+1

如果他在前端工作,他需要站稳脚跟并保持当地的环境,并学习一些JSP/JSTL,如果这就是他目前正在使用的东西。从长远来看,对他(和你们)来说会更好。 – prodigitalson 2013-03-11 19:02:58

+0

你们都可以包括(他在SSI中的SSI,你的JSP:包括)拉动静态HTML文件。 他的Apache设置可能有一个静态包装器,其中包含一个硬编码版本的JSP代码。然后,他会在自己的文件中编辑HTML代码片段,这样可以按原样使用。 虽然这是一个妥协。正如ProDigitalSon所说,最好让他习惯于使用JSP。任何值得他的盐的前端开发人员都不应该有问题。 – anotherdave 2013-03-11 19:09:50

回答

0

这里的问题在于这个人没有与团队合作。相反,他正在为他们创造工作......而且这是双向的。请继续阅读。

我都做和管理前端开发。如果这个UI人员​​在我的团队中,我会强迫他建立一个Tomcat服务器。他只需要学习一些东西。

实际上,当正确实施时,JSP与任何其他服务器端视图标记语言(例如Rails + ERB,PHP,.NET等)没有多大区别......甚至Javascript模板引擎(小胡子,把手,等等。)。相同的条件检查,for循环,auth检查 - 所需的所有基本视图层逻辑都可用且可用。

如果他在Java项目/团队中,他需要学习Java前端。就这么简单。

他的主要任务应该是基本的,坦率地说,他甚至不需要安装Java IDE来完成它们。它们是:

  1. 获取/推源代码+分析的diff(任何源代码控制客户端)
  2. 编译/上运行的应用程序部署最新的他的当地环境(脚本或.bat文件)
  3. 工作*

(*)最后一部分是事情变得棘手的地方。如果您直接在正在运行的服务器上工作,然后在复制更新之前意外运行新的部署,那么就搞砸了。如果您使用符号链接(在Windows中也可用),则可能存在仅在编译后出现的文件,或锁定或在获取最新代码时同步问题 - 这些都会产生问题。

我已经找到了最好的工作方式是对代码回购位置(预编译)工作,并创建两个脚本:

  1. 构建+部署 - 停止正在运行的服务器,吹灭目录和缓存,生成最新的和重新部署
  2. 更新 - 将视图文件和任何其他必需的目录与部署目标同步。您必须确保在Tomcat配置中禁用热部署,否则会发生内存泄漏错误。

这就是说,它现在应该是显而易见的:Java是最困难的生态系统,开发UI对之一。编译后的自然环境和复杂的环境要求使开发变得缓慢乏味,并且对不同的人员或系统有着显着的依赖性,从而制作出体面的产品。

JSP本身,而能够如上所述,几乎总是组织得厉害,有包括各种方式,标签文件,谐音,框架 - 它成为一个UI人的噩梦。 GSP(来自Grails)解决了很多组织问题,但需要开发团队的灵活性。即使那样它也不是一个“理想”的解决方案。

JSP语法 - JSTL,C:标签等造成更大的麻烦。不编程的前端人员不使用IDE,因此在编写或自定义条件逻辑或循环时没有查找方法,对象,参数等的方法。开发团队可以通过在页面上预先写出这些信息来提供帮助,但每当需要更改或增强时,都需要开会,交谈和妥协。

从长远来看,你应该从抽象的独立,更灵活,更强大的前端技术栈的Java应用程序,使用REST /基于JSON的服务,两者之间的交谈。 (注意:对于具有缩放的性能/应用程序,请确保您使用的是自定义协议或Web套接字)。

我的选择是node.js的,因为前端开发人员可以用他们最熟悉的语言坚持:的JavaScript/JSON。但它可能是你的特定前线球员感到舒适并且可以进行设计的任何东西。

的关键是要消除在两个前端和后端的瓶颈。这两个轨道应该能够快速开发和迭代,RESTFUL API是协作的关键点。

最后,对于那些你谁是有抱负的前端开发/设计,但只知道Java(或其他一些服务器端技术),我挑战你学到新的东西。面向用户的技术处于持续变化的状态,最近这种变化已经加速。如果你想拥有用户界面竞争力的产品,你需要投资于能够使其具有竞争力的技术。