如何选择项目结构:功能优先还是层级优先?
· 阅读需 14 分钟
在构建大型 Flutter 应用时,首要考虑的问题之一是如何 组织项目结构。
合理的项目结构能够确保整个团队遵循清晰的规范,并以一致的方式添加新功能。
本文将探讨两种常见的项目结构方法:功能优先 和 层级优先。
我们将学习它们的优缺 点,识别在实际应用中实施它们时可能遇到的常见问题,避免在开发过程中出现代价高昂的错误。
项目结构与应用架构的关系
实际上,只有在确定了要使用的应用架构之后,我们才能选择项目结构。
这是因为应用架构迫使我们定义 独立的层级,并设置 清晰的边界。而这些层级最终将在项目中以文件夹的形式体现。
因此,本文将以我认为比较好的应用架构为参考:
这种架构由四个不同的层级(layer)组成,每个层级包含应用所需的组件:
- Presentation: widgets、state、controller
- Application: service
- Domain: model
- Data: repository、data sources、DTO
当然,如果我们只是构建一个单页应用,可以将所有文件放在一个文件夹中,然后结束工作。 😎
但是,一旦我们开始添加更多页面,并需要处理各种数据model,就需要以 一致的方式 组织所有文件。
在实际应用中,通常使用 功能优先 或 层级优先 的方法。
接下来,让我们更详细地探讨这两种规范,并了解它们的优缺点。