技术能力
技术栈,以及把它约束住的规矩
工具好列。难的是项目跑了一年之后还改得动 —— 下面的规矩就是为这个准备的。
技术栈
刻意只用主流技术
后端
Java 21Spring BootMyBatis-PlusSa-TokenLiquibaseMySQL
前端
Vue 3Nuxt 3TypeScriptTailwind CSSSSR / 静态化
小程序
微信原生uni-app支付与订阅消息提审与备案协助
交付与运维
Nginx 反向代理systemd / pm2备份与回滚监控与告警
工程标准
由构建执行的约定,不是文档里的提醒
分层与依赖方向
依赖只允许向下。越界在构建期失败并点名文件与行号,不靠人盯。
契约一致性
接口、权限码与错误码和源码实时比对,不一致即构建失败,文档不会和代码分家。
鉴权默认拒绝
未标注鉴权的接口启动即失败,不会悄悄变成公开接口。
查询与写入质量
条件白名单、通配符转义、类型不符抛错、深分页保护、统一分页。
事务与迁移纪律
写操作统一出口,事务边界由断言守住;已入库的迁移脚本只增不改。
结构化日志与审计
traceId 与 userId 是一级字段,手机号与密码默认脱敏,敏感操作可追溯。
交付流程
从第一次联系到交接完成,五步
1
需求沟通
微信或电话聊清楚业务目标、现状与约束。这一步不收费,也不催你签合同。
2
范围与报价
把范围、工期、里程碑与验收标准写进一份清单,按清单报固定总价;中途改范围另议,不先做后加价。
3
原型确认
先看到能点的页面,确认结构与文案口径,再进入开发。改结构在原型阶段最便宜。
4
里程碑开发
按里程碑交付可运行的版本,每个节点你自己验收,不憋到最后一次性给你看。
5
上线与交接
部署到你的环境,交付源码、文档、部署脚本与运维说明。交接完你随时可以换人维护。
明确不做
四件明确不做的事,以及为什么
| 不做 | 为什么不 | 替代做法 |
|---|---|---|
| 不接纯比价单 | 只按最低价选供应商的需求,我们做不好,也不假装能做好。 | 把范围与验收标准写清楚,再比谁做得住。 |
| 不做没有边界的口头报价 | 范围不清楚就报价,最后一定变成互相埋怨。 | 先出一份范围清单,清单就是报价的依据。 |
| 不交付跑不起来的半成品 | 每个里程碑都必须是能在你的环境里跑起来的版本。 | 按里程碑验收,跑不起来就是不通过。 |
| 不把源码和部署方式藏着 | 交付即含源码、文档与部署脚本,你随时可以换人维护。 | 靠质量留客户,不靠信息不对称留客户。 |