本周工作思考
- 提高日志覆盖度的实践
- 这两周在排查线上反馈问题时,也把近期的cn bug里的前端反馈看一遍,对于所谓的疑难问题难以解决的一个主要原因就是缺少日志和异常处理,我简单的推算了Course repo,console.error 和 throw的语句占整个代码行数的1%左右,当然这个统计是经过最近一个季度的不断的补充和丰富之后的结果,也是比较粗略的估算,从实践来看,这个覆盖度帮助我们看到了很多线上的问题,或明显的或隐藏。所以日志语句覆盖度在一定程度上能够反应代码的健壮性。
- 在以往的编程开发中,在主业务功能开发外,增加安全性相关开发、稳定性相关开发、性能相关开发都需要增加额外的设计和开发时间,随着大模型的深入使用,特别是Cursor,Claude Code的使用,在这些方面新增的时间大幅下降。这两种我使用Claude Code 对一些老旧代码增加了稳定性相关的日志并且使用了Code Review,从线上效果来看,非常不错,增加了很多我们之前不曾认知到的线上运行时异常,极大的提高了这些老旧代码的运行稳定性和把控性。
- Claude Code 的长上下文让对现有的代码的重构和升级变得非常可行,只要Prompt写的准确,Claude Code 可以在不影响功能的情况实现批量的代码的重构,而它的成本非常可控,并且能够非常详细的对重构后的代码做Code Review,风险也十分可控,对工程师来说,绝对是一件非常棒的事情。
- 这个过程中我也发现一些比较值得注意的问题:
- Prompt指令的范围一定要明确,在正面指令后,增加一些负向约束,确保Claude只修改他能够理解的代码,如增加如果“你不确定如何修改,应主动收集更多信息。这可以通过查看其他相关代码、澄清性提问等方式实现”,虽然Claude的系统Prompt里有类似的指令,但是在用户指令增加类似的这些,会让大模型决策路劲更加明确;
- 适当使用英文Prompt,如果对英文指令不确定,可以把中文指令翻译成英文指令,但你要Review,在编程中,英文指令可以让大模型更加准确和有效;
- 要理解中文Prompt和英文Prompt的差异和最适合场景,在不同的场景中使用适合的大模型工作语言;