重新维护一个长期项目时,我不再从“先把功能做多”开始,而是先确保它可运行、可验证、可部署。这三个条件满足后,功能迭代才会稳定。

1. 可运行:配置不应藏在代码里

数据库地址、端口、第三方密钥等环境差异都放进配置。提交到仓库的只保留默认值和说明,真正的密钥通过环境变量注入。

1
2
3
4
5
spring:
datasource:
url: ${DB_URL:jdbc:mysql://localhost:3306/app}
username: ${DB_USERNAME:app}
password: ${DB_PASSWORD:}

这样本地、测试和生产环境共享同一份应用逻辑,也避免凭据意外进入 Git 历史。

2. 可验证:先覆盖最容易出错的边界

不必一开始追求很高的测试覆盖率。优先为参数校验、权限判断、金额或状态流转等规则写测试;这些地方最容易在重构时悄悄变坏。

测试的价值不是证明代码永远没问题,而是让下一次修改更有底气。

3. 可部署:把检查交给自动化

每次提交至少应自动完成编译、单元测试和静态检查。即使是个人项目,这一步也能把“本机能跑”变成可复现的结果。

1
2
./mvnw test
./mvnw verify

结语

工程化不是复杂工具的堆叠,而是一组让未来的自己少踩坑的约定。先把这份最小清单落实,再按真实需求增加缓存、消息队列或可观测性,项目会轻松得多。