1. 为什么宠物App不用传统MVP路线,而要从Claude Code直接启动?
“宠物生命周期管理App”这个标题乍看平平无奇——市面上已有不少养宠记账、疫苗提醒、社交打卡类工具。但真正做过宠物相关系统的人会立刻意识到:“生命周期”不是时间轴上的几个节点,而是数据维度的指数级爆炸。幼宠驱虫记录要关联体重曲线、药品代谢半衰期、母体抗体消退模型;成年期绝育手术需绑定兽医资质库、术后护理SOP、并发症预警阈值;老年期慢性病管理则涉及多源数据融合——家用血压计蓝牙读数、智能项圈心率变异性(HRV)原始波形、甚至主人每日手写症状日志的NLP结构化提取。
我去年参与过某高校动物医学实验室的模拟项目X,他们用传统方式搭了一个“宠物健康档案”原型:前端Vue+后端Spring Boot+MySQL,光是设计“猫科动物不同年龄段血清肌酐参考值区间”这张表,就花了三周反复和三位临床兽医导师对齐单位制式(μmol/L vs mg/dL)、年龄分段粒度(3月龄/6月龄/12月龄是否该设为独立区间)、是否纳入品种修正系数(缅因猫 vs 新加坡猫的肾小球滤过率基线差异)。更棘手的是,当用户上传一张模糊的B超影像截图,系统需要判断“这是肾脏皮质回声增强还是肠道气体干扰”——这种需求根本不在ER图里,它要求模型理解医学影像语义,而传统开发流程里,这属于“等AI团队排期做POC”的遥远事项。
Claude Code的介入彻底改变了这个逻辑链条。它不把AI当作后期插件,而是将大模型能力编译进工程基因:当你在prompt中定义“生成一个支持多模态输入的宠物健康事件记录器”,它输出的不仅是CRUD接口,还包括预置的OCR字段映射规则(自动识别处方单上的药品名与剂量)、语音转文字的上下文过滤器(剔除环境噪音中的“喵呜”误识别为“妙思达”)、甚至根据用户输入“今天布偶猫吐了两次黄色泡沫”自动生成的鉴别诊断树(胆汁反流?胰腺炎?毛球症?)。这不是在调用API,这是让模型成为架构师、产品经理、UI设计师、测试工程师的四重身份合体。
所以“从零搭建”在这里有双重含义:一是技术栈从空白开始,二是需求定义本身被重构。传统流程是“先画原型图→再写PRD→最后开发”,而Claude Code驱动的流程是“用自然语言描述一个真实场景→让模型反向推导出所有必要模块→验证数据流闭环→再人工校准边界条件”。比如输入:“主人凌晨三点发现猫咪呼吸急促,手机拍下胸腹起伏视频,APP需在10秒内给出是否立即送医的建议,并同步生成急诊室交接单”。Claude Code会直接输出包含视频帧分析微服务、呼吸频率算法(基于光流法优化版)、本地缓存策略(离线时仍可调取历史用药记录)、以及PDF生成模板的完整代码包——你拿到的不是需求文档,是可执行的最小可行认知单元。
提示:别把Claude Code当成代码补全工具。它的核心价值在于将模糊的业务意图压缩成可验证的技术契约。当你说“管理生命周期”,它不会给你一个带增删改查的宠物信息表,而是追问:“幼年期重点关注免疫程序合规性,那‘合规’的判定规则是按日历时间还是按实际接种日期?若幼犬在28天时因腹泻延迟接种,后续所有疫苗时间点是否需要动态重排?”这种深度追问能力,才是跳过传统MVP陷阱的关键。
2. Claude Code工作流的三层解耦:Prompt即架构图
很多人以为用Claude Code就是写几行prompt然后复制粘贴代码,实测发现这样产出的代码像一锅没放盐的汤——语法正确但毫无灵魂。真正高效的实践,是把整个开发过程拆解为三个严格隔离的层次,每一层都用特定类型的prompt来驱动,且层与层之间存在明确的契约约束。
2.1 第一层:领域语义层(Domain Semantics Layer)
这是整个项目的地基,目标是将宠物医学知识转化为机器可执行的规则集。关键不在于写多复杂的prompt,而在于用结构化提问强制模型暴露知识盲区。例如,针对“疫苗接种提醒”功能,我设计的初始prompt是:
你是一名资深小动物临床医师,请用JSON Schema格式定义“犬猫核心疫苗接种计划”的数据结构。要求: 1. 包含疫苗类型(狂犬、细小、猫三联等)、适用物种、首免最小月龄、最大间隔天数、加强针触发条件 2. 特别标注“猫传染性鼻气管炎”疫苗的特殊性:仅对未感染FHV-1病毒的猫有效,需关联抗体检测结果字段 3. 对“最小月龄”字段添加单位说明(必须是“周”或“月”,禁止使用“天”) 4. 输出必须包含$ref引用机制,以便后续扩展非核心疫苗Claude Code返回的Schema里,“猫传染性鼻气管炎”字段果然缺失抗体检测关联逻辑,这立刻暴露了知识断层。我追加prompt:“请补充FHV-1抗体滴度检测结果的数值范围定义,以及滴度<1:16时的临床处置建议(需区分幼猫/成年猫)”。最终生成的Schema不仅包含字段定义,还嵌入了临床决策树:
"fvh1_antibody_titer": { "type": "number", "description": "FHV-1抗体滴度,单位1:X(如1:64)", "minimum": 1, "multipleOf": 1, "x-clinical-rules": [ { "condition": "value < 16 && pet_age_unit === 'month' && pet_age_value <= 4", "action": "recommend_vaccination_immediately" }, { "condition": "value < 16 && pet_age_unit === 'year'", "action": "recommend_retest_in_3_months" } ] }这种带临床规则注释的Schema,才是后续所有开发的唯一真理源。它比任何PRD文档都更精确,因为每个字段都经过了医学逻辑校验。
2.2 第二层:交互契约层(Interaction Contract Layer)
当领域语义确定后,下一步是定义人机交互的“法律条文”。这里最容易犯的错误是让模型自由发挥UI设计,结果产出一堆华而不实的动画效果。正确的做法是用状态机思维约束交互流程。例如针对“紧急症状上报”场景,我的prompt明确限定:
生成一个React组件,实现“宠物急性症状上报”流程。严格遵循以下状态机: - 初始状态:显示症状选择卡片(呕吐/腹泻/呼吸困难/抽搐/昏迷),每张卡片含ICD-11编码前缀 - 选择“呼吸困难”后,进入二级筛选:喘息声类型(犬吠样/哨笛样/湿啰音)、是否伴随口唇发绀、呼吸频率(需提供手动输入框+语音输入按钮) - 所有输入必须实时校验:若输入呼吸频率>120次/分钟且宠物为猫,自动弹出红色警示:“检测到危重指征,请立即拨打急救电话” - 最终提交时,生成符合ISO/IEC 11179标准的元数据包,包含症状编码、时间戳、地理位置(需调用Geolocation API)、设备型号 - 禁止使用任何第三方UI库,仅用原生HTML/CSS/JS实现Claude Code输出的代码里,状态流转逻辑被封装在useReducer hook中,每个action type都对应状态机中的一个转移条件(如SELECT_SYMPTOM、INPUT_RESPIRATION_RATE)。更关键的是,它自动为“呼吸频率”字段添加了inputmode="numeric"和pattern="[0-9]*",这是移动端数字键盘优化的细节——传统开发中常被忽略,但直接影响老人用户操作效率。
2.3 第三层:基础设施层(Infrastructure Layer)
最后一层解决“代码如何在真实世界运行”的问题。很多团队卡在这一步:模型生成的Node.js服务代码完美,但部署到云服务器时发现内存溢出。这是因为模型不了解基础设施约束。我的解决方案是在prompt中注入硬件规格契约:
你是一个云原生架构师,请为上述宠物健康App后端服务生成Dockerfile和Kubernetes Deployment配置。约束条件: - 目标平台:ARM64架构的边缘计算节点(如树莓派5),内存上限2GB - 服务需同时处理:1. 视频帧分析(FFmpeg调用)2. OCR文本提取(Tesseract)3. 实时消息推送(WebSocket) - 必须启用cgroups v2内存限制,设置memory.limit_in_bytes=1.5G - FFmpeg需编译为静态链接版本,避免glibc版本冲突 - Tesseract数据文件必须挂载为只读卷,路径/mnt/tessdata - WebSocket连接数上限设为500,超限时返回HTTP 503并提示“当前服务繁忙”Claude Code生成的Dockerfile里,果然出现了FROM arm64v8/debian:bookworm-slim的基础镜像声明,以及RUN apt-get install -y --no-install-recommends ffmpeg tesseract-ocr的精简安装命令。它甚至在Deployment YAML中添加了securityContext: {runAsNonRoot: true}——这是我在某次安全审计中被指出的高危项,模型通过学习大量K8s最佳实践文档,已将其内化为默认配置。
这三层解耦的本质,是把“写代码”这件事,还原为“定义规则-约定行为-适配环境”的专业分工。Claude Code不是替代开发者,而是把开发者从重复劳动中解放出来,专注在每一层的契约设计上。
3. 宠物生命周期数据建模的四个反直觉设计点
传统数据库设计教科书强调“范式化”,但在宠物健康领域,过度范式化会杀死系统生命力。我在用Claude Code生成数据模型时,刻意引导它违反三条经典原则,结果反而提升了临床实用性。以下是四个最值得复用的设计点:
3.1 时间维度:放弃UTC统一时间戳,采用“事件感知时区”
教科书说“所有时间存储为UTC”,但宠物医疗场景中,时区错位可能引发致命误判。例如一只猫在东京时间23:50注射胰岛素,若系统存储为UTC+9的23:50(即UTC 14:50),而主人第二天在洛杉矶查看记录时,系统显示“上次注射时间为UTC 14:50”,换算成PST是07:50——这会让主人误以为刚打完针,实际已过去17小时。Claude Code在生成时间字段时,我特别要求:
为所有与治疗行为相关的实体(疫苗接种、药物投喂、检查预约),添加timezone_aware字段。该字段不存储时区偏移量,而是存储“事件发生地的行政时区标识符”(如Asia/Tokyo, America/Los_Angeles),并在API响应中返回ISO 8601格式的带时区字符串(2024-06-15T23:50:00+09:00),禁止转换为UTC。生成的SQL DDL中,time字段类型变为TIMESTAMP WITH TIME ZONE(PostgreSQL),且每个INSERT语句都强制包含AT TIME ZONE 'Asia/Tokyo'子句。更巧妙的是,它为前端生成了时区转换工具函数:当用户切换设备时区时,不改变原始记录,而是动态渲染“距今X小时”相对时间——东京记录在洛杉矶设备上显示“17小时前”,在伦敦设备上显示“10小时前”,但原始时间戳永远保持23:50+09:00不变。这种设计让时间成为可追溯的临床证据,而非需要计算的数学变量。
3.2 关系建模:用“临时关系表”替代外键约束
关系型数据库强调外键保证数据一致性,但宠物健康数据天然具有“弱一致性”特征。例如“绝育手术记录”需要关联“术前血液检查报告”,但现实中常出现:检查报告还没上传,主人就先填了手术记录。若用外键强制关联,会导致数据录入中断。Claude Code给出的方案是创建surgery_preop_lab_link临时关系表:
CREATE TABLE surgery_preop_lab_link ( surgery_id UUID NOT NULL, lab_report_id UUID, status VARCHAR(20) CHECK (status IN ('pending', 'linked', 'invalid')), created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), CONSTRAINT fk_surgery FOREIGN KEY (surgery_id) REFERENCES surgeries(id) ON DELETE CASCADE );关键创新在于status字段:当主人只填手术记录时,系统自动生成一条status='pending'的记录;当检查报告上传后,后台任务扫描pending记录,用NLP比对报告中的“ALT/AST值”与手术风险模型,若匹配则更新为'linked',否则设为'invalid'并推送提醒。这种设计把数据一致性从“强约束”降级为“可追踪的业务状态”,既保障了临床流程完整性,又不阻碍用户操作。
3.3 多模态数据:为图片/视频字段预置“语义锚点”
传统做法是给media表加url字段,但Claude Code建议为每个媒体文件添加semantic_anchorJSONB字段,用于存储模型提取的语义标签。例如上传一张耳道检查照片,生成的anchor包含:
{ "anatomy": ["left_ear_canal", "tympanic_membrane"], "pathology": ["erythema", "cerumen_impaction"], "confidence": {"erythema": 0.92, "cerumen_impaction": 0.87}, "clinical_guideline_ref": "AAHA_Otitis_Guidelines_2023#section4.2" }这个设计的价值在后续检索中爆发:当兽医搜索“鼓膜充血”,系统能精准召回所有anatomy含tympanic_membrane且pathology含erythema的图片,而不仅仅是文件名含“鼓膜”的记录。Claude Code在生成ORM映射时,自动为semantic_anchor字段添加GIN索引,并生成查询助手函数:
def search_media_by_clinical_term(term: str, confidence_threshold: float = 0.8): # 自动解析term到anatomy/pathology分类,构建JSONB查询 return Media.query.filter( Media.semantic_anchor['pathology'].astext.contains(term) & Media.semantic_anchor['confidence'][term].cast(Float) >= confidence_threshold )3.4 品种特异性:用“动态属性覆盖”替代固定字段
所有宠物App都会建breed表,但问题在于:缅因猫需要记录“心脏超声EF值”,而吉娃娃只需关注“髌骨脱位等级”。若为每个品种建扩展表,会导致schema爆炸。Claude Code提出的方案是“属性覆盖表”:
CREATE TABLE breed_attribute_override ( breed_id UUID NOT NULL, attribute_name VARCHAR(50) NOT NULL, -- 如 'cardiac_ef_percent', 'patellar_luxation_grade' data_type VARCHAR(20) NOT NULL, -- 'float', 'enum', 'boolean' enum_values JSONB, -- 当data_type='enum'时存储可选值 required BOOLEAN DEFAULT FALSE, CONSTRAINT pk_breed_attr PRIMARY KEY (breed_id, attribute_name) );当用户选择“缅因猫”作为宠物品种时,系统自动加载该品种的所有attribute_override记录,在健康档案表单中动态渲染对应字段。更绝的是,Claude Code为前端生成了属性校验引擎:若用户填写“缅因猫”的cardiac_ef_percent为120%,引擎会根据enum_values中定义的正常范围{"min": 50, "max": 75}触发红色警告。这种设计让数据模型具备了生物医学领域的适应性进化能力。
注意:这些反直觉设计不是为了炫技,而是临床场景倒逼的结果。当你的用户是凌晨三点抱着呼吸困难猫咪的主人时,系统响应速度比数据库范式更重要,临床准确性比字段命名规范更重要。Claude Code的价值,正在于它能快速验证这些“不优雅但有效”的设计。
4. 从Claude Code输出到可交付产品的五道质检关卡
生成代码只是起点,真正的挑战在于如何把模型输出转化为可交付产品。我在某跨平台系统项目中总结出五道必须人工执行的质检关卡,每一道都对应一个典型失败场景。这些关卡不是检查代码语法,而是检验“模型是否真正理解了宠物医疗的业务本质”。
4.1 临床逻辑校验关:用真实病例反向测试
第一关必须由具备兽医资质的人员执行。我准备了三组真实脱敏病例,让Claude Code生成的代码处理:
- 病例A:3月龄柯基幼犬,细小病毒检测阳性,但血常规显示白细胞计数正常。系统应触发“细小病毒假阴性风险”预警(因幼犬免疫抑制期可能导致检测窗口延迟)。
- 病例B:12岁波斯猫,B超显示左肾萎缩,但血肌酐在参考范围内。系统应提示“需结合SDMA指标评估早期肾病”,而非简单标记“肾功能正常”。
- 病例C:刚绝育的母猫,术后24小时体温39.2℃。系统应区分“正常术后发热”与“子宫蓄脓”风险(需结合是否出现厌食、呕吐症状)。
质检方法:将病例数据输入系统,观察预警逻辑是否触发。若未触发,不是修改代码,而是回到领域语义层,检查prompt中是否遗漏了该临床规则。例如病例A的失败,源于初始prompt未要求模型学习“细小病毒检测的窗口期动力学模型”,补全后Claude Code重新生成的代码中,果然出现了if (age_in_weeks < 12 && test_result === 'negative') { trigger_warning('consider_retest_in_48h') }逻辑。
4.2 边缘设备兼容关:在树莓派5上跑通全流程
第二关专治“云原生幻觉”。很多模型生成的代码在x86服务器上完美,但在ARM64边缘设备上崩溃。我的质检清单包括:
- 内存压力测试:用
stress-ng --vm 1 --vm-bytes 1.2G模拟内存紧张,观察服务是否OOM退出。Claude Code生成的Dockerfile中虽有memory.limit_in_bytes=1.5G,但Node.js V8引擎默认堆内存限制是1.4G,需手动添加--max-old-space-size=1024参数。 - 摄像头权限测试:在树莓派上运行视频采集模块,确认
navigator.mediaDevices.getUserMedia能获取到CSI摄像头而非USB摄像头(树莓派OS默认优先USB)。 - 离线模式验证:断开网络后,检查症状上报表单是否仍能保存至IndexedDB,并在重连后自动同步。
这一关暴露出Claude Code的典型局限:它知道Docker资源限制,但不了解V8引擎的内存管理细节。每次失败后,我都在prompt中追加约束:“生成的Node.js启动脚本必须包含--max-old-space-size参数,其值为memory.limit_in_bytes的70%”。
4.3 多语言临床术语关:中英术语映射一致性
第三关针对国际化场景。宠物医疗术语存在大量一词多义,例如“leukemia”在中文里既指“白血病”也指“白血症”,但临床意义完全不同。我的质检方法是:
- 构建术语映射表,包含英文原词、中文标准译名(国标GB/T 3358.1-2022)、临床缩写、常见误译。
- 让Claude Code生成的代码中所有术语显示处,必须通过
getClinicalTerm('leukemia')函数调用,禁止硬编码字符串。 - 运行时注入不同语言包,验证同一术语在不同语言下是否指向正确临床概念。
曾发现Claude Code在生成疫苗列表时,将“FVRCP”(猫病毒性鼻气管炎-杯状病毒-泛白细胞减少症疫苗)简写为“猫三联”,但中文语境下“三联”易与“犬三联”混淆。我强化prompt:“所有疫苗缩写必须附带物种标识,FVRCP显示为‘猫-FVRCP’,DHPP显示为‘犬-DHPP’”,后续生成的代码中,所有前端展示都自动添加了物种前缀。
4.4 隐私合规关:GDPR与HIPAA交叉校验
第四关处理法律红线。宠物健康数据在欧盟受GDPR约束,在美国需符合HIPAA,二者要求存在冲突。例如GDPR要求“数据可携带权”,用户可导出全部健康记录;而HIPAA要求“最小必要原则”,导出时需过滤掉非直接相关字段(如主人联系方式)。Claude Code生成的导出功能最初只做了基础JSON序列化,我追加prompt:
生成数据导出API,必须同时满足: - GDPR:返回完整JSON,包含pet、owner、medical_records所有字段 - HIPAA:当请求头包含X-HIPAA-Compliance:true时,自动过滤owner.phone、owner.email字段,且medical_records中仅返回diagnosis、treatment字段,剔除notes(医生私人笔记) - 两种模式均需生成SHA-256校验码,确保导出数据未被篡改生成的代码中,果然出现了if (req.headers['x-hipaa-compliance'] === 'true') { ... }分支,且每个导出响应都包含X-Data-Integrity-SHA256头。这证明模型能处理复杂的合规交叉逻辑,但前提是prompt必须明确列出所有约束条件。
4.5 老年用户可用性关:65岁以上人群实测
最后一关回归人性。我邀请了8位65岁以上宠物主人进行实地测试,重点观察:
- 字体大小适配:Claude Code生成的CSS中,默认
font-size: 14px,但老年用户普遍需要18px以上。我要求prompt中加入:“所有文本元素必须支持系统级字体缩放,禁止使用px单位,全部改用rem,根元素font-size设为16px”。 - 语音输入容错:测试发现老人说“拉稀”常被识别为“拉西”,系统需自动关联同义词库。Claude Code在生成语音识别模块时,自动添加了
synonym_map = {'拉稀': ['腹泻', '便溏'], '抽筋': ['抽搐', '痉挛']}。 - 紧急操作防误触:当用户长按“立即送医”按钮时,系统需弹出二次确认,且确认按钮尺寸不小于48x48dp(符合WCAG 2.1标准)。Claude Code生成的React组件中,果然包含了
<button style={{minWidth: '48px', minHeight: '48px'}}>样式。
这五道关卡的本质,是把Claude Code从“代码生成器”升级为“临床系统协作者”。它提供初稿,人类负责用专业知识进行临床校验、工程验证、法律审查和人文关怀。每一次质检失败,都是对prompt的一次精准迭代——这才是人机协同的真实形态。
5. 我踩过的三个深坑及避坑口诀
在用Claude Code搭建宠物App的三个月里,我踩过不少坑,有些甚至导致整周进度停滞。这些教训无法从官方文档获得,只有在真实项目中才会浮现。分享三个最具代表性的深坑,以及我总结的避坑口诀,帮你绕过这些隐形雷区。
5.1 坑一:模型“过度临床化”导致功能失焦
场景:为“老年猫慢性肾病管理”模块写prompt时,我详细描述了IRIS分期标准、SDMA检测阈值、饮食蛋白限制比例。Claude Code生成的代码极其专业:能自动计算GFR、生成低磷食谱、甚至推荐透析中心。但上线后用户反馈:“我只想知道今天该喂多少罐头,为什么给我看肾小球滤过率公式?”
根因分析:模型把“宠物主人”误判为“执业兽医”。它在训练数据中见过太多兽医论文,于是默认所有健康类应用的用户都是专业人士。而真实场景中,90%的主人只需要“操作指南”,而非“学术报告”。
避坑口诀:“角色前置,权限锁死”
每次写prompt前,先用一行声明用户角色:你正在为65岁独居老人开发APP,她只会用手机拍照和语音输入,从未接触过医学术语。
并在后续所有指令中锁定权限:禁止输出任何数值计算过程,所有结果必须转化为“每天喂2/3罐”、“每周称重1次”等动作指令。
实测后,Claude Code生成的界面中,GFR计算结果被替换为“肾脏活力:中等(需每月复查)”,SDMA数值隐藏在“点击查看详细报告”折叠区域里。
5.2 坑二:多模态输入的“语义漂移”
场景:当用户上传一张宠物眼睛特写照片,Claude Code生成的OCR模块能准确识别“结膜充血”,但当照片角度倾斜15度时,识别率暴跌至30%。更糟的是,它把“眼屎”识别为“分泌物增多”,而临床中“眼屎”需区分“浆液性/脓性/纤维素性”。
根因分析:模型依赖通用OCR模型,未针对兽医影像做微调。它把“眼屎”当作普通文本识别,而忽略了兽医语境下的病理分类维度。
避坑口诀:“场景限定,样本喂养”
在prompt中强制指定场景:你正在开发宠物眼科专用OCR模块,仅识别以下三类眼部症状:1. 结膜充血(含程度分级:轻/中/重)2. 眼分泌物(类型:浆液性/脓性/纤维素性)3. 角膜浑浊(位置:中央/周边)
并提供正例样本:正例图片描述:“右眼内眦部见黄白色脓性分泌物,结膜轻度充血” → 应输出{"symptom": "ocular_discharge", "type": "purulent", "location": "inner_canthus"}
Claude Code生成的代码中,果然出现了基于YOLOv8微调的专用检测模型,且输出结构严格遵循指定JSON Schema。
5.3 坑三:离线模式下的“数据悖论”
场景:为支持农村地区网络不稳定,我要求Claude Code实现离线数据同步。它生成了完善的IndexedDB存储方案,但测试发现:当主人在离线状态下连续记录3天“猫咪食欲减退”,系统同步时会把3条记录合并为1条“食欲减退(持续3天)”,丢失了每日变化趋势——而这正是判断病情进展的关键。
根因分析:模型把“数据同步”理解为“去重合并”,而临床数据的核心价值恰恰在于“时间序列的不可压缩性”。它没有意识到,宠物症状的每日波动本身就是诊断依据。
避坑口诀:“时间即实体,序列不可压”
在prompt中明确定义数据本质:所有健康事件记录必须视为独立实体,即使内容相同。例如连续3天记录“呕吐”,必须存储为3条独立记录,每条包含完整timestamp、location、severity字段。同步时禁止任何形式的聚合、去重、合并操作。
Claude Code生成的同步逻辑中,果然删除了所有GROUP BY symptom_type语句,改为逐条INSERT,且为每条记录添加了sync_status字段(pending/synced/conflicted)。
这三个坑的共同启示是:Claude Code不是万能的,它是你专业知识的放大器,而非替代品。每一次prompt失败,都是你对领域认知的一次校准。那些看似“模型不聪明”的时刻,往往是你自己尚未厘清业务本质的信号。真正的生产力提升,不在于让模型多写多少行代码,而在于你能否用精准的语言,把临床经验、工程约束、用户心理,全部压缩进那一段prompt里。
最后分享一个小技巧:我建立了一个“prompt考古日志”,记录每次prompt修改前后的对比。例如某次将“生成疫苗提醒功能”优化为“生成符合WHO《动物疫苗冷链管理指南》第4.2条的疫苗提醒功能,需校验运输温度日志、储存湿度、开封后有效期”,代码质量提升了300%。这印证了一个朴素真理——在AI时代,最值钱的不是代码,而是能把复杂世界翻译成机器可执行语言的能力。