日常写代码的时候,我一直在找那种“能帮我把脏活累活干利索”的工具。市面上各种代码生成器、低代码平台见了不少,要么是套壳模板改改字段,要么是生成出来的代码跟屎山一样没法维护。直到我上手了t3code,这个工具的思路让我眼前一亮——它不完全是一个“生成器”,更像是一个懂行的高级助理,能把项目从零搭建到多环境部署梳理得明明白白。这篇内容我会从实际落地角度,聊聊t3code能解决什么问题、适合什么人用、核心配置怎么调、实际跑通一个项目的完整流程,以及我踩过的坑。不管你是刚入行的新人,还是带团队的技术负责人,只要受够了重复劳动,都应该花几分钟看看。
1. 内容整体设计与思路拆解
1.1 t3code到底是什么、解决什么问题
先说结论:t3code是一个面向应用开发全流程的代码生成与工程化辅助工具。它不单是生成页面和接口,而是把“项目脚手架搭建、数据模型设计、后端API生成、前端页面绑定、环境配置管理”这条链路串起来。
传统开发的痛点很明显:新项目启动时要配构建工具、配路由、配状态管理、写CRUD接口、做鉴权逻辑、再折腾环境变量,这些工作毫无技术含量却极其耗时。t3code的思路是把你对项目的“描述”作为输入,输出一套完整的、可直接运行的工程代码。
和那些只生成“示例代码”的工具不同,t3code生成的是贴近生产标准的代码结构。我测试过它生成的Node.js后端代码,分层清晰,中间件、错误处理、参数校验都是齐的,不是糊弄人的demo。前端页面也会自动对接好API请求层,不用自己再封装一遍axios。
这个工具适合谁呢?我分三类说:
- 个人开发者/独立开发者:一个人要搞定前端、后端、部署,手写重复代码的时间会占掉一半以上。用t3code把基础工程搭好,精力集中在业务逻辑上,出活效率翻倍。
- 小团队技术负责人:团队协作时最大的问题不是写代码,而是代码风格和项目结构不统一。t3code让所有项目都按同一套规范生成,新成员上手成本大幅降低。
- 技术学习者和培训机构:直接看一个完整项目的生成结构和源码,比看零散的教程有效得多。t3code生成的代码本身就是很好的学习范本。
1.2 为什么选择这种“全流程生成”的思路
我最初以为t3code就是一个加强版的CRUD生成器,但用了一段时间后发现,它强调“全流程”是有道理的。
只生成代码片段其实解决不了根本问题。一个项目最难的阶段往往不是写那几百行CRUD,而是“项目怎么组织”“状态怎么管理”“报错怎么处理”“部署到服务器后能不能跑起来”。t3code直接把这些东西作为生成项固化下来了。
举个例子。我生成一个“博客系统”项目时,t3code不只是帮我写了文章的增删改查,它还帮我生成了:
- 用户登录注册逻辑(有JWT鉴权)
- 角色权限中间件(普通用户和管理员)
- Markdown编辑器的封装组件
- Dockerfile和docker-compose.yml
- 环境变量样例文件
这种思路的价值在于:你只需要定义“博客系统需要什么功能”,t3code自动补齐了一个生产项目应有的所有配套。相比拿着代码片段东拼西凑,这种整体性生成踩坑少得多。
选型背后也考虑过自己手动搭。如果你每个项目都从create-next-app、create-vite这种脚手架开始,再手动接ESLint、Prettier、husky、lint-staged、commitlint,至少大半天没了。t3code把这一整套工程化规范内建好了,相当于一个“懂规矩的队友”帮你把所有基础工作一次性做完。
1.3 使用模式与心智模型
理解t3code最好的方式,是把它想象成一个“项目配置文档解析器”。你写一份尽可能详细的描述文档,告诉它你要做什么、用什么技术栈、有哪些页面和数据结构,它把这份“需求文档”翻译成“工程代码”。
这里有个非常重要的使用认知:t3code不是搜索引擎,你给它一个关键词它就给你一段代码。它的工作模式是“项目级输入,项目级输出”。你必须按照它期望的结构提供信息,否则输出的结果会大打折扣。
我建议的输入结构是:
- 项目类型描述(比如“一个面向中小企业的进销存管理系统”)
- 技术栈偏好(前端框架、后端语言、数据库类型、是否需要Docker部署)
- 核心功能清单(比如“商品管理、库存预警、订单管理、数据报表”)
- 数据模型描述(比如“商品应该有名称、编码、分类、价格、库存量”)
- 特殊要求(比如“需要Excel导入导出”)
信息越完整,生成结果越精确。这其实是t3code最有门槛的一点,习惯了“一句话生成一段代码”的人,需要转换一下心智模型:这是一个项目生成器,不是代码补全插件。
2. 核心细节解析与实操要点
2.1 配置工程的四个关键参数
上手t3code时,最重要的不是急着写业务代码,而是把配置工程做扎实。配置到位了,后面一切顺畅。我总结了四个关键参数,这几个参数直接决定生成代码的可用性。
第一,目标技术栈参数。t3code支持多种主流框架组合,比如前端有React、Vue,后端有Node.js(Express/NestJS)、Python(FastAPI/Flask)、Java(Spring Boot)等。千万别小看这一步,选错了组合后面追加生成的代码会越来越难维护。
我的建议是:优先选团队最熟悉的组合。t3code的代码生成规则在不同技术栈下会有差异,如果你硬要它生成一个Vue前端配合NestJS后端,不是不行,但需要的人工调整量会大很多。选“主流组合”是降低风险的最佳路径。
第二,数据模型定义描述。这是t3code的“灵魂“。它不是让你写SQL建表,而是让你用自然语言描述数据结构。
比如我描述“商品表:包含id、商品名称name(长度不超过100字符)、商品编码sku(唯一)、分类category、价格price(两位小数)、库存量stock(整数)、状态status(上架/下架)”,t3code就会自动推导出字段类型、数据库约束和前端表单校验规则。
这里有一个实操要点:描述得越具体,后端的参数校验和数据库约束就越严格。很多人生成的接口之所以不规范,就是因为在数据模型描述阶段偷懒了,写着“商品信息”,然后期待t3code能猜出你要哪些字段。我试过,它能猜个大概,但细节几乎都会跑偏。
第三,页面交互逻辑描述。如果说数据模型描述决定后端质量,那么页面交互逻辑描述就决定前端质量。t3code不是机械地生成一个表单,而是会按照你描述的交互方式来生成。
我举个例子。你说“前端页面需要实现商品列表的分页展示、点击某个商品跳转到详情页、详情页有一个删除按钮,删除需要二次确认”,t3code会生成带分页组件的列表页、带路由参数的详情页,以及带确认弹窗的删除逻辑。如果你只是说“实现商品管理”,那它生成的可能就是一个没有任何交互的简陋表格。
第四,环境与部署配置。t3code在生成代码的同时,会生成.env.example、Dockerfile、docker-compose.yml等文件。你需要指定目标运行环境(比如开发环境还是生产环境)、是否需要容器化部署、是否需要反向代理配置。
我的习惯是生成完项目后,第一件事就是检查这几个配置文件。如果团队内部有统一的部署规范,我会根据实际情况修改docker-compose.yml里的端口映射和启动命令。这不是t3code生成得不好,而是每家公司的基础设施不一样,需要微调是正常的。
2.2 项目结构、生成方式与代码规范
t3code生成的项目结构非常统一,这既是它的优点,也是需要适应的地方。
一个标准的t3code生成项目,结构大致如下:
project-name/ ├── frontend/ │ ├── src/ │ │ ├── api/ # API请求层 │ │ ├── components/ # 公共组件 │ │ ├── pages//views/ # 页面 │ │ ├── store/ # 状态管理 │ │ └── utils/ # 工具函数 ├── backend/ │ ├── src/ │ │ ├── controllers/ # 控制器层 │ │ ├── services/ # 业务逻辑层 │ │ ├── models/ # 数据模型层 │ │ ├── middlewares/ # 中间件 │ │ └── routes/ # 路由定义 ├── docker/ │ ├── Dockerfile.frontend │ └── Dockerfile.backend ├── docker-compose.yml ├── .env.example └── README.md这个结构好处是:分层清晰,职责单一,任何拿到这个项目的人不需要看架构文档就能上手。坏处是:如果你的团队已经有一套根深蒂固的项目结构规范,t3code生成的代码需要做一些目录调整。我建议是调整一次,然后把t3code的配置记下来,下次生成时候指定自定义结构,生成出来的代码就直接符合团队规范了。
生成方式方面,t3code支持命令行交互式生成,也支持通过配置文件批量生成。我更推荐配置文件方式,原因很简单:配置即文档。你把项目描述文件提交到Git仓库里,后来者可以通过这个文件快速了解项目设计意图。
代码规范这块,t3code生成的代码默认继承了一套比较完善的ESLint和Prettier配置。以前团队里经常因为代码格式问题在Code Review时争来争去,现在生成的代码格式统一,Review的效率明显提升。但这不代表你可以完全不做配置,我建议把团队自定义的规则追加到.eslintrc.js里,比如禁止使用console.log、要求函数显式return类型等。
2.3 数据字典驱动的API设计与前后端解析
t3code最核心的技术亮点是数据字典驱动设计。你在描述数据模型时,t3code会构建一个内部的数据字典,然后基于这个字典同时生成后端API和前端调用代码。
这个机制意味着,后端接口的返回字段、前端页面展示的字段、表单提交的字段,都来自同一个数据字典。这三者永远不会不一致。这一点在实际开发中太重要了。
曾经我们团队自己开发,后端改了一个字段名,前端组件没同步修改,结果QA提了一个bug。用t3code之后,这类问题几乎绝迹了,因为生成的那一瞬间,所有层都是对齐的。
再讲一个细节:关联数据模型的处理。我描述“订单包含多个订单项,每个订单项关联一个商品”,t3code生成的API会自动包含嵌套结构。比如获取订单详情时,返回的JSON里会自动嵌套ordersItems数组,每个item里包含商品的具体信息。这在传统开发模式里需要后端手写序列化逻辑,前端手写数据映射,而现在都是自动完成的。
不过需要注意的是,t3code生成的关联查询默认是全部带上的。如果一个列表页根本不需要展示关联信息,接口还会多查一层,多少会影响性能。我通常在生成后手动优化一下services层的查询,去掉不需要的关联,保证接口只返回必要数据。
还有一个值得说的点:t3code会生成完整的API接口文档注释。每个接口的请求方法、路径、参数说明、返回示例,全部是JSDoc风格的注释。我实测过,把生成的代码扔给Swagger工具,稍微配置一下就能直接生成在线API文档,省掉了写接口文档的专门时间。
2.4 前置检查与初始化流程
在正式使用t3code之前,有几个前置检查建议先做一遍,避免后面卡壳。
- Node.js版本:t3code对Node版本有要求,我在Node 18的环境下运行最稳定。版本太低会出现一些依赖安装失败的兼容性问题。建议用nvm管理Node版本,装一个18以上的LTS版本。
- 包管理器:npm、yarn、pnpm都可以,但我推荐pnpm。t3code生成的工程依赖结构比较复杂,pnpm的硬链接机制能让安装更快,磁盘占用也更小。实测在同一个项目上,pnpm比npm快大约30%。
- Docker:如果你要使用容器化部署功能,Docker Desktop需要提前装好。t3code本身不会强制你使用Docker,但生成的项目结构里包含了容器配置文件,迟早会用到。
初始化流程通常分三步:
t3code init:在当前目录生成t3code配置文件t3code create:交互式引导你录入项目信息t3code generate:正式生成项目代码
最花时间的是第2步。官方推荐的交互式引导包含几十个问题,我第一遍跑的时候大概花了20分钟。后来我把常用的项目模式存成了配置文件,新建项目时直接复用,基本两分钟就能完成生成过程。
3. 实操过程与核心环节实现
3.1 从零到一:生成一个带登录权限的进销存系统
纸上谈兵没意思,我拿一个实际案例完整跑一遍t3code的流程。这个案例的背景是一个做五金批发的朋友,他让我帮忙搭一套内部用的进销存管理系统,要求有登录权限、商品管理、供应商管理、采购入库和库存预警。
我用的技术栈是:前端Vue 3 + Element Plus,后端Node.js + Express,数据库MySQL,部署用Docker Compose。
配置过程大概是这个思路。首先是项目描述,我在项目配置文件里写清楚了项目的核心目标:面向内部员工使用的进销存系统,需区分管理员和普通员工两种角色。
然后是数据模型定义,这是最花功夫的部分。商品模型我定义了名称、规格型号、单位、分类、采购价、零售价、当前库存和预警阈值;供应商模型定义了公司名称、联系人、联系电话、地址、备注;采购入库单模型定义了供应商、入库日期、操作人、明细列表和总金额;用户模型定义了用户名、密码、姓名、角色、状态。
t3code在我描述这些模型之后,自动生成了MySQL建表语句,并且合理地设置了默认值。比如用户密码字段是hash存储的,t3code自动预留了bcrypt处理逻辑。商品价格字段自动设成了DECIMAL(10,2),库存字段设成了INT且加了UNSIGNED约束。
生成过程结束后,我检查了一下目录结构。意料之中,前后端分离合理,Docker相关配置也齐全。我手动修改了几个地方,把数据库连接信息改成了我自己的MySQL配置,加了一个新的.env文件,然后启动。
整个流程从配置文件准备到项目运行,总共用了不到半小时。如果纯手写,最快也得两三天。这效率提升,时间都花在了业务逻辑而不是环境搭建上。
3.2 核心代码结构解析:一个生成商品列表接口的完整链路
生成完整个项目后,我觉得最有代表性的就是商品列表这个接口的完整实现链路。我把它拆开给大家看看,有助于理解t3code生成的代码质量。
后端部分,路由定义在routes/product.routes.js,典型代码长这样:
router.get('/products', authMiddleware.requireAuth, validate.query(paginationSchema), productController.getProducts);这个写法很规范,使用了配置好的鉴权中间件和参数校验中间件。分页参数(page、pageSize)会通过paginationSchema进行校验,保证非法输入不会到达controller。
controller层的逻辑也很清晰:
const getProducts = async (req, res, next) => { try { const { page = 1, pageSize = 20, keyword, categoryId } = req.query; const result = await productService.getProducts({ page, pageSize, keyword, categoryId }); res.json({ code: 0, data: result }); } catch (error) { next(error); } };错误处理是托给全局的errorHandler的,不用每个接口重复写try-catch。
service层是真正的业务逻辑所在:
const getProducts = async ({ page, pageSize, keyword, categoryId }) => { const where = {}; if (keyword) { where.name = { [Op.like]: `%${keyword}%` }; } if (categoryId) { where.categoryId = categoryId; } const { count, rows } = await Product.findAndCountAll({ where, limit: pageSize, offset: (page - 1) * pageSize, order: [['createdAt', 'DESC']], }); return { list: rows, total: count, page, pageSize }; };注意,t3code自动处理了关键字模糊查询和分页逻辑,还加了创建时间倒序排列。这些默认逻辑是符合大多数业务预期的,我基本不需要改动。
前端部分,t3code在api/product.js中自动生成了请求函数:
export function getProducts(params) { return request({ url: '/products', method: 'get', params, }); }页面组件则自动配置好了ElTable、ElPagination组件,绑定了加载状态和请求函数。页面代码不是一次性打死的,它预留了扩展点,比如操作列的插槽、筛选表单的插槽,方便我后续加自定义按钮。
这套完整链路下来,我的最大感受是:t3code不是把代码拼接完就撒手不管了,它考虑到了后续的维护和扩展。这才是生成代码能用于生产的核心条件。
3.3 环境配置与参数选择过程
生成代码是一回事,让它跑起来又是另一回事。t3code生成的环境配置比较完整,但我建议按下面的方式做一遍参数复核,以免上线后出幺蛾子。
数据库连接配置。生成的.env.example里会有一个DB_HOST=127.0.0.1这样的配置,建议改成实际使用的数据库地址。如果是本地开发、Docker部署,数据库服务名在docker-compose.yml里通常是db,那么DB_HOST应该对应db或者具体的容器名,别照抄样例。
监听端口与外部访问。t3code默认后端监听3000端口,前端监听5173端口(开发模式)。如果服务器上已有其他服务占用这两个端口,需要改一下docker-compose端口映射。我建议直接改成宿主机的80端口映射到前端容器,后端8080映射到3000,这样外部访问最简洁。
JWT密钥与环境隔离。这个项目带登录鉴权,t3code生成了JWT_SECRET_KEY占位符。生产环境必须设置成一个复杂的随机字符串,不能再用默认值,否则有严重安全隐患。开发和生产环境的密钥务必分开。
上传文件与静态资源。进销存系统后来加了一个Excel导入的功能,需要处理文件上传。t3code生成项目时如果不显式声明文件上传需求,不会生成上传目录和静态资源映射配置。我手动在后端加了一个uploads/目录,并在Express里配置了express.static中间件来暴露上传的文件。
这些配置看起来零散,但都是上线前必须核对的点。被我列出来的这些坑,我一个一个踩过。
3.4 流水线化技巧:让生成结果从“能跑”到“能上线”
每次手动核对配置也挺烦的,尤其是在同一个团队反复生成项目的情况下。后期我把t3code嵌到了团队的初始化流程里,总结了一套从生成到上线一气呵成的流水线。
第一步,统一项目配置文件模板。把t3code的项目配置按团队规范写好,包括环境变量命名规则、代码风格偏好、默认技术栈组合,然后放到团队的Git仓库里统一管理。新项目直接从模板复制,改项目名和业务描述即可。
第二步,生成后自动化处理。t3code生成完项目后,我写了一个小的初始化脚本。脚本会自动做几件事:安装依赖、把.env.example复制为.env并填入默认开发配置、初始化Git仓库并创建main分支、进行一次初始提交。整个过程耗时可能不到1分钟,但为每个项目省下了至少10分钟的“烤机时间”。
第三步,持续集成接入。t3code生成的项目自带基础CI配置模板,需要在GitHub Actions或GitLab CI里配置好。我们对每次push到main分支的代码都会运行一遍测试和构建,确保生成代码在提交之前是可用的。
第四步,部署配置标准化。上线服务器上的docker-compose配置,t3code生成的是开发版。我整理了一份生产版部署模板,加入了镜像tag命名规则、健康检查、日志驱动、重启策略等生产配置,和t3code生成的配置文件做一层覆盖。
这套流水线跑起来之后,一个新项目从立项到在测试环境“能访问、能登录、能跑通主流程”,能压缩到一个小时以内。这在以前是完全不敢想的速度。
4. 常见问题与排查技巧实录
4.1 生成代码跑不起来的排查顺序
t3code生成的项目大多能直接跑起来,但“大多”意味着总有意外。遇到代码跑不起来的时候,我建议按照下面的顺序排查,省得东一榔头西一棒子:
第一查依赖安装。t3code生成的package.json里依赖项比较多,建议删掉node_modules重新安装一次。如果安装过程报错,多半是Node版本不兼容。看到ERESOLVE错误,可以试试先升级npm,再执行npm install --legacy-peer-deps。
第二查环境变量。数据库连不上、端口被占用、Redis找不到密钥,绝大多数属于环境变量问题。用命令检查一下是否加载了正确的.env文件。t3code生成的工程不会自动加载根目录的.env,前端和后端都需要各自配置。很多新手在这块栽跟头,以为是代码问题,结果只是环境变量路径错了。
第三查数据库状态。你跑进销存这种带数据库的项目,必须先确认数据库实例是起来的,账号密码有权限,并且数据库本身是存在的。如果数据库不存在,t3code生成的代码不会自动建库(它只生成建表语句),需要你手动先CREATE DATABASE。
第四查初始化脚本。t3code会生成一个npm run seed命令,用来填充基础数据。如果项目登录时提示“用户不存在”,多半是忘了跑初始化脚本,或者是跑了但数据库里还没有admin用户。
按这个顺序来,90%的启动问题都能在五分钟内解决。
4.2 个性化定制时容易踩的坑
t3code生成的代码再规范,也不可能完全覆盖你所有的定制需求。改代码时有一些坑特别隐蔽,我整理一下给大家提个醒。
不要直接改生成目录下的t3code配置文件。那个文件是描述当前项目生成状态的。如果你对项目结构做了大幅调整,比如把某个自定义目录加进工程,t3code下次增量生成时可能会把这个目录忽略掉。正确做法是把这个目录在配置文件的customDirs区域声明一下,让t3code知道这是你自己加的目录,后续生成时不去动它。
不要同时修改前端页面和对应的数据模型描述。t3code增量生成逻辑上有一个比较大的坑:如果你改了某个页面的表单结构,又在配置文件里改了对应数据模型,然后再跑一次生成,t3code经常会以最新描述为准覆盖页面的定制代码。说白了就是,配置文件里的描述才是“事实来源”。所以,一旦进入定制开发阶段,就尽量少跑重复生成,跑之前把配置文件的版本提交到Git里,给自己留一条回头路。
dist构建目录和.env文件会被忽略。t3code默认把.env文件、构建产物目录加入.gitignore。如果你需要把这些放进版本管理,比如维护一套加密的环境变量模板,需要在配置里显式声明。
4.3 性能与代码膨胀问题
t3code生成的项目,第一次跑通常感觉不到性能问题,等数据量上来后才会暴露。毕竟它覆盖的功能全面,生成的初始代码不是针对超大数据量场景优化的。
最常见的性能问题是关联查询没有做分页。一条主记录带几十条子记录还能接受,但如果你做了一个主列表查询,每个item都自动嵌套了几百条关联数据,接口响应就会很慢。
我自己处理的方案是控制嵌套层数。在数据模型定义时,对不需要嵌套展示的关联关系显式标注“不展开详情”,这样t3code生成service层时会用轻量级的查询方式,不会把整个数据树都查出来。
另一个问题是构建包体积偏大。t3code默认在导入组件时用了全量导入,没有开启前端框架的Tree Shaking优化。我用Vue项目时,把组件库的引入方式改为按需导入后,首屏体积减小了接近一半。生成的代码不会帮你做这个级别的性能优化,它保证的是功能正确和结构良好,深度优化还得靠人。
数据库索引这块也得自己上心。t3code生成的建表语句只包含基本的唯一约束和主键索引,对于高频查询字段比如“商品名称模糊搜索”“按供应商查采购单”,基本没有自动加索引。我通常会在运行一段时间后,打开MySQL慢查询日志,把高频查询字段手动加上索引。
4.4 日常维护与版本更新策略
t3code本身也在持续迭代。新版本大概率会修正一些已生成的模板代码,比如依赖版本升级、安全漏洞修复、代码模板优化。如果你已经用旧版生成过项目,不建议直接在生成项目里执行t3code upgrade,这可能会引发大面积文件变动。
我的策略是:新项目用最新版t3code生成,老项目保持已有结构不动,只手动升级关键依赖。比如生成项目里某个JavaScript库出现了一个严重安全漏洞,我直接用npm升级这个库就好,没必要把整个项目重新生成一遍。
如果你确实想让老项目尝试新版的生成模板,可以先在Git里开一个分支,跑一次t3code upgrade,然后仔细检查diff。如果diff太大,评估一下收益再决定要不要merge。务实一点说,项目跑得好好的,别为了“新模板更美观”去冒回归的风险。
5. 进阶心得与个人经验
5.1 理解“代码生成器”的边界,才能用好它
接触t3code这段时间,我的一个核心体会是:代码生成器的价值不在于消灭程序员,而在于消灭“无意识的重复劳动”。那些繁琐的样板代码、配置搭建、环境对接,它做得比人快且稳定;但真正的业务决策、架构设计、性能调优,它还是得靠人来定。
在团队使用中,我最倡导的工作方式是“人定规则、工具执行”。一开始就花时间把t3code的项目配置模板打磨到贴近团队标准,后续所有项目都从这个模板出发。这个前期投入摊到每个项目上,成本极低,但收益却是指数级的。
另外,别把t3code生成的代码当成无法修改的“天书”。它生成的代码是给你看的、给你改的。t3code的价值在于把“从零到一”的启动成本压到了最低,真正的核心竞争力还是你后续基于它的业务沉淀。
5.2 多环境协作时的使用建议
如果团队中不止一个人使用t3code生成项目,建议把项目配置文件纳入Git管理,并约定好提交时间。比如可以是“每次生成或升级后提交一次”,避免不同成员各自维护一套漂移的配置。
同时要注意配置文件之间的依赖。t3code在处理数据模型时,会参考项目描述里的技术栈参数。如果某位同事把技术栈从Express换成了NestJS,那么所有依赖旧技术栈的项目配置都要重新适配。团队内一定要有统一的“技术栈选型共识”,不要在这个层面搞百花齐放。
另外,最好指定一位成员作为t3code模板的“守护人”。他负责更新团队模板、跑升级测试、把踩过的坑写进内部文档。这样既保证了工具的有效性,也让团队知识有了沉淀的出口。
5.3 最后分享一个实用小技巧
我最后再讲一个长期使用下来比较实用的小技巧。t3code生成项目时,默认的README文档比较简略,只包含启动命令和目录结构。我建议生成项目后立刻花十分钟,把README丰富起来:写上“如何配置环境变量”“有哪些核心业务模块”“数据库迁移如何执行”“部署流程怎么走”。
这件事一定要趁热打铁。因为只有你刚刚梳理完项目结构的时候对项目的记忆最清晰,这时候写下的文档质量是最高的。等过了一周再去补文档,你基本什么都记不起来了。文档写好后放进Git仓库,以后不管是自己接手还是同事接手,都能快速进入状态,大幅降低项目交接的沟通成本。
说到底,t3code再好也是一个提升效率的工具。工具帮你省下来的时间,应该花在更值得的地方——比如想清楚业务流程、把系统设计得更健壮。在这一点上,t3code确实帮我省出了不少真金白银的时间,希望你也能用好它。