大厂程序员的一天,沉浸式体验 Baidu Comate 代码助手如何用于面试、代码评审……
前言
从去年 OpenAI 发布之日算起,大模型的浪潮已经翻涌一年多了,在这个不长的时间里,大模型的革命性影响已经席卷了整个科技界,闪耀了不少在风口浪尖的明星应用。其中,作为一个在大厂搬砖的程序员,感知最明显的就是各类 AI 辅助编程助手了。百度作为国内最早推出大模型的先行者,在 AI 辅助编程的场景也正在发力,他们近期基于文心大模型推出了代码助手 Comate——Coding Mate, Pair you create,一个旨在提升编程效率的的力助手。现在就让我带领大家沉浸式体验和 Comate 一起并肩作战的一天吧,看看都有哪些新奇的体验。
周一的早上
今天是周一,经过周末两天的快乐,早上上班心情有点郁结,这时候就需要一位可爱的程序员鼓励师加油打气,唤醒一天的工作。Comate 此时就是电脑中的田螺姑娘:
![](https://static001.geekbang.org/infoq/86/8610e5cb58df4434d7667e705ab52253.png)
经过测试,Comate 的人设可以指定“御姐”、“萝莉”、“可爱”、“知性”、“东北大哥”等多种,响应速度也非常快,仿佛代码编辑器里面真的藏了一个可爱的助手,用它来唤醒一天的早上很不错。
面试的上午
随着工作的开始,到时间该对前几天邀约的一位候选人进行技术面试了,匆匆看了一眼他的简历,基本围绕数据库开展,而我对数据库只是停留在使用级别。为何不用 Comate 来帮助自己面试呢?赶紧问一下 Comate,准备一些面试的题目。
![](https://static001.geekbang.org/infoq/39/394a19618c7fc23736726be4d495cc65.png)
可以看到 Comate 完全理解了我的想法,从基础、中级到高级层层递进,可以用来全面考察候选人的能力储备。在高级题中,甚至还有场景设计题。当然除了问答外,也需要笔试题:
![](https://static001.geekbang.org/infoq/28/2844b94a182e056037152602c9fc3110.png)
就这样,Comate 为我准备好了由浅到深的面试题,极大节约了我的准备时间。如果没有 Comate,那我需要从公司资料库里自己选择面试题的范围,很容易造成遗漏或者难度不当。当然,这位候选人对这些问题掌握的都不错,很满意,于是愉快的推给 HR 进行下一轮的面试。
Comate 充分诠释了 Mate 的意思,作为伙伴,在你需要打气的时候给你鼓励,在你需要专业知识的时候,给你归纳总结好输出。
战斗的下午
上午的工作就结束了,下午能真正写会儿代码了。接下来马上开始的程序员另一项重要工作了——代码评审。
代码评审是每一个程序员必经的一个阶段,在这个阶段中,评审人需要从代码规范、可读性、逻辑功能、性能、安全、可观测性、文档注释等多方面对代码进行阅读和思考,一旦疏漏让“坏”代码入库,轻则成为“垃圾”代码,重则引入了炸弹般的 Bug。
以个人经验来说,评审最为关键的就是以最快的时间看懂代码改了什么,据此再去分析代码的逻辑有无遗漏,改动是否合理,最后再看测试、文档、编码格式、安全、创新性方面的度量。而最开始的阶段往往耗时最长,好在 Comate 可以很快的帮助我,只需要选定需要评审的代码,comate 就能给出代码的逻辑分析和点评。示例:
![](https://static001.geekbang.org/infoq/2b/2b60eb726e79f7903461708d6da7a7ae.png)
可以看出 Comate 代码评审时,先给出了对程序片段的实现总结,然后给出具体的评审意见,从架构设计、逻辑处理、错误处理、可读性上做了详细点评。
而对于代码不足的地方,也能给出犀利准确的建议,包含了改进措施,可能的遗漏项。在此基础上,我就可以很快的知道代码作者想表达的意思,综合给出合理的建议。
从准确度上,基本可以满足我的需求,甚至有些地方是我没考虑到的,比如文档和示例,评审的时候很少能注意到。
![](https://static001.geekbang.org/infoq/a1/a1fb0a86f0139a2ad169b93d735efe3f.png)
Comate 还提供了 Autowork 的功能,可以提供函数注释、行间注释、生成单测、代码解释、调优建议等功能。在写代码的同时,可以很方面的进行即时的改进。
![](https://static001.geekbang.org/infoq/71/71b58c7092c8536530744e7f6ec6d518.png)
我最喜欢的就是这个行间注释的功能,有时候代码写完了,但是因为逻辑复杂,转成注释就像重新写一遍代码,有了行间注释功能,即可一键生成逻辑清晰的注释:
![](https://static001.geekbang.org/infoq/75/759ffd427b1109d16abd0eb7a0600a84.png)
这是一个战斗的下午,我接到了一个小需求,需要实现一个通用的 Send 方法,用来发送指标数据。
在我脑海中初步形成想法后,Comate 就像我的第二个手,我刚打出一个变量,它就能明白接下去我想用这个变量做些什么,Tab 即可采纳,Esc 即可取消。原本预计干两天的活,在 Comate 的帮助下缩短到了一个小时。
![](https://static001.geekbang.org/infoq/a6/a6953de34efceebd8ae59b13bff07531.png)
在写完这个函数后,需要给函数写上注释,此时要做的,就是敲打一个斜杠,接下来按 Tab 即可。Comate 已经知道这个函数的功能,并且可以给出意简言赅的注释。
![](https://static001.geekbang.org/infoq/0e/0e45d0e4c38ce52629b482853476ebdb.png)
写完函数的下一步必然是单测了,Comate 同样也提供了一条龙服务:
![](https://static001.geekbang.org/infoq/71/710acd089498eb8c1ad9e206f6e36db1.png)
稍微改一下就能真实使用了,愉快的完成了下午的战斗。
使用总结
从功能上,Comate 不局限于代码助手,还可以充当一个专家系统,提供专业领域的知识建议。程序员的日常工作场景几乎能全覆盖,光写代码场景中,从函数注释、行间注释、生成单测、代码解释到调优建议都有。
响应速度也非常快,不会有一行一行慢慢出现的情况;
准确度也挺不错,我特意问错误的问题,comate 也能给我纠正,不会“胡言乱语”。
总而言之,Comate 智能代码助手真的做到了“助手”的能力层级,不仅仅可以辅助代码编程,更是可以在编码前期给出实现方案,代码后期进行优化、测试。一般评价代码助手无外乎是提升了编程效率,提升了生产力,以我的实际体验下来,Comate 称得上提升了工作幸福感了。
版权声明: 本文为 InfoQ 作者【申屠鹏会】的原创文章。
原文链接:【http://xie.infoq.cn/article/f9da8c1926a24de923374ff18】。文章转载请联系作者。
评论