从 Ring 入门。我最熟悉使用 PHP 进行 Web 开发,在 PHP 中,应用是每次请求时从新启动的,如通过 web 服务器(例如 Apache)代理。
这当然意味着 PHP 应用本身不可能保持任何内存状态(PHP 强制执行“无共享”架构)。所以我注意到其他语言(如 Java 和 Clojure)中,服务器是长时间运行的过程,因此有全局状态选项。然而,我的目标是坚持 12 因素原则,所以我认为应该避免应用状态,就像我在 PHP 中编程一样。
我对重新加载工作流等方面有初步的了解。当然,在许多情况下这很有意义。
然而,由于我现在的目标是我的 Web 应用程序没有全局状态,这意味着我真的不需要重新加载工作流(因此 lein ring 就足够了——只需重新加载代码,而不是状态)。
我想知道我是否遗漏了什么。例如,如果我更改配置变量,这可能算作“状态”,需要重新加载。是的,我将自行测试以找出答案。
但只是想找到一些关于这些问题的通用建议/讨论,以帮助我迈出正确的第一步。