node.js - 如何在模块中构建nodejs应用程序?
问题描述
请告诉我哪个选项更好?
选项 1:所有这些方法都将在Track 模块中
- 获取趋势跟踪
- getMyFavoriteTracks
- 喜欢追踪
- 不像轨道
- getMyPlayedTracks
- 播放曲目
- 获取艺术家曲目
选项 2:这些方法将位于单独的模块中
轨道模块
- 获取趋势跟踪
喜欢模块
- getMyFavoriteTracks
- 喜欢追踪
- 不像轨道
听力历史模块
- getMyPlayedTracks
- 播放曲目
艺术家模块
- 获取艺术家曲目
解决方案
这取决于应用程序的大小和未来的发展。
如果项目很小并且您不希望有很多新功能选项 1 是一个不错的选择。它将使所有事物彼此靠近,您将能够轻松地找到和修改它们。
对于具有大量功能和更长寿命的项目,选项 2 更好。通过这种方式,您将能够创建更小、更有凝聚力的模块。这些模块将依赖于其他模块,因此您可以创建模块依赖关系图。通过这种方式,您可以更好地管理应用程序中的依赖项,这样您就不会遇到意大利面条式代码。
当您想添加新功能时,您必须做以下几件事之一:
- 添加一个新模块。这是选项 2 中最酷的东西。您只需添加一个全新的东西即可获得新功能。
- 扩展已经存在的模块。拥有更小的模块使这更容易。
- 扩展少量模块。拥有更小的内聚模块也让这变得容易多了
我强烈推荐看看虚幻引擎。它具有非常好的模块化架构。它有一个庞大的代码库,因此为了便于管理,他们将引擎拆分为模块。你可以在这里查看
推荐阅读
- pine-script - 需要帮助学习错误并将 Pinescript V3 转换为 V4
- python - 如何从 a 标签中提取 href
- azure - 使用 ADAL 进行 Microsoft Teams 选项卡身份验证 - 无法在 Teams DESKTOP 应用程序中获取令牌
- python-3.x - 无法找到凭据芹菜
- javascript - alpinejs 的 x-cloak 问题
- c# - 测试 api 时出现这个奇怪的错误
- python - Python/MongoDB - 使用来自另一个集合的样本更新每个文档
- c# - Unity 中的多线程在生成 3D 地形时卡顿(C#)
- actions-on-google - Google 助理操作 - 设备位置
- c++ - 捕获外部命令的连续输出