【发布时间】:2009-02-16 15:08:44
【问题描述】:
寻找关于 Web 应用程序模块化的意见。无论语言如何,大多数应用程序都已经有一个后端数据库,并支持与它们各自的 Web 应用程序服务器(Apache、IIS、Lighttp 等)捆绑,但是我处理过的很多开发人员在使用 Memcached 或任何东西时都遇到了问题在网络应用程序的直接进程空间之外。
Web 应用程序的模块化是否像我认为的那样是一件好事,或者我是否缺少某些东西,导致从高级开发人员到 CTO 的每个人都不愿将业务逻辑的特定部分移出 Web 前端结束并进入专门的后端服务?
例如,几年前,当我建议我们将流程密集型 ACL 逻辑从前端框架中剥离出来并将其转变为半集群化服务时,我在一个非常高流量的网站的项目设计会议上被否决了后端的应用程序。对我来说,好处是代码的更清晰的分离以及通过使用 REST/JSON 作为 PHP 和 Python 之间的桥梁在多个地方重用 ACL 逻辑的能力。
不同意我的想法的开发人员认为它“太复杂”,但我就是不明白怎么做?我的论点是,就像表示层可以有标签汤一样,也可以而且经常有代码的逻辑汤,它们如此紧密地结合在一起,以至于如果出现问题,执行“手术”修复可能几乎是不可能的。
因此,为了缩短它,将大型应用程序分解为独立但协作的进程(不是线程或子请求)的缺点和优点是什么。 MySQL、Memcache、类似的服务流程都很棒……但为什么不呢?怎么走这条路“太复杂了”?
【问题讨论】:
标签: architecture service high-availability