约定优于配置
约定优于配置是一种软件开发设计原则,通过约定减少配置需求,从而降低开发者的负担。
简单来说,就是大家达成共识:某些东西该如何组织、如何操作,作为默认行为来处理。当然,如果有特殊需求,仍然可以通过配置进行覆盖。
在前端项目中,这种设计理念非常常见。例如:
- 目录约定:
src
目录放项目源代码,public
目录存放静态资源。 - 文件类型约定:
.test.js
或.spec.js
文件通常用于单元测试。
当框架对项目进行处理时,通常会基于这些约定进行操作,比如复制 public
目录的静态资源,构建 src
目录下的源代码。
在现代前端框架中,约定优于配置的应用更为广泛。例如:
- 文件路由:通过文件系统映射生成路由,比如
NextJS
的Pages Router
和App Router
可以根据目录结构自动生成页面路由,而无需手动配置。 - 静态资源管理: 通常默认将
public
目录下的资源作为静态资源进行处理。 - 测试集成:
Jest
会默认在__test__
中搜索测试文件,自动识别.test.js
和.spec.js
文件作为测试文件。 - .....
这种约定减少了开发者在配置上的时间投入,提升了开发效率,同时也让项目更加规范化和易于维护。
但是大家都知道熵增原理。
熵不会无端减少,若某处熵降低,必然意味着另一处熵的增加,以维持整体的平衡。
开发者的工作是轻松了,框架则需要做更多的工作。如何设计,是否可用,可测试性,以及文档说明等一系列工作。
简而言之就是,开发者只需要关注业务的开发就好了,而框架们需要考虑的东西就多了。
约定优于配置
http://localhost:8080/archives/yue-ding-you-yu-pei-zhi