从测试到开发:一个异地程序员的技术探索与生活坚持

代码轻食主义
2026-01-14 18:54
阅读 343

上周五晚上10点47分,我合上笔记本,窗外北京的夜色早已沉沉。微信弹出一条消息:“老公,你今天又加班啊?”——是我老婆发来的。她人在杭州,我们已经异地快一年了。我回了个“嗯”,加了个委屈巴巴的表情包,心里却有点不是滋味。

就在那天下午,我刚用自己写的一个小工具,把原本要花三小时的手动回归测试自动化掉了。这让我想起去年十月那个同样疲惫的夜晚——那时我还是个手动点按钮点到手抽筋的测试工程师,月薪15k,每天最大的成就感就是发现一个别人没注意到的bug。而今天,我已经是个能独立负责前端模块、用JavaScript写出可维护业务逻辑的开发,月薪22k,房租3500,但依然不敢轻易搬家——因为老婆的工作在杭州,我们只能周末见面。

这篇文章,我想聊聊这段从测试转向开发的真实经历,以及在这个过程中,我对技术探索与实践最佳实践的一些笨拙却真诚的理解。不讲高大上的理论,只说我在深夜改bug、周末远程视频debug时踩过的坑、攒下的经验。


起点:不是不想转,是不知道怎么转

2021年,我在一家中型电商公司做功能测试。每天重复着“点-看-记-报”的循环。虽然稳定,但总觉得像在原地打转。那会儿我老婆还在上海,我们刚领证不久,正商量要不要一起定居。可现实很骨感:测试岗天花板低,涨薪慢,想买房?连首付都遥遥无期。

有一次和老婆视频,她突然问我:“你有没有想过转开发?我看你平时不是挺喜欢捣鼓代码的吗?”
我说:“喜欢是喜欢,但哪有那么简单?我连React都没正经写过项目。”
她笑了笑:“那你周末别光打游戏了,试试看呗。反正我们暂时也见不了面,你多学点东西,以后选择也多。”

这句话像一根针,戳醒了我。异地恋最怕的不是距离,而是停滞。如果我不往前走,可能连未来和她团聚的资格都没有。

于是,我开始利用周末和下班后的时间,啃JavaScript基础、学Node.js、搭Vue项目。但很快我就发现:光看教程不行,没有真实场景,学得再快也留不住


转折点:用工具解决自己的痛点

真正让我迈出第一步的,是一个“偷懒”的想法。

当时我们测试组有个痛点:每次上线前,要手动核对几十个接口的返回字段是否符合文档。文档一改,就得重新点一遍,效率极低。组里没人愿意干这活,除了我——因为我隐约觉得,这事儿可以用脚本搞定。

于是我花了两个周末,用JavaScript + Puppeteer 写了个简单的校验工具。它能自动读取Swagger文档,发起请求,然后比对接口返回的字段结构。第一次跑通那天,我激动得差点叫出声。虽然代码写得烂(现在回头看简直不忍直视),但它真的省下了我每周至少5小时的重复劳动。

更关键的是,这个工具成了我转型的“敲门砖”

我把代码整理了一下,提交给技术负责人看。他眼睛一亮:“你写的?这思路不错啊!要不要试试参与下个迭代的前端联调?”
就这样,我开始以“测试+辅助开发”的身份介入项目。虽然初期经常被同事吐槽“你这代码风格太乱了”、“Promise都没用好就敢上生产?”,但我咬牙坚持,一边改bug一边补规范。

那段时间,我几乎每天学到凌晨一点。老婆心疼,说:“别太拼了,身体要紧。”
我苦笑:“我现在拼的不是代码,是我们的未来。”


实践中的最佳实践:工具不是万能的,但没工具万万不能

从测试转开发三年,我逐渐意识到:真正的“最佳实践”,从来不是照搬大厂规范,而是在有限资源下,找到最适合当前团队和个人成长节奏的方式。而其中,工具JavaScript 成了我最信赖的伙伴。

1. 工具的本质:为“人”服务,不是炫技

很多人一提“工程化”,就想到Webpack、Vite、ESLint、Prettier一套全家桶。但对我这种半路出家的人来说,初期根本搞不定这些配置。我的策略很简单:先解决眼前最痛的问题,再逐步升级

比如,我最早写的工具连单元测试都没有,后来发现一旦逻辑复杂,改一处就崩三处。于是引入Jest,哪怕只覆盖核心函数。再后来,为了和同事协作顺畅,才慢慢加上ESLint + Prettier。

记住:工具的价值 = (节省的时间 + 减少的错误) - 学习和维护成本。如果后者大于前者,那就别硬上。

2. JavaScript 的“温柔陷阱”

作为前端主力语言,JavaScript 看似简单,实则暗坑无数。我吃过太多亏:

  • var 导致作用域污染
  • 异步回调地狱没处理好,页面卡死
  • 对象浅拷贝导致状态混乱
  • 甚至一度以为 ===== 可以混用……

后来我给自己定了三条铁律:

  1. 永远用 const/let,告别 var
  2. 异步一律用 async/await,拒绝回调嵌套
  3. 复杂对象操作,直接上 lodash 或 structuredClone

这些看起来都是基础,但正是这些“小习惯”,让我在后期接手大型项目时没栽大跟头。

3. 把“写工具”变成日常习惯

现在,我养成了一个习惯:只要发现自己重复做同一件事超过三次,就立刻考虑自动化

比如:

  • 用 Node.js 写脚本批量生成组件模板
  • 用 Chrome DevTools Protocol 自动截图对比 UI 差异
  • 甚至用 JS 写了个小爬虫,帮我抓取老婆所在城市的租房信息(她说我魔怔了)

这些工具不一定完美,但它们让我从“执行者”变成了“创造者”。技术探索的起点,往往就是解决自己的一个小麻烦


异地生活中的技术坚持

当然,转型之路并不只有代码。异地的日子,孤独和焦虑是常态。

记得去年冬天,我正在攻坚一个性能优化问题,连续三天没睡好。周五晚上赶最后一班高铁去杭州,结果路上接到线上告警——我改的代码引发内存泄漏。老婆在车站等我,我蹲在角落一边连公司VPN一边改代码,手指冻得发僵。她默默递来一杯热奶茶,说:“要不……我们暂时别见面了?你专心搞工作。”

我当时眼眶就红了。不是因为累,是因为有人懂我的挣扎。

但正是这些时刻,让我明白:技术不是冷冰冰的逻辑,它背后是人的选择、责任和爱。我写每一行代码,不仅是为了通过Code Review,更是为了早日结束异地,给她一个安稳的家。


给同样在路上的你:几点真心话

如果你也像曾经的我一样,处于转型期、异地中、迷茫里,我想分享几点感悟:

  1. 不要等“准备好”才开始。我转开发时,连闭包都说不清,但先动手做个小工具,比背一百道面试题更有用。
  2. 善用“最小可行实践”。别一上来就想造轮子。先解决一个问题,再迭代。
  3. 技术是手段,不是目的。我们学JavaScript、用工具,最终是为了提升效率、创造价值,而不是为了卷框架版本。
  4. 允许自己慢一点。我用了整整一年才真正胜任开发岗。期间无数次想放弃,但每次看到老婆发来的“加油”,就又撑住了。

结语:代码之外,还有生活

如今,我依然在北京的出租屋里敲代码,老婆依然在杭州的办公室画原型。但我们约定:今年底之前,一定要结束异地。或许我会跳槽去杭州,或许她来北京,不管怎样,这段从测试到开发的旅程,不仅改变了我的职业轨迹,更让我看清了自己想要的生活

技术探索没有终点,最佳实践也在不断演化。但无论工具如何更新、框架如何迭代,真正重要的,是我们用技术去守护的东西——可能是产品的稳定性,可能是团队的效率,也可能,只是周末视频时,那一句“我今天又搞定一个小工具,离你又近了一点”。

共勉。

评论 0

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