Mason对比手工复制:一次模板改造复盘
Mason对比手工复制代码,优势不在少敲几行,而在稳定生成目录、命名和测试文件。本文用一个可复现的 Flutter 功能模块做案例:12个文件、6个变量,完整还原模板拆解、命令执行、结果验收和后续维护,看看什么规模下值得接入。
步骤一:先固定对比对象
案例是一个 Flutter 功能模块:包含页面、状态类、仓库接口、实现类、模型和对应测试,共12个文件。每次新建模块,都要替换模块名、类名、接口名等6处变量。
对照组采用复制旧目录再全局替换;Mason组把同一目录做成 brick。两边使用相同文件清单,不把业务代码编写时间算进去,只比较脚手架生成和检查成本。
步骤二:把样板代码制成brick
先运行 `mason init`,再创建 brick。核心文件是 `brick.yaml` 和 `__brick__` 目录:前者声明名称、说明及变量,后者放待生成的目录与源码。
模块名写成 `{{feature_name}}`,类名使用 Mason 的变量大小写转换能力。这里最费工的不是写占位符,而是剔除旧模块中的接口地址、埋点名称等业务残留。
步骤三:执行生成并逐文件验收
项目中添加模板后运行 `mason make feature`,按提示输入模块名。验收不只看文件是否出现,还要检查路径、import、类名、测试文件名,以及静态分析能否通过。
手工复制常见问题是漏改隐藏在测试或注释里的旧名称;Mason只要模板正确,同类错误不会在每次复制时重演。但模板里的错误也会被批量放大,所以首次验收必须逐文件做。
步骤四:给出这次对比结论
在这个12文件案例中,Mason的收益来自一致性:新人不必记目录规范,代码评审也少查一轮命名。若模块只有两三个文件,制作和维护brick反而可能比复制更麻烦。
真正的分界线不是生成速度,而是重复频率。相同结构每月出现数次、由多人创建,Mason更合适;结构仍在频繁调整、只用一次,先保留普通示例目录更省事。
常见问题
- Mason和手工复制代码哪个更快?
- 单次、少量文件通常手工更快;文件多、变量多且重复创建时,Mason能减少替换和漏检。建议连续记录3次创建耗时,再决定是否模板化。
- Mason和IDE文件模板有什么区别?
- IDE模板适合生成单个文件;Mason可一次生成多层目录、多个关联文件,并能随项目进入版本库,不依赖团队成员使用同一款IDE。
- 现有项目能直接引入Mason吗?
- 可以。先从最稳定、重复最多的一类模块开始,不要一次模板化整个项目;把brick和业务代码放在同一仓库管理,便于同步评审。