0

我们有一些 JSP 代码要在我们的页面中运行。

有一个 UI 设计师会不断更新 UI,但没有 Tomcat 服务器。我们更喜欢他不这样做,因为他不是程序员。

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

有没有办法处理这个问题?我们更喜欢保留相同的文件,但仍然保留它,这样他就可以看到他的 UI 工作而不必担心 JSP,并且当他签入新文件时,我们不必剪切和粘贴与 JSP 相关的代码。

此类代码的一个示例是根据用户显示某些导航菜单项。

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

4

1 回答 1

0

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

我既负责前端开发,也负责管理前端开发。如果这个 UI 人员在我的团队中,我会强迫他设置一个 Tomcat 服务器。他只是需要学习一些东西。

实际上,如果实施得当,JSP 与任何其他用于视图的服务器端标记语言没有太大区别,例如 Rails + ERB、PHP、.NET 等……甚至是 Javascript 模板引擎(mustache、handlebars 等)。相同的条件检查、for-loops、auth 检查——所有需要的基本视图层逻辑都是可用和可用的。

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

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

  1. 获取/推送源代码 + 分析差异(任何源代码控制客户端)
  2. 构建/部署最新到他的本地环境(脚本或 .bat 文件)
  3. 处理正在运行的应用程序*

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

我发现效果最好的方法是在代码仓库位置(预构建)上工作,并创建两个脚本:

  1. Build+deploy - 停止运行服务器,清除目录和缓存,构建最新版本,并重新部署
  2. 更新 - 将视图文件和任何其他必要的目录与部署目标同步。您必须确保在 Tomcat 配置中禁用热部署,否则会出现内存泄漏错误。

也就是说,现在应该很明显了:Java 是开发 UI 最困难的生态系统之一。编译的性质和复杂的环境要求使开发变得缓慢而乏味,并且严重依赖于不同的人或系统来制作像样的产品。

JSP 本身,虽然如上所述,但几乎总是组织得很糟糕,有各种包含、标记文件、部分、框架的方式——它成为 UI 人员最糟糕的噩梦。GSP(来自 Grails)解决了很多组织问题,但需要开发团队的灵活性。即使这样,它也不是一个“理想”的解决方案。

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

从长远来看,您应该将 Java 应用程序从一个单独的、更灵活、功能更强大的前端技术堆栈中抽象出来,使用基于 REST/JSON 的服务在两者之间进行对话。(旁注:对于具有规模的性能/应用程序,请确保您使用的是自定义协议或 Web 套接字)。

我的首选是 node.js,因为前端开发人员可以坚持使用他们最熟悉的语言:Javascript / JSON。但这可能是您的特定前端感到满意并且可以进行设计的任何东西。

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

最后,对于那些有抱负的前端开发人员/设计人员但只了解 Java(或其他一些服务器端技术)的人,我挑战你学习新东西。面向用户的技术处于不断变化的状态,最近这种变化加速了。如果您想拥有具有 UI 竞争力的产品,您需要投资于使它们具有竞争力的技术。

于 2013-03-11T20:10:01.740 回答