Ruby工程师亲历:CV创业五年破千万
|
去年3月份,后台崩在凌晨两点十七分——不是数据库挂了,是那个用 Sinatra 写的伪原创指纹比对中间件,自己把 Redis 连接池塞爆了,还顺手把审核队列里三百多篇 CV 全喂进了死信队列。我蹲在工位上抠着键盘边沿等它重启,窗外天已经黑了,楼底下烧烤摊刚支起铁架,孜然味儿隔着双层玻璃往里钻。 我原以为是采集脚本又偷偷改了 UA 字符串长度,结果翻日志发现是 SEO 那边上周硬塞进来的“语义近义词膨胀模块”,拿 TF-IDF 跑完再套个 Word2Vec 微调,最后输出一坨带波浪号的 JSON 给审核接口——可审核接口压根没加波浪号解析逻辑。老张当时在 Slack 里回了个“????”,我就知道这事别指望他改,果然第二天晨会他还在讲“推荐位点击率提升1.2%”,跟这事八竿子打不着。 其实我早说过别碰那套推荐位权重算法,但主编坚持说“流量要靠算法推”,我说“你推的是人还是垃圾?”,他摆摆手:“先推,筛子后面有人。”——结果筛子后面是三个人轮班盯人工审核页,其中两个是我拉来兼职的 Ruby 同学,一个写 Go 的,另一个搞 Rust 的,就为凑活跑那套基于 Levenshtein+Jaccard 混搭的相似度判断。他们俩昨天还骂我:“你当年为啥不用干啥都快的 elixir?” 我说:“我当年写 Ruby 写顺手了,现在改语言?不如改命。” 饮水机没水了,我晃过去按了三次,只有噗噗两声气音。回来顺手把审核页的“标记重复”按钮样式从蓝色改成了橙红——不是为 UX,是昨天 QA 报告里写“色盲用户可能点错”,我懒得调色值,直接抄了隔壁电商栏目的 warning class,反正没人查。说白了,CV 这摊子能撑五年,真不是因为什么模型多牛、策略多妙。就是有人扛住日更三十篇,有人顶着凌晨三点被叫醒去救脏数据,有人明知是伪原创还点“通过”——只因今天 KPI 差八篇,而老板刚在群里发了张截图:某竞品首页第三屏全是我们采的稿,连标点都没改。 上周选题会我又跟 SEO 那边吵了一架。他坚持说“‘公务员考试报名入口’必须塞进标题前五字”,我说“你搜这词出来的全是官网和招考网,我们排第七,点了也不留人”,他盯着屏幕突然笑:“留不住才好啊,留住了就得做详情页,详情页得写真内容,真内容谁写?” 我没接话,低头切了下窗口,看见自己本地跑的采集沙箱正卡在某省人社厅的 JS 渲染页——页面里藏着动态生成的 base64 链接,解出来还是个加密跳转。我删了三遍正则,最后直接截 DOM 文本当正文发了。管它呢,收录量不少,审核组那边也默认睁一只眼,毕竟他们自己都用 OCR 扫 PDF 再丢进拼接池。 说到 OCR,上个月我顺手把隔壁教育栏目的旧识别脚本拷过来改了两行,给 CV 栏目配上了 PDF 提取。结果有天凌晨三点,审核同学微信问我:“这篇《2024年国考岗位表(Excel下载)》里的表格怎么全是乱码?” 我一看——原来人家 PDF 是扫描件,我那脚本默认走 text layer,压根没调 tesseract。我让她重传,她回:“刚换班,新同事已经手动输完了。” 我没好意思说,我自己上周五也偷懒,把一篇标着“待精修”的稿子,直接拖进发布池打了勾。后来那篇被某地人社局官微转发了,底下评论问“附件在哪”,我们客服回:“请关注公众号获取下载链接。” ——公众号根本没建,那是运营在用石墨文档临时编的跳转页。
文章配图,仅供参考 跑个题:昨天行政说考勤系统升级,打卡时间改成毫秒级校验,我试了下,迟到178毫秒也被标红。Ruby 启动慢,dev 环境 reload 一次要四秒,我干脆在 Gemfile 里注释掉 `spring`,改用 `require 'byebug'; binding.pry` 做热更新——debugger 退出那一刻代码就生效了,算不算某种意义上的热重载?反正上线后没人敢动 prod 的 ruby 版本,老版本里 GC 有个 bug,只要并发过两千请求就会泄露内存,但没人提,因为……大家都习惯了每早十点手动 kill 一遍 puma master。主编说:“稳定压倒一切。” 说白了就是“没出事就别动”。所以你说“Ruby工程师亲历:CV创业五年破千万”,站得住的地方?就是优胜劣汰。不是模型淘汰人,是人熬淘汰人。是审核岗那位三年没涨薪的姑娘,能在 27 秒内判断一篇“三支一扶报名条件解读”是否合规;是采集组新人第一天就学会绕过 anti-bot 的 Cookie 轮换周期;是我自己,在第 387 次看到“2025年省考公告预计在X月X日发布”这种句式时,手指自动弹开 Chrome DevTools 开始扒 network 里的 XHR 请求头。不是多聪明,是太熟了。熟到闭着眼都能猜出下一篇标题里该塞几个年份、几个“最新”、几个括号。 群消息叮咚一声,是技术组长甩进来个新 issue:采集端发现某省政府网站新增了 Canvas 水印反爬,建议上 Puppeteer。我看了眼时间,五点四十二分。工位对面小李正啃冷掉的韭菜盒子,含糊着说:“你们 Ruby 的 gem 有支持 Canvas OCR 的吗?” 我说没有。他笑了:“早跟你说换 Go,Go 的 headless 浏览器库比 Ruby 多十倍。” 我没反驳,打开终端敲了半行 `bundle exec rails c`,又删了。算了,明天再说吧。明天还得接着发。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


创业前端架构:合规、可信、安全三位一体
创业者长期主义生存指南:用技术系统穿透增长迷雾
创业提效新范式:政策×数据×安全三维驱动
数据科学家创业成功三把钥匙:不靠算法靠什么?
创业初期服务器架构5大隐形跃迁坑
创业公司后端架构生死线:政策、数据、安全缺一不可
创业搜索架构三重突破:流量、合规、运营

