本文共 1234 字,大约阅读时间需要 4 分钟。
Laravel是一个健壮的框架,过去两年我一直使用它。直到今年初,它标准的架构对于我参与过的工程来说是足够的。
然而现在来了一个新的挑战,对于新的工程我们并不知道工程规模有多大,但是我们都知道工程应该根据情况需要尽可能的进行扩展,而且它对于新的团队成员来说应该是不难接受的,而未来可能会把应用的每个模块转换成微服务。所以我开始学习软件架构模式并选择领域驱动设计(DDD)。DDD包含了一个持续改进场景的实现,可以作为一个极其有用的工具来开发高质量的软件来满足用户的需求。这个软件模式是由Eric Evans创造的。根据20年的面向对象技术的开发经验,他写了一本这方面模式的书。这个架构模式的焦点是领域,所以为了使软件完美的符合特定领域,有必要创建一门语言。在这门语言中,有很多术语是业务专家和开发团队日常交流的一部分。
为了保持聚焦于领域,我们需要把领域模型从系统其它部分隔离出来。实现这块的一个途径是分层架构:
在开始使用该方法时,要记住一点,我们不是和框架“打架”,因此我们所有的修改都考虑到下一个版本升级的便利性,但也会尝试把框架的优点融入我们的领域中。
在我写下这篇文章的时候,我们Laravel工程结构是这样的: 现在,你觉得这个应用容易维护吗?我觉得容易维护,理由如下:
正如我之前所说,没有标准的途径来定义DDD结构,在学习了这个模式之后我们就是使用文章所示的工程结构。但是它是持续的过程,你需要不断改进来达到最好的效果。
转载地址:http://sguws.baihongyu.com/