为什么约定俗成比配置更重要

为什么约定俗成比配置更重要

五月 17, 2026 web frameworks python development convention over configuration framework design developer experience rapid development opinionated software crud applications

写 Web App 的正确方式:为什么约定优于配置

大家都知道这个感觉。新项目刚开始,你花了三个小时在纠结用哪个 ORM,模型文件到底该放哪,还有那些像小说一样厚的配置文件。等真正写代码的时候,你已经累得不想动了。

能不能不这么麻烦?

为什么“有主见”的框架更好

这几年 Web 开发走了一个大弯路。从以前框架什么都帮你决定,到现在各种模块随便挑。你想加认证?有十七种库可选。需要缓存?还有五六个方案等你挑。这种自由反而让人无从下手。

现在有一种不同的思路:框架要有自己的主见。不是独裁,而是它已经帮你想好了怎么组织代码。你不用再纠结这些细节,直接上手做业务就行。

三个核心原则

1. 代码是给人看的,不是给机器跑的

很多人只盯着性能数字,却忽略了最重要的一点:代码要让人容易看懂。容易看懂的代码,才容易维护、调试和扩展。那些只追求自动化的框架,往往把可读性牺牲掉了。

等你半年后回来维护代码,或者别人接手你的项目时,清晰的结构和命名规则能省掉大量脑力。不是无聊,而是真正实用。

2. 约定优于配置

框架最爽的地方,不是功能多花哨,而是你不用想太多。比如 Post 模型就该在 models/post.py,对应的控制器是 PostControllercontrollers/post_controller.py 里,视图放在 views/pages/post/ 下面。

这不是限制,而是解放。你不用再花时间讨论文件怎么组织,直接把精力放在业务逻辑上。新来的同事一看就懂,不用额外写文档,不用开会讨论。

3. CRUD 是最基本的接口

我们写的 90% 功能其实都是 CRUD:创建、读取、更新、删除。七个标准动作对应七个标准 URL。用不到的就删掉,真的需要额外功能的话,也表明你应该考虑新建一个资源。

这种限制不是束缚,而是让你的 API 更清晰,团队也更容易对齐。

那些不想重复造的轮子

每个 Web App 都需要一些基础功能:

  • Authentication & Sessions:密码管理、重置、限流,还能检测泄露密码
  • Forms:带验证和 ORM 集体的声明式表单定义
  • Caching:片段缓存、动作缓存和底层缓存,支持多种后端
  • Email:支持模板的事务邮件,开发和生产都能用
  • File Storage:支持本地磁盘和 S3,支持签名 URL 和图片变体
  • Background Jobs:带重试、调度和 cron 的任务队列
  • Internationalization:支持多语言路由、翻译和日期/数字格式
  • WebSockets:支持实时信道和在线状态

一个好的框架会把这些都打包好,而不是让你一个个拼凑。每个功能都经过测试和文档化,直接导入就能用,不用到处找插件。

脚手架胜过复制粘贴

脚手架不只是图快,它还能保证一致性。当一个命令同时生成模型、控制器、视图、测试和路由,并且已经连好线、能直接跑的时候,你就不再和框架冲突,而是利用它。

相比复制粘贴再修改(这个过程容易引入隐性错误),直接生成正确的、符合框架风格的代码,更实用。

AI 时代下的框架优势

有趣的是,结构清晰、约定明确的框架更容易被 AI 理解和工作。当框架有严格的命名模式和可预测的文件布局,AI 可以更好地理解它。

这意味着你可以告诉 AI “添加 OAuth 登录”或“创建用户仪表盘”,它就能生成符合框架规则的代码,放在正确的地点,减少人工检查。

选择框架时该问的问题

挑下一个框架之前,先问问自己:

  • 它有自己的结构意见吗,还是你要花几周时间自己建立约定?
  • 它自带常用功能,还是你要拼七个不同的库?
  • 你能用五分钟向新同事解释项目结构吗?
  • 它生成的代码符合框架风格,还是只当起点?

真正好的框架不是功能最多的,而是让你少花时间在配置上,直接去做开发。这样的框架让你从“搭建”转向“实现”,项目规模增长时也能保持清晰,也让你晚上睡得更踏实。

最好的框架不是最花哨的,而是真正帮你把事情做完的。

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN