【问题标题】:How to structure nodejs application in modules?如何在模块中构建nodejs应用程序?
【发布时间】:2019-11-26 09:25:47
【问题描述】:
请告诉我哪个选项更好?
选项 1:所有这些方法都将在 Track 模块中
- getTrendingTracks
- getMyFavoriteTracks
- 点赞追踪
- 不像轨道
- getMyPlayedTracks
- 播放曲目
- getArtistTracks
选项 2:这些方法将位于不同的模块中
-
跟踪模块
-
喜欢模块
- getMyFavoriteTracks
- 点赞追踪
- 不像轨道
-
ListeningHistory 模块
-
艺术家模块
【问题讨论】:
标签:
node.js
express
entity
domain-driven-design
【解决方案1】:
这取决于应用程序的大小和未来的发展。
如果项目很小并且您不希望有很多新功能选项 1 是一个不错的选择。它将使所有事物彼此靠近,您将能够轻松地找到和修改它们。
对于具有大量功能和更长寿命的项目,选项 2 更好。通过这种方式,您将能够创建更小、更有凝聚力的模块。这些模块将依赖于其他模块,因此您可以创建模块依赖关系图。通过这种方式,您可以更好地管理应用程序中的依赖项,从而避免出现意大利面条式代码。
当您想要添加新功能时,您必须做以下几件事之一:
- 添加一个新模块。这是选项 2 中最酷的东西。您只需添加一个全新的东西即可获得新功能。
- 扩展现有模块。拥有更小的模块会让这件事变得容易得多。
- 扩展少量模块。拥有更小的内聚模块也使这变得容易得多
我强烈建议您看看虚幻引擎。它具有非常好的模块化架构。它有一个庞大的代码库,因此为了使其易于管理,他们将引擎拆分为模块。你可以查看here