将数据访问层与服务层分开是一件好事

Act*_*ton 4 architecture data-access-layer backend eve

我对我正在使用的架构有疑问.

我们有一个后端restful服务,一个数据层(由python eve和一个restful服务实现)和数据库.数据(访问)层本身是一个独立的restful api.

在我们的后端服务应用程序中,我们有一个定制的python eve存储库,它可以调用数据(访问)层,然后数据层将查询来自数据库的调用所要求的内容.

让它分离的原因之一是,我们希望将数据逻辑(查询逻辑)与业务逻辑(后端服务)隔离开来.

成本是显而易见的,另一层,每个查询的另一轮I/O.

任何有建筑经验的人都可以告诉我这个单独的数据访问层是否是一个好的做法,为什么?

Ami*_*shi 5

看看你正在讨论的架构,你的项目必须足够大,以证明它的开发成本.对于小型项目,这种架构将是过度的.

假设你的项目足够大,是的; 分离DAL,BLL和Application层总是好的.请参阅.

由于您可以控制每个部件并降低维护成本,因此可以实现清洁分离,从而提高理解效果.

另一方面,如你所说,成本是显而易见的(另一层,另一轮I/O).是; 这就是我的第一段讨论项目规模的原因.在大型项目中,这是一种权衡; 你选择的是其他人.

在大型项目中,主要目标应该是IMO的可维护性.明白过早优化是万恶之源.因此,您从良好的可维护架构开始.每种技术都建议了提高性能的基本规则; 最初实施它们.如果您发现任何性能问题,请查找并修复它.事实上,由于分层,很容易找到瓶颈.

还有其他好处.您可以单独对每个图层进行单元测试 您可以独立处理每一层,例如提高性能,改变技术等.调试过于简单.