技术探索与实践总结:一个“回炉重造”的测试仔的三年架构思考

Gradle别卡了
2025-12-13 16:05
阅读 800

去年十月的一个周五晚上,我瘫在出租屋的破沙发上,左手刷着老家某三线城市国企的招聘信息,右手点开猎聘上“资深后端开发”的JD。房租3500的房子漏风,窗外是深圳科技园永不熄灭的写字楼灯光。老婆在厨房喊:“你到底还回不回老家?娃明年就要上小学了!”
我盯着屏幕上那行“要求精通微服务、高并发、分布式事务……”,苦笑了一下——三年前,我还在用Excel写测试用例,连git rebase都搞不清楚。

从“点点点”到“敲敲敲”:我的转岗血泪史

2021年初,我在一家中型电商公司做功能测试,月薪15k。每天的工作就是点按钮、截图、写bug、催开发修bug。直到有一天,新来的CTO在周会上说:“我们要做自动化测试平台,谁愿意牵头?”
没人举手。
我硬着头皮站起来:“我试试。”
其实心里慌得一批——我会的Python还停留在print('hello world')阶段。

接下来三个月,我白天测需求,晚上啃《流畅的Python》+《Spring Boot实战》。有次凌晨三点调试Selenium脚本报错,把老婆吵醒,她迷迷糊糊问:“你这代码能换奶粉钱吗?”
我说:“等我搞懂Docker,就能了。”

奇迹发生了。自动化平台上线后,回归效率提升70%。老板一高兴,问我愿不愿意转开发岗。
“真转?我连MVC都讲不利索!”
“怕啥,你比有些只会CRUD的‘老开发’强多了。”

于是,2021年6月,我正式从“测试仔”变成“开发狗”,薪资涨到18k。虽然第一天写接口就因N+1查询被架构师当众diss:“你这是给DBA送年终奖吗?”

架构不是画PPT,是填坑填出来的

真正让我理解“架构设计”这四个字的重量,是去年做的一个订单系统重构项目。

背景:旧系统用单体架构,MySQL主从延迟动不动就超5秒,大促时订单状态乱成一锅粥。老板拍桌子:“必须上微服务!参考阿里最佳实践!”

我负责拆分订单核心模块。一开始热血沸腾,画了个贼漂亮的架构图:Spring Cloud Alibaba + RocketMQ + Seata分布式事务 + Redis缓存集群……
结果上线第一天,用户支付成功但订单没生成——因为本地事务和MQ消息没做到原子性。

那天晚上,我和后端组老王蹲在公司天台抽烟(别学,纯属压力大)。他吐着烟圈说:“兄弟,架构不是拼乐高。你得先想清楚,你的业务到底要什么,而不是技术栈有多酷。”

这句话点醒了我。我回去重做方案,做了三件事:

  1. 简化事务模型:放弃Seata,改用“本地消息表+定时补偿”,虽然不够“高大上”,但稳定;
  2. 读写分离细化:把订单查询拆成独立服务,走ES+缓存,写操作走MySQL;
  3. 监控埋点全覆盖:每个关键路径加Metrics,Prometheus一目了然。

上线后,系统扛住了双11流量峰值,错误率从3%降到0.02%。老板请全组吃火锅,我喝多了,抱着监控大屏喊:“老子终于不用半夜被PagerDuty叫醒了!”

综合能力,才是普通人的护城河

很多人以为转开发就是会写代码。其实远不止。

在测试岗位积累的“用户视角”反而成了我的优势。比如设计API时,我会下意识想:“前端同学调这个接口会不会骂娘?”
做数据库设计,会考虑:“运营导数据会不会把生产库跑挂?”

上周review一个同事的PR,他为了性能把所有字段塞进JSON存在DB里。我直接打回:“你让数据分析团队怎么写SQL?让他们用正则解析字段吗?”
他愣住:“啊?还有这问题?”

这就是综合能力的价值——技术不是孤立的,它嵌在产品、运营、运维、合规的链条里。
就像我老家县城修路,光水泥标号高没用,得看是不是连着菜市场、学校、医院。

要不要回老家?技术人的地域困境

现在月薪22k,在深圳勉强够活。但老婆怀孕二胎,父母年纪大了,孩子教育也成问题。
上周和HR聊转岗机会,她说:“你经验不错,要不要考虑我们成都分部?薪资打八折,但房价只要深圳1/3。”

我算了笔账:

  • 深圳:月入22k,房租3500,育儿支出5000,剩不下多少
  • 老家省会:月入15k,房贷2000,爸妈帮忙带娃,还能存钱

但又怕技术退化——小城市项目简单,可能天天写CRUD,三年后简历都没法看。

有天和前测试组长喝酒,他说:“技术深度不在城市大小,而在你解决问题的复杂度。你在深圳优化QPS从1000到10000,和在县城把政务系统从宕机三天缩短到十分钟,价值一样大。”

这话有点鸡汤,但细想有道理。技术分享的本质,不是炫耀多高深的框架,而是传递解决问题的思路

写在最后:给想转型的“非科班”朋友

如果你也像我一样,从测试/运维/产品转开发,请记住:

  1. 别迷信“主流技术栈”:能稳定解决问题的架构,就是好架构。有时候Redis+MySQL比Kafka+Flink更合适。
  2. 把过往经验当资产:测试出身?那你对异常场景的理解碾压90%开发;做过运维?你懂部署和监控的痛。
  3. 综合>专精:在中小厂,能跨职能沟通的人,比只会调优JVM的“专家”更不可替代。
  4. 城市不是枷锁:远程协作工具这么发达,完全可以接一线城市项目,住在低成本城市生活。

至于我?下个月回趟老家,看看当地有没有靠谱的技术团队。如果没有,就尝试远程工作+接外包。
毕竟,代码在哪写不是写?只要还能解决真实世界的问题,我就还是个有价值的开发者。

临了说句实在话:
技术探索不是攀登珠峰,而是修一条让更多人走得更稳的路。而这条路,可以在深圳,也可以在十八线小城——只要你愿意动手铺砖。

(完)

作者:一个正在纠结回不回老家的前测试工程师,现Java开发,GitHub常年绿但Star不多。欢迎技术交流,不欢迎劝退。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝