技术探索与实践踩坑记录:一个老广奶爸的深夜折腾史

Vim孤独患者
2025-12-22 01:38
阅读 1139

一、凌晨一点半,娃睡了,我的“第二人生”才刚开始

上周五晚上1点37分,我家两岁半的大宝终于停止了第三次“诈尸式夜醒”,小宝也安稳地打着小呼噜。我轻轻把被子掖好,蹑手蹑脚地摸黑走出儿童房,生怕地板发出一点声响——这可是我们家“夜间作战”的基本守则。

打开书房门,台灯亮起,MacBook屏幕幽幽地泛着光。老婆在微信上发来一句:“今晚还能学不?别熬太晚。”我回了个“OK”表情包,心里却清楚:今晚必须搞明白那个该死的微前端方案

我是阿强,广州老西关人,坐标荔湾区恩宁路附近一栋90年代的旧楼里,白天是某中型电商公司的后端工程师,晚上是两个娃的专职奶爸。房贷5800,房租?哦不,这是自家老屋,省了这笔钱,但奶粉尿布每月轻松干掉4000+。技术这条路,不是兴趣,是饭碗——更是简历上那行“期望薪资:22k+”的底气。

去年十月,我开始认真考虑跳槽。翻出尘封半年的简历,发现技能栏还停留在 Spring Boot + MySQL + Redis 的“三件套”。HR朋友老李直接泼冷水:“阿强,现在大厂都要云原生、Service Mesh、低代码平台经验,你这简历投出去,系统秒筛不过。”

那一刻,我坐在儿童游乐区的小马扎上(对,就是那种给娃玩的塑料凳),看着大宝在海洋球池里滚来滚去,心里一阵发虚:技术迭代这么快,我是不是已经被时代甩下车了?

二、教程千篇一律,踩坑全靠自己

为了补课,我花了三天时间,在B站、知乎、掘金上狂搜“微前端入门”、“qiankun实战”、“模块联邦教程”。收藏夹很快堆满了“保姆级教程”、“从零搭建”、“手把手带你飞”之类的标题党视频。其中有个UP主叫“代码老司机”,封面写着“三天搞定微前端,跳槽涨薪5k不是梦!”——我信了,真的信了。

第一个坑,出现在环境配置。

按照教程,第一步是 npm create vite@latest main-app -- --template react。结果终端直接报错:Error: EACCES: permission denied。我懵了:我可是用的 Mac,不是 Windows 啊?后来才想起,之前为了装 Homebrew 改过全局 npm 权限,导致 node_modules 写入受限。折腾到凌晨两点,最后用 nvm 重装 Node.js 才解决。

第二个坑,更离谱。

教程里说:“主应用只需一行代码引入子应用”。我照做,结果浏览器控制台疯狂报红:Uncaught DOMException: Failed to execute 'appendChild' on 'Node': This node type does not support this method.。查了一晚上 Stack Overflow,才发现是因为子应用用了 React 18 的新根渲染方式(createRoot),而 qiankun 还没完全适配。最终解决方案?降级回 ReactDOM.render教程里只字未提版本兼容问题,仿佛全世界都用着同一套环境。

最崩溃的是上周三晚上。

小宝发烧到38.5℃,我和老婆轮流物理降温、喂药、量体温,折腾到凌晨四点。好不容易娃睡了,我拖着疲惫的身体想继续调试那个跨域问题——子应用部署在测试服务器,主应用本地开发,CORS 头死活加不上。我试了 nginx 反向代理、webpack devServer proxy、甚至改 hosts 文件……全都无效。

第二天早上送大宝去幼儿园的路上,他突然问我:“爸爸,你昨晚是不是又在打怪兽?”
我一愣:“你怎么知道?”
他说:“你房间里有‘error’的声音,妈妈说那是代码怪兽。”

那一刻,我又想哭又想笑。技术人的“打怪兽”,在外人眼里不过是键盘敲得噼里啪啦。

三、从“抄教程”到“造轮子”:我的转折点

事情的转机,发生在一个周末下午。

老婆带娃回娘家,给了我难得的6小时“自由时间”。我没有立刻打开电脑,而是泡了一壶普洱(老广的倔强:咖啡?不如茶!),拿出纸笔,开始复盘:

为什么教程里的代码在我这里跑不通?
是我的环境特殊?还是教程本身有隐藏前提?
我到底想用微前端解决什么问题?

我突然意识到:我一直在“复制粘贴式学习”,却没有理解底层逻辑。

于是,我做了一个大胆决定:放弃所有现成教程,从官方文档开始,一行一行读源码。

我打开了 qiankun 的 GitHub 仓库,从 start() 函数看起。原来它本质上是通过 import-html-entry 动态加载子应用的 HTML,并劫持其生命周期函数。而我之前遇到的 DOM 错误,正是因为 React 18 的并发模式和微前端的沙箱机制冲突。

更关键的是,我发现我们公司的业务其实不需要完整的微前端架构——我们只是想让多个团队独立发布各自的管理后台模块,而不想互相阻塞。

于是,我设计了一个简化方案:

  • 主应用提供统一登录和菜单
  • 子应用打包成 UMD 模块,通过 <script> 标签动态加载
  • 通信通过 window 全局事件总线(虽然土,但可控)

这个方案没有用任何 fancy 的框架,但它解决了实际问题。我在公司内部分享会上演示时,CTO 点头说:“务实,比盲目上新技术强。”

、简历怎么写?真实经历才是硬通货

上个月,我更新了简历。没有写“精通微前端架构”,而是这样描述:

主导公司管理后台模块化改造项目

  • 针对多团队协作效率低的问题,设计轻量级模块加载方案,避免引入复杂微前端框架
  • 通过动态 script 加载 + 全局事件通信,实现子应用独立开发、部署与集成
  • 上线后,前端发布频率从每周1次提升至每日3+次,团队协作阻塞减少70%
  • 技术栈:React 17, Webpack 5 Module Federation (仅用于构建), 自研加载器

面试时,HR问:“你这没写 qiankun 或 single-spa,是不是没经验?”
我笑了笑:“我研究过,但评估后认为不适合我们场景。技术选型不是追新,而是解决问题。”

对方沉默两秒,然后说:“明天来和架构师聊聊?”

最终,我拿到了 offer,月薪从18k涨到24k。老婆说:“早该跳了。”我说:“不是早该跳,是早该搞清楚自己到底会什么、能解决什么。”

五、给同样在深夜挣扎的你的几点建议

作为一个在尿布和代码之间反复横跳的老广程序员,我想分享几点血泪教训:

  1. 教程是地图,不是目的地
    别迷信“三天速成”。每个教程都有作者的上下文,你的环境、业务、约束条件都不同。学会看官方文档,比看100个视频更有用。

  2. 简历要写“做了什么”,而不是“用了什么”
    “使用 qiankun 实现微前端” 是废话;“通过模块化方案提升团队交付效率70%” 才是价值。HR 看简历平均只有6秒,你要在6秒内证明你能赚钱/省钱。

  3. 技术债可以欠,但不能赖
    我们项目里还有 jQuery 写的老模块,但我不焦虑。只要核心链路可控,边缘功能慢慢重构。活着,比完美更重要。

  4. 家庭时间和学习时间不是对立的
    我现在每天固定22:30-23:30为“技术时间”,雷打不动。但前提是——白天高效工作,晚上高质量陪娃。老婆支持我,是因为她看到我在进步,而不是在逃避家庭。

  5. 广州老城区的夜晚很安静,适合思考
    有时候,关掉电脑,走到窗边看看恩宁路的老骑楼,听听远处地铁6号线的轰隆声,反而能想通白天卡住的问题。技术是冰冷的,但人是热的。

六、写在最后:我们不是AI,是活生生的人

前几天,大宝在纸上画了一幅画:一个大人坐在电脑前,旁边有两个小人,头上都顶着“Zzz”。他指着大人说:“这是爸爸在打代码怪兽。”

我鼻子一酸。他知道爸爸晚上不睡觉,是在“打怪”。

但我想告诉他:爸爸打的不是怪兽,是在给自己、给你们,打出一条更宽的路。

技术探索的路上,没有捷径。那些教程教不会你如何在娃哭闹时保持冷静,如何在deadline前写出可靠代码,如何在35岁的年纪依然相信“我可以”。

但正是这些深夜的踩坑、凌晨的顿悟、简历上的每一行字,构成了我们普通程序员的真实人生。

所以,如果你也在某个凌晨,一边刷着教程一边担心明天早起送娃,别焦虑。你不是一个人在战斗。

我是阿强,一个在广州老城区带俩娃的程序员。我的技术之路,还在继续。而你,也一定可以。

共勉。

评论 0

最热最新
暂无评论
Vim孤独患者Lv.1
0
影响力
0
文章
0
粉丝