MacTalk 测评通义灵码,如何实现“微信表情”小功能?
作者:池建强,墨问西东创始人
前段时间,我写了篇墨问研发团队放弃 GitHub Copilot 的文章,没想到留言区一些读者推荐我们试试通义灵码,说它效果很不错。我呢,一直没腾出时间折腾。
直到月中时,到阿里云参加一场直播活动,机缘巧合碰到了通义灵码的总负责人叔同,他说通义灵码智能问答能力已经升级到 Qwen2 模型,这也是目前国内最强的开源模型 ,问答效果全面升级。话里话外,我能感觉到他对自家产品的热爱,瞬间被他的热情感染了。
叔同介绍说,从去年 11 月上线至今,通义灵码已经是国内用户规模第一的智能编码助手了,插件下载量超过 350 万,每天推荐的代码超过 3000 万次。这个数据我着实有点意外,之前咱做过极客时间,知道中国的程序员数量也就 1000 来万的样子,以通义灵码目前这个用户体量,也怪不得当时评论区那么多用户推荐。
通义灵码官网:https://tongyi.aliyun.com/lingma/
昨晚和我们 CTO 田海聊天,他饶有兴致地和我讲,他很多工程师朋友早就在用通义灵码了。目前,AI 辅助编程已是大势所趋。从工程师的角度看,这样的工具确实可以极大提升开发效率,而从研发管理者的视角,更有意义的是,它还可以统一团队的代码规范。
只要做过技术 Leader 的人都知道,团队规模一大,必然需要统一大家的代码规范,比如变量怎么命名,异常日志怎么写,Git Commit 描述怎么写。要不然,老王一套风格,小李一套风格,他俩协作起来,不拧巴才怪。车同轨,书同文,只有这样才能提高协同效率。
之前 Leader 想统一团队代码风格,基本只有两个手段,第一,靠口头强调,一遍一遍和大家说。第二,靠人工或者插件检查,比如当年我们还用过 Alibaba Java 代码规范插件。但这两种方法,效果都不好,毕竟改变一个人的习惯没那么容易,后置的检查也很影响效率。
通义灵码有一个强大的功能就是企业知识库检索增强。我们只需要上传团队的代码规范文档,通过 #team docs ,就可以按照代码规范文档来优化代码,工程师也能在日常编码中获得相应的补全建议,让代码更贴近团队标准。
你看, 相比之前的检查和口头强调,现在通过新的工具,直接把规范揉到敲代码的环节,就更容易落地干巴巴的规范。
墨问是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类 AI 编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。
从我们团队的使用体验看,通义灵码有两个优点。第一,精准、快速的问答能力,它可以准确地捕捉提问的核心内容。并且我们发现,通义灵码在处理多轮对话时,上下文的关联性处理更加智能,能够连续理解多个问题并提供连贯的答案。
第二,对开发者友好。通义灵码的操作按键与日常的开发体验一致,没有任何学习成本。在编写代码过程中,它会自动出现浅灰色提示,如果需要补全,按 tab 即可。如果不需要补全,继续编写,提示也会智能更新,不影响编程,非常流畅。
除此之外,相比 GitHub Copilot 这样国外的 AI 编码工具,它对中文的支持更好。毕竟,我们和编程助手的交互主要还是使用中文。而对中文指令的遵循能力,直接决定了产品体验以及最终的代码生成质量。更重要的还是在安全性问题上,通义灵码能够更好地满足本地数据隐私和合规性要求。
当然,还有大家比较关心的费用问题,目前通义灵码个人版是完全免费的,除了部分面向企业级场景的高级别功能外,其它功能都可以免费使用,基本能满足开发者日常需要。
这么讲有点空,我还是以墨问的具体开发场景为例子给你演示下。上次从杭州回来后,我司前端夏老师在我的建议下,横刀策马,哐哐哐一通点击之后,麻溜地装上了通义灵码的插件,已经用它开发了几个功能。
其实相比后端,前端代码的生成难度更大。
因为前端是一个极度灵活的非标语言,其中 CSS 是规则集,JavaScript、TypeScript 是脚本语言,HTML、JSX、TSX 等是标签语言。具体的前端代码中,脚本语言中会混合标签语言和规则集合。并且,前端的代码主要以交互为主,很难预测。
那我们就在最难的场景里,看看通义灵码是如何帮助我们提升编码效率的。
上周,墨问便签发布了一个支持“微信表情”的小功能。在具体开发过程中,工程师需要写一个正则表达式,以将文本的[微笑],替换为 HTML 标签 <wechat-emotion />
。你知道,正则表达式有一套自己的规则,从零开始写的话,对于不熟悉的人,还是有点时间。
但现在这种活儿我们完全可以交给通义灵码来干,你看下图,只需要不到 3 秒的时间,通义灵码就能够给出答案,并且还贴心地写了一个可以运行的例子。
紧接着,我们工程师发现实际场景更复杂,他还需要继续迭代刚刚给出的正则表达式。但这时候,他又不知道怎么描述,于是,直接把输入,以及预期的输出结果给到通义灵码,继续追问。
通义灵码很快给出了更加复杂的答案,测试了下,完美运行。但如果看不懂的话,我们还是不太放心把它用到生产环境里,怎么办呢?咱让通义灵码解释下。下图可以看到,它解释得特别细致,甚至精确到每个字符是干什么用的。
上面是问答的场景。墨问昨天还发布了 AI 语音笔记的功能,开发这部分功能的过程中,我们使用了小程序本地文件来做缓存。
下图你可以看到,敲了 fs. 之后,通义灵码可以根据上下文补全 writeFile 写文件的方法,其中 encoding 编码格式,通义灵码使用了 utf8 ;filePath 文件路径,通过前面两个函数,它拿到了文件目录,并且拼接了子目录 path;success、fail 回调中的 resolve 也是准确的,它应该是通过前面声明的 TypeScript 类型进行了推测。
再看看加注释的场景。墨问 AI 语音笔记的特性中,交互上要求用户录音时,必须展示具体的时长。写完这块的代码后,我们的工程师请通义灵码来帮忙加注释。
从下图中你可以看到,它按照 JSDoc 规范给函数增加了功能、参数类型和参数返回值的说明,并且,让人惊喜的是,在函数内部它还对每行代码都进行了细致的解释,大大提高了代码的可读性。
以墨问团队的使用经验来看,无论是代码生成准确率、问答响应速度还是 IDE 端用户使用体验,通义灵码丝毫不输 GitHub Copilot。
特别是基础模型全面升级至 Qwen2 后,在中文理解、反应速度、指令遵循上,灵码的能力甚至更好,而且针对企业级场景还可以提供个性化能力。如果你还在用其他AI编程工具的话,可以切换过来试试。反正我们公司的研发同学已经把通义灵码用的很溜了!
用习惯了智能编码助手,我们团队有两个感触:第一,不需要来回在 IDE 和 Google 之间切换了,因为通义灵码已经集成了问答的能力。第二,代码生成和补全能力,着实是一把效率利器。
这块你只要体验过一次,就再也不想回到过去的开发模式了。因为之前,你得一行一行地自己写,现在,直接敲 Tab 键就能哗啦啦生成一大段代码出来......
目前,通义灵码已经在阿里云、哈啰集团、一汽集团、中华财险等企业落地,下载量超 500 万,在国际权威机构 Gartner 测评中,拿到国内 AI 编码工具最高成绩。