我最近与同事讨论了推动我们的网络应用程序遵守纪律的n层结构。让我感到震惊的是,我想不出任何替代方案。
总是应该将Web应用程序分成几层吗?
答案 0 :(得分:7)
传统的N层架构的替代方案是Udi Dahan讨论的Command-Query Responsibility Segregation(CQRS)架构。
与所有架构决策一样,您应该考虑何时使用它来讨论here
就个人而言,我倾向于在我的软件旅行中看到很多"over architecture",这可能会使事情变得更加复杂,并且使维护起来更加困难,而且显然也会花费更多。您首先需要首先考虑业务问题,而不仅仅是选择架构。
尽可能保持简单,以获得最佳效果和轻松重构。
答案 1 :(得分:5)
总是应该将Web应用程序分成几层吗?
您应该将系统的不同逻辑部分分开,以避免它们紧密耦合,这使得它们更容易重复使用。把你分开的东西并不是那么重要。您可以将其称为图层或其他任何内容。
实际上这些层可能有两种含义:
您也可以查看Onion Architecture。但洋葱仍然有层次: - )
答案 2 :(得分:3)
强烈建议您阅读Microsoft Application Architecture Guide, 2nd Edition。
然后,您将意识到每个网站的分离对于两个简单的网页都是多么重要。
这是一个全面的指南,解释了每一层的角色和责任,以及它们如何在一个强大的&可扩展的应用程序。
您不必全部阅读,但首先请查看Chapter 5: Layered Application Guidelines。
答案 3 :(得分:2)
分层架构还有另一种“模式”。
但这是分层架构试图解决的反模式。即“泥球大球”:)