做产品 PMaker
空格的键盘

职业实战 · 研发、设计与测试 · 第 18 章

研发工程师:让它干那些你不想干的部分

工程师的一天里,真正在写核心逻辑的时间可能不到三成。剩下的时间在别处:读一份写得不清不楚的 PRD 然后去追产品经理确认;写接口文档、补单元测试、写一次性…
约 11 分钟6 节4 条指令

研发工程师:让它干那些你不想干的部分

一、研发每天在跟什么较劲

工程师的一天里,真正在写核心逻辑的时间可能不到三成。剩下的时间在别处:读一份写得不清不楚的 PRD 然后去追产品经理确认;写接口文档、补单元测试、写一次性的数据订正脚本;排查一个只在线上出现的问题,翻日志、翻告警群、翻三个月前的一次变更记录;给别人的 MR 做 Code Review。

这些活的共同点是必要但不增值——不做不行,做了也不会让你成为更好的工程师。它们恰好也是最适合交出去的:规则清楚、有明确的对错、你一眼能看出做得对不对。

这一章不讲怎么让 AI 写业务代码。那件事你已经在编辑器里用得比这本书熟。这一章讲的是编辑器覆盖不到的那部分——需要读文档、翻聊天记录、跨系统查东西、产出非代码交付物的场景。这些恰好是接了飞书之后才做得了的。

二、你的上下文散在飞书哪儿

上下文类型在飞书的位置典型内容
需求云文档 PRD、多维表格需求描述、验收标准
技术方案云文档、知识库设计文档、评审结论
排期与任务项目、任务谁做什么、什么时候提测
线上问题告警群、值班群报警、现象描述、临时处理
踩坑记录知识库历史故障复盘、疑难问题记录
变更记录审批、发布群谁在什么时候上了什么
代码与工单需要走连接器Gitee、Linear 等
你需求云文档 PRD、多维表格技术方案云文档、知识库排期与任务项目、任务线上问题告警群、值班群踩坑记录知识库变更记录审批、发布群代码与工单Gitee、Linear实线在飞书里,走内置技能;虚线在飞书之外,要走浏览器或连接器
先照着把你们公司的实际情况填一遍。东西在哪儿,是能不能把活交出去的前提。

第五行「踩坑记录」是研发这张表里最被低估的。同一个坑,团队通常会踩两次以上——第一次是新人踩,第二次是老人忘了。这些记录一直在知识库躺着,只是出问题时没人想得起来去搜。让 Agent 在排查时顺手翻一遍,是这一章性价比最高的一件事。

三、四个高频场景

场景 01

接需求:先把 PRD 里没说清的地方挑出来

原来怎么干

拿到 PRD 开始写技术方案,写到一半发现某个状态没定义、某个边界情况没写、和另一个模块的关系不清楚。回去问产品,产品说我想想,一天过去了。这个来回通常要三四轮。

发这句话
读这份 PRD,我要开始做技术方案。先不要写方案,先做两件事:
一、把需求里所有没说清楚的地方列出来,按这几类分:状态和流转没定义的、边界和异常情况没写的、和现有功能的关系不明确的、数据口径不清楚的、非功能要求(性能、并发、兼容)缺失的。每条指出是 PRD 的哪一段,并写成一句可以直接去问产品经理的话。
二、列出这个需求会影响到的现有模块和接口,依据是(技术文档/知识库)里的现有设计,找不到依据的标成「需人工确认」。
为什么这一步值得单独做

把追问集中在一次发出去,比写到一半卡一次问一次快得多。而且列出来的问题清单直接就能贴进群里 @ 产品,不用再组织语言。

你验收什么

它挑出来的「问题」里,有些是它自己没读懂,PRD 未必真有问题。快速过一遍,把误报划掉再发出去——发一堆假问题给产品经理,下次人家就不认真看了。

它回来的东西大概长这样问题清单的前三条

类别问题出处
状态流转订单被取消后再申请退款,走哪条流程?PRD 只写了未取消订单的退款路径3.2 节
边界异常优惠券和积分同时使用时,退款金额按哪个口径退?没有写4.1 节
与现有功能关系新的结算页是否复用现有的支付回调?如果复用,回调里的订单状态判断需要改全文未提及

受影响的模块:订单服务(状态机)、支付回调(PaymentCallbackHandler)、积分服务——依据是技术文档「支付链路设计 v3」;风控是否受影响需人工确认,文档里没有相关描述。

接着才是方案

问题澄清后,再让它基于 PRD 加澄清结论出技术方案初稿,你在骨架上改,比从空白文档开始快。

耗时

三四轮来回一次问清

场景 02

线上问题:把散在几处的线索拼成时间线

发这句话
排查(问题描述)。按时间线整理:
一、从(告警群、值班群)里找出(时间范围)内所有相关的报警和讨论,按时间排列;
二、从(发布群/审批)里找出这段时间前后的变更记录,标出时间上可能相关的;
三、在(知识库)里搜索历史上有没有类似现象的记录,有的话把当时的原因和处理方式列出来;
四、基于以上给出几条可能的排查方向,每条说明依据是哪条线索。
不要下结论说根因是什么,只给方向和依据。日志我自己去看。
它用到什么

飞书 IM + 知识库 + 审批。代码和工单可以接 Gitee / Linear 连接器。

「不要下结论」这条

模型给的根因往往听着合理,一旦你信了就会顺着它的方向排查,错的方向比没有方向更耗时间。让它给的是线索的时空关联——什么时候报的警、前后有什么变更、历史上有没有类似——这些是客观事实,判断留给你。

第三条是这个场景的价值所在。历史踩坑记录的检索,人在紧张排查时不会做,但它可以顺手做。

耗时

翻半小时记录两分钟

场景 03

那些你不想写的产出物

工程师不怕难题,烦的是重复的文字活。

发这句话
基于这份接口代码,生成接口文档:每个接口列出方法、路径、请求参数(含类型、是否必填、含义)、响应结构、错误码及含义。参数含义从代码注释和字段命名推断,推断出来的用「(推断)」标注,我来确认。文档格式按(现有文档模板)。生成后存到(飞书文档位置)。

同类的还有:

  • 数据订正脚本:说清表、条件、要改成什么、影响行数预估,要求先出 SELECT 查影响范围给你看,确认后再给 UPDATE。这一条不能省,第五节会再说一次。
  • 单元测试:给它函数和边界条件清单,让它补全用例,重点是覆盖异常分支
  • Code Review 第一遍:让它先扫一遍明显问题——空指针、未处理异常、资源未关闭、并发问题、和团队规范不一致的地方,你在它的结果上做第二遍。它扫不出设计问题,那是你的部分
你验收什么

接口文档里「推断」的那些字段含义必须逐个确认。写错一个字段含义,下游按它接了,是要出线上问题的。

耗时

一下午半小时

场景 04

值班与告警的日常整理

发这句话
每天早上八点,把过去 24 小时(告警群)里的报警按服务和类型归类,统计每类的次数,标出重复次数最多的三类和首次出现的新类型。已经在群里被讨论过或有处理结论的,把结论附上。生成一份值班交接简报存到(位置)。没有新增告警也说一声。

告警群一天几百条,重复的占大半,真正需要关注的新问题淹在里面。按类型归类、把新出现的挑出来,这件事人做很枯燥,它做刚好。

耗时

交接会二十分钟读一份简报

四、该装哪几个技能、伙伴、连接器

类型具体名称用在哪
内置技能云文档、知识库PRD、技术方案、踩坑记录
内置技能飞书 IM告警群、值班群
内置技能项目、任务排期与提测
内置技能审批变更记录
内置技能定时任务场景四
推荐技能编程类(内置 6 个 + 推荐 8 个)代码相关
工作伙伴高级开发工程师方案与代码评审
连接器Gitee仓库与提交记录
连接器Linear工单与迭代
连接器Supabase数据服务

模式建议:链路长、要反复自我修正的任务(跨多个文件的重构、需要调试的脚本)上 Pro;日常的文档和整理用 Turbo 就够。

五、边界在哪

研发这一章的边界和别的岗位不同——不在于数据敏感,在于代码的责任归属。

它产出的代码,署名的是你。 Code Review 通过、上线出问题,追责追到的是提交人。所以核心业务逻辑、涉及资金和权限的代码、性能敏感路径,AI 写的部分你必须逐行读懂再提交。读不懂就别提交,这一条没有商量余地。

线上变更必须人来执行。 发布、回滚、改配置、执行 DDL、跑数据订正——AI 可以准备、可以生成脚本、可以列出检查清单,执行由人做。不可逆动作前的那道确认,就是给这类操作留的。

它适合的是:脚手架、一次性脚本、文档、测试用例、排查线索、review 的第一遍。它不适合的是:需要理解你们系统历史包袱才能做对的决策。那些包袱不在任何文档里,只在老同事脑子里。

六、研发指令卡

场景指令模板
PRD 挑问题「读这份 PRD,先不写方案。一、列出所有没说清的地方,分状态流转/边界异常/与现有功能关系/数据口径/非功能要求五类,每条指出出处并写成可直接问产品的一句话;二、列出受影响的现有模块和接口,依据来自(技术文档),无依据的标「需人工确认」。」
技术方案「基于这份 PRD 和澄清结论出技术方案初稿:整体设计、数据结构变更、接口定义、影响面、风险点、分阶段实施建议;不确定的地方标出来不要替我拍板。」
排查线索「排查(问题):一、(群名)(时间范围)内相关报警与讨论按时间排列;二、前后的变更记录并标出时间相关的;三、知识库里类似现象的历史记录及当时处理方式;四、可能的排查方向及各自依据。不要下根因结论。」
接口文档「基于这段代码生成接口文档:方法、路径、请求参数(类型/必填/含义)、响应结构、错误码;参数含义推断出来的标「(推断)」等我确认;格式按(模板),存到(位置)。」
数据订正「我要把(表)里满足(条件)的(字段)改成(值)。先写 SELECT 查出影响的行数和样例数据给我看,我确认后再给 UPDATE 语句,并附回滚方案。不要直接给 UPDATE。」
Review 首轮「按(团队规范文档)扫一遍这段代码:空指针、未处理异常、资源未关闭、并发问题、SQL 注入、与规范不一致处;每条指出行号和理由,不确定的也列出来。设计层面的问题我自己看。」
值班简报「把过去 24 小时(告警群)的报警按服务和类型归类统计次数,标出重复最多的三类和新出现的类型,已有处理结论的附上结论,生成值班交接简报存(位置);无新增也告知。」