我正在开发一个正在标准 LAMP 堆栈上开发的庞大系统。长话短说,我们犯了太多错误,我们目前的发展方向变得不可持续。我们总结的问题:
- 正在使用自定义和非常基本的 PHP MVC 框架,它不强制执行任何结构。
- 不使用 ORM,允许开发人员提出自己的系统。
- 前端由 Smarty 渲染,除此之外所有的动态交互都是用 jQuery 完成的。
- 我们在 PHP 失败/非常慢的部分系统中进行了一些繁重的处理。
- 没有使用单元测试
- REST 仅用于外部系统的某些 API
- PHP 框架不支持依赖注入
我不会提及导致系统变得一团糟的其他问题,我认为这些是主要问题。
我想通过引入类似于 Twitter 使用的东西来将系统的开发转向不同的方向 - 系统拆分为与 REST 连接的模块(如果我的假设是正确的)。这些是我想介绍的:
- 播放框架(Java/Scala)
- 通过 REST 将 Play 与现有的 LAMP 堆栈连接起来
- 将 Apache 切换到 Nginx
- (最有可能)使用 Angular.js 作为前端。
- 从长远来看,将整个现有 LAMP 转换为 Play
我面临的主要问题是:
- 记住 REST 是无状态的,我将如何维护/传递状态?我们当前的 LAMP 显然为此使用了 PHP 会话。
也欢迎对这种特殊情况提出任何其他意见。