距离下一个项目还有几周时间,我正在寻找/想要简化我们的开发流程,以便为 UX 和开发人员提供最短的更改验证时间(例如 Java 更改 10 秒/UX/JS 1 秒)变化)。
基本上,我想要约翰·林德奎斯特在这部电影中展示的内容video https://www.youtube.com/watch?v=wCVwdvufTds(在 3 分钟内使用 webstorm 和 Angular 待办事项列表示例进行 RT 反馈)但我使用 Tomcat 和 Spring。
过去几天我一直在用我们的堆栈(Tomcat8、Intellij13、Spring4、Angular)研究/玩这个,但我只是没有“明白”,所以我认为这是我在这方面缺乏知识,我错过了一些东西(因此出现了SO问题)。
迄今为止我为用户体验专家取得的成就
Grunt http://gruntjs.com/(使用节点)提供“静态资源”(JS / SCSS /模板)并livereload刷新chrome - 这非常好,非常接近我想要的(来自SCSS / JS / HTML更改的RT反馈)但大问题是节点正在服务静态资源而不是 TC,因此使用跨源策略(通过解决)this https://stackoverflow.com/questions/21581258/grunt-connect-task-and-middleware-access-control-allow-origin and this https://spring.io/guides/gs/rest-service-cors/)- intellij 中的重建变得混乱,涉及 grunt - 查看 SCSS 编译文件观察者 http://www.jetbrains.com/webstorm/webhelp/file-watchers.html但它没有凝胶化) - 简而言之,我没有得到 grunt 服务静态和 TC 的 REST API 协调工作。另一种选择是this guy http://jacky.seezone.net/2013/07/25/7362/当文件更改时,使用 grunt 更新 TC 资源,但只是不想去那里。
这让我回到文件观察器、jetbrains live edit(网络风暴视频显示的内容)和intellij,而且,当谈到静态内容时,我很接近,因为intellij可以在帧停用时更新TC上的资源,但是(还有一个很大的问题)但是)这不是实时的,当您更改资源结构时,您需要刷新页面,但是我们正在研究SPA http://en.wikipedia.org/wiki/Single-page_application这会在刷新时丢失上下文,这会减慢人员的速度,因为必须回复序列才能返回到更改发生的位置,而且在使用 intellij 时,他们必须“帧停用”才能将更改推送到 TC(它们位于双显示器上)因此关闭 intellij 与按下按钮来部署更改相同)
迄今为止最好的方法是 grunt 并接受开发的同源问题,但我是否为用户体验人员遗漏了一些东西?
迄今为止我为开发人员取得的成就
在我们开始之前,买不起 jrebel 并且还没有弹簧加载 https://github.com/spring-projects/spring-loaded与 intellij 和 tomcat 合作(尚未)。
在此阶段,只需让 intellij 刷新 TC,并在 bean 定义/方法结构更改时更改类并重新启动。我知道不好,但“这就是我们习惯的”
看看 spring boot - 有前途,但理想情况下不希望放弃配置自由,但我相信它确实在服务器上提供实时更新。
Grails 目前已经发布,因此无法从中受益。
我知道 Play 允许进行一些实时更新,但同样,我还没有详细研究过这一点以及与当前堆栈的重大转变。
Summary
在开发方面,可能会坚持实时编辑并接受刷新/停用问题,因此我们无法“实现”John Lindquist 在 Webstorm 中展示的内容,即使用 Tomcat/Intellij/Chrome 时资源更改时的实时更新 - 或至少“我不知道”如何实现这一目标?
服务器端 - 我仍在研究这个问题,将继续查看 spring 加载和 intellij 集成,然后查看 jrebel 并查看我们可以获得多少预算(如果有的话),但与此同时,当我看到节点时是否有任何替代方案/ruby/grails 的人都明白了,所以我相信这一定是我,而我在使用 Tomcat 和 Spring 时缺少从代码更改中获得超快速反馈的最佳设置?