"约定"(Convention)和"配置"(Configuration)是两种不同的方式来管理项目结构和行为。
约定(Convention): 框架或工具提供一套默认的规则和结构,开发者按照这些预设的标准进行开发,而不是手动指定每一个细节。
- 减少决策成本,提高开发效率。
- 项目结构更一致,便于团队协作。
- 适合大多数标准场景,但可能不够灵活。
配置(Configuration): 开发者需要手动指定框架或工具的行为,通过配置文件或代码来定义项目的结构、规则和运行方式。
- 灵活性高,可以适应各种特殊需求。
- 需要更多的代码或配置,可能增加维护成本。
- 适合需要高度定制的项目。
对比项 | 约定(Convention) | 配置(Configuration) |
---|---|---|
灵活性 | 较低,遵循框架规则 | 较高,可自由定制 |
学习成本 | 低(按框架标准来) | 高(需理解配置细节) |
适用场景 | 标准化项目,快速开发 | 需要高度定制的项目 |
维护成本 | 低(结构一致) | 高(配置可能复杂) |
典型框架 | Egg.js、Vue CLI、Rails | Express.js、Webpack、Spring |
现代框架(如 Next.js、Nuxt.js、Vite)采用 "约定为主,配置为辅" 的方式,既保证了开发效率,又提供了灵活性。
- 约定:减少决策,提高一致性,适合标准化项目。
- 配置:提供灵活性,适合需要定制的场景。
- 最佳实践:大多数情况下,优先使用约定,必要时再通过配置调整。