gpt4 book ai didi

javascript - Scala Play Framework 和 Angular JS - 在重复和混合概念方面付出了太多努力

转载 作者:可可西里 更新时间:2023-11-01 01:51:09 24 4
gpt4 key购买 nike

我尝试在 playframework + scala + Angular JS 上编写应用程序。目的是创建一个 web 应用程序,当 JavaScript 在浏览器中关闭或打开时,它可以正常工作。这是编写公共(public)网站时的通常要求(这对人们和将其编入索引的谷歌来说应该是好的)

所以我最终用 JavaScript 编写了 ~50% 代码,有两 (2) 个名为 “controller” 的文件夹 - 一个用于Scala 代码,一个用于 JS 代码(因为 AngularJS 也使用 Controller 概念)。

此外,由于 JS 代码应该使用 Ajax 调用,我不得不创建一个 返回 的 scala-controller json,但不是 html 返回客户端的请求。而且.. 这一切我都不喜欢。这似乎太费力了。

playframework 模板方面,我应该考虑如何将 ScalaJavaScript 结合起来,将参数从一种语言传递到另一种语言。使用一些技巧,例如在处理 JS 时显示 that,在应该关闭时显示 that

这一切都让我的模板更难理解,有一天,当我拥有庞大的代码库时,我可能会想出一个解决方案来复制我的模板(js 模板 + scala 模板)-在 JS 关闭/打开时使用正确的模板。那么 JS 代码量可能会上升到 60%。

然后我似乎要复制所有内容,比如拥有两个不同的应用程序 - Google。常见的(仅)是我的数据本身在我的数据库中,我不必复制数据。但是..我们可能对该数据的格式有不同的问题(并且很可能是基于 json 的 [因为我不会浪费处理器时间来进行表对象转换],但不是基于表的 - NoSQL .. 然后我们又一次像对待 DB 一样对待 JS - 就像对待 MongoDB) 一样,JS 与 Json 配合得很好,原生

那么问题来了,为什么不将 100% 的 JS 用于简单的事情,比如:请求-响应形成一个页面布局。服务器端 JS Controller 可以形成我的模板——这样我就不需要从一种语言切换到另一种语言,从这个意义上讲甚至可以提高工作效率。

问题:你有什么建议吗?关于这个的最佳实践?我不是那种想要最终使用 NodeJS 来使用 JavaScript 作为所有东西的一种语言的人 - 用于服务器和客户端。但让我们谈谈生产力和业务需求。

有一个AnjularJS Controller 的例子(不是我的),我要写多少JS: https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/angularjs/js

想象一下,我必须同时保留 PlayFramework Controller - 对于 HTML 和 AJAX 调用,将 scala/playframework 模板中的内容与 JavaScript 混合。

最佳答案

我想分享最终种子中使用的收据(https://github.com/angyjoe/eventual):

  1. 编写您的 HTML。为此,请随意使用任意数量的 JavaScript 框架和库(尽管种子是 AngularJS)。

  2. 确定 Controller 遵循的 Play 模型。

  3. 为每个 Controller (listcreateshow(id) 确定操作(仅您需要的!) , 更新(id), 删除(id))。将这些操作实现为 Scala 操作。

  4. 插入 Play 路由以将每个已实现的操作提供给客户端框架。

  5. 插入一个(而且只有一个!)Play 路由以将您的样式化 HTML 提供给客户端框架。

  6. 将剩余的开发时间和精力花在客户端...

关于javascript - Scala Play Framework 和 Angular JS - 在重复和混合概念方面付出了太多努力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com