GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

术语俗话 --- 约定大于配置

约定大于配置(Convention over Configuration,也叫"按约定编程")就是零配置或者少量配置是一种软件设计原则,核心思想是:通过预定义的默认约定来减少开发者需要显式声明的配置项。

核心含义

如果开发者遵循框架预设的约定(比如类的命名规则、文件的组织方式),就不需要写任何配置;只有当需求偏离默认约定时,才需要显式配置。
  • 配置型:你需要告诉系统"怎么做"(where things are),系统本身一无所知
  • 约定型:系统默认"你应该这么做",你只需在特殊情况下补充说明

典型例子

  1. Ruby on Rails
    • 模型类 Post 自动映射到数据库表 posts,你不需要写 Post 对应 posts 表 这样的配置
    • 控制器 PostsController 默认去 app/views/posts/ 目录找模板
  2. Spring Boot
    • 配置文件放在 src/main/resources/application.yml 会自动被加载,无需指定路径
    • spring-boot-starter-web 自动装配 Spring MVC + Tomcat,零 XML 配置
  3. Maven
    • 源码默认放在 src/main/java,测试放在 src/test/java,不配置也能工作
  4. 前端框架
    • Nuxt / Next.js 的 pages/ 目录里文件名直接决定路由,不需要手写路由表

好处与代价

好处:
  • 减少样板代码和配置文件,开发更快
  • 团队协作时有统一的目录结构和命名习惯,降低沟通成本
  • 新人容易上手,"猜"就能猜对
代价:
  • 需要学习并记住框架的"隐性约定",对新手有一定门槛
  • 灵活度受限,违反约定或想定制时可能要费劲绕开默认值

一句话总结

约定大于配置不是"不要配置",而是让合理的默认约定替你完成 90% 的配置,你只需为那 10% 的特殊情况写配置。

posted on 2026-10-08 08:23  GKLBB  阅读(20)  评论(0)    收藏  举报