我正在处理3层架构的PHP网站。
现在我需要将其重新设计为suрроrt分布式n层架构。经过长时间的研究,我得出了这个解决方案:业务逻辑应该分为表示层和纯业务逻辑层,以允许n层架构(用户界面,表示层,b.logic和数据层)。我决定只使用РНР进行演示。在业务逻辑中,我想使用J2ЕЕ实现技术,而不是在PHP中实现它,因为J2EE可以提供更重要的容器服务,这对于业务逻辑,其健壮性,可维护性和不同的关键业务操作至关重要。
从您的专业角度来看,考虑到网站的具体情况及其运营的重要性,这听起来像是重新设计原始网站以允许n层架构的好方法吗?
答案 0 :(得分:3)
Zend Framework可以实现您想要做的一切。它遵循MVC架构,并为您的服务提供类似Zend_Soap组件的东西。当您可以在PHP中保留所有应用程序时,没有理由构建一些多语言应用程序。你为什么要这么糟糕地使用Java?
答案 1 :(得分:3)
根据您的描述,我了解现有应用程序在LAMP堆栈上运行。 PHP很好地集成到LAMP堆栈和scales well中。为什么要将其迁移到Java生态系统?在Java中重新实现业务逻辑意味着您丢弃了现有应用程序的基本工作部分。如果已有工作业务层和DAL,为什么还要从头开始? refactoring不会更聪明(也更便宜)吗?
此外,您声称J2EE将提供更好的健壮性和可维护性。怎么会这样?可维护性主要是代码架构和编码风格的问题。我不知道Fowler's PoEAA中的任何模式也无法在PHP中实现。 PHP还为mature frameworks,UnitTesting,Continuous Integration,ORM,Dependency Injection,Message Queues,Webservices提供Deployment等,以支持您的应用程序开发。
当然,Java是经过编译并支持多线程的,并且在企业软件架构方面有历史,我并不否认它具有PHP所没有的语言功能。但问题是,这个项目你需要它们吗?我们不要忘记,编程语言本身并没有做任何事情。创建应用程序的开发人员和J2EE Spaghetti代码仍然是Spaghetti Code。
只是我的2c虽然:)