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 编码工具最高成绩。
相关文章:
MacTalk 测评通义灵码,如何实现“微信表情”小功能?
作者:池建强,墨问西东创始人 前段时间,我写了篇墨问研发团队放弃 GitHub Copilot 的文章,没想到留言区一些读者推荐我们试试通义灵码,说它效果很不错。我呢,一直没腾出时间折腾。 直到月中时,…...
Canvas Confetti - 免费开源的五彩纸屑飞舞特效的 JS 库,多用于在网页上实现欢乐庆祝的场景
今天看科技周刊看到的一个酷炫的动效库,使用简单,视觉效果很好,推荐给大家。 Canvas Confetti 是一个基于 JavaScript 的特效动画库,可以在网页界面上轻松地实现五彩纸屑飞舞的庆祝场景特效。这个特效库封装了几种酷炫的特效&…...
[数据集][目标检测]智慧牧场猪只检测数据集VOC+YOLO格式16245张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):16245 标注数量(xml文件个数):16245 标注数量(txt文件个数):16245 标…...
GS-SLAM论文阅读笔记--LoopSplat
介绍 这篇文章看标题是解决GS-SLAM回环检测的,GS-SLAM回环检测之前文章很少,但他对于SLAM又很重要,确实值得阅读一番。而且这些作者的学校又是很厉害的。 文章目录 介绍1.背景介绍2.关键内容2.1 Gaussian Splatting SLAM2.2 Gaussian Splat…...
Mysql数据库表结构迁移PostgreSQL
1、背景: 公司本来用的数据库都是mysql,为了国产化适配兼容pg和dm。dm提供了数据迁移工具,可以直接做数据迁移,生成脚本之后在其他环境执行。但是pg貌似没有工具能直接用。navicat由于版权问题公司也用不了。pgloader使用总是有问…...
店匠科技携手Stripe共谋电商支付新篇章
在全球电商行业蓬勃发展的背景下,支付环节作为交易闭环的核心,其重要性日益凸显。随着消费者对支付体验要求的不断提高,以及跨境电商的迅猛发展,支付市场正经历着前所未有的变革与挑战。在这一充满机遇与竞争的领域,店匠科技(Shoplazza)凭借其创新的嵌入式支付解决方案—— Sho…...
大众(奥迪)汽车继电器编号对照表
数字功能放大器零件编号1化油器进气歧管加热器40a1719063832燃油泵(CE1 MK1 Golf 和 Early Rocco/cabrio K-Jet,无转速限制器)-443906059A 321906059D/E3燃油泵(CE1 MK1 Golf 和 Early Rocco/cabrio K-Jet,无转速限制器)-4439060594安全带警告继电器5早期 MFA 时钟的换档…...
《佛脚闪卡watch》——Apple Watch上的高效学习助手
在快节奏的生活环境中,时间管理成为了学习成功的关键因素之一。**《佛脚闪卡watch》**是一款专为Apple Watch设计的应用程序,旨在帮助学生和自学者更高效地利用碎片时间进行学习。无论是等待公交、散步还是短暂休息,您都可以随时随地进行复习…...
六、桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,旨在将抽象与实现分离,使得两者可以独立变化。通过使用桥接模式,可以避免在多个维度上进行继承,降低代码的复杂度,从而提高系统的可扩展性。 组成…...
Vue eslint 语法检测问题
1. 修改 prettier 配置文件 确保你的项目中有 .prettierrc 配置文件,并在其中添加或修改 endOfLine 设置为 lf,确保统一使用 LF 换行符。 在 .prettierrc 文件中添加: {"endOfLine": "lf" }2. 修改 .editorconfig 文件…...
QT Creater实现国庆节主题项目【0基础完成版】
本文适用对象 想要学习qt creater的小白;想要学习c++制作软件的编程爱好者。可以先下载这篇博客绑定的资源,然后一边操作,一边学习,会更高效~0. 创建初始项目 一步步来操作吧,首先下载qt creter,之前发布过相关资源,大家直接查找下载,或者自行下载。 1. 初始代码 mai…...
Qt 加载 WPS 时提示要登录
项目中Qt加载word时 默认用wps打开word文档 程序一运行老是提示要立即登录 看着很烦 可以按下面的方法去掉这个烦人的东西 在下面的项目中新建字符串enableforceloginforfirstinstalldevice,值为false即可。...
vue3的el-tree的default-checked-keys无法勾选的问题解决
前言:有些树形控件是需要默认勾选的 但是请求后渲染不显示 刷新外部的key值也没有用 看了一下文档 我们使用自带的方法来解决 <el-treenode-key"id":data"state.parentMenuList":default-checked-keys"state.checkIdList":check-on-click-n…...
class 5: vue.js 3 v-model和表单输入
v-model是Vue.js 3中用于实现双向绑定的重要指令,双向绑定就是对于数据的修改会映射回UI组件上,同时对于UI组件上数据的变更也会映射回底层数据当中,v-model会根据控件的类型自动选取正确的方法来更新元素v-model底层实现的原理实际上是v-bin…...
了解一下HTTP 与 HTTPS 的区别
介绍: HTTP是超文本传输协议。规定了客户端(通常是浏览器)和服务器之间如何传输超文本,也就是包含链接的文本。通常使用TCP【1】/IP协议来传输数据,默认端口为80。 HTTPS是超文本传输安全协议,具有CA证书。…...
Opencv中的直方图(1)计算反向投影直方图函数calcBackProject()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算直方图的反向投影。 cv::calcBackProject 函数计算直方图的反向投影。也就是说,类似于 calcHist,在每个位置 (x, y)…...
VUE3项目的几种创建方式
文章目录 1.使用 Vue CLI (Vue Command Line Interface):2.使用 Create Vue App:3.使用 Vite:4.使用图形用户界面 (GUI):5.纯手工搭建6.基于模板创建: 1.使用 Vue CLI (Vue Command Line Interface): Vue CLI 是官方推荐的方式来快速搭建 Vue 项目的基础结构。命令:…...
VBA进行excel坐标转换
在Excel里利用坐标绘图时,可以比较容易想到采用数据透视表,但是数据透视表生成的图不可更改,因此本案例采用VBA进行坐标变换而不改变原始值来转换图像,即实现图像的左右翻转和上下翻转,如下图所示,选择map的…...
使用pytorch深度学习框架搭建神经网络
简介 现在主流有两个框架pytorch和TensorFlow,本文主要介绍pytorch PyTorch:由 Facebook 的人工智能研究小组开发和维护。PyTorch 以其动态计算图(Dynamic Computational Graph)和易用性著称,非常适合研究人员和开发者进行实验和…...
Hive数据库与表操作全指南
目录 Hive数据库操作详解 创建数据库 1)语法 2)案例 查询数据库 1)展示所有数据库 (1)语法 (2)案例 2)查看数据库信息 (1)语法 (2&#…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
