本文正在参加豆包MarsCode测评官征文活动
一. 前言
去年 AI 火爆的时期 ,就已经体验过了很多代码领域的 AI 助手 ,包括阿里的通义灵码 , 贵的要死的 GitHub Copilot ,以及讯飞的 iFlyCode。
Copilot 应该是最好用的 ,但是贵啊
。 剩下两个整体来说实力相当 ,体验感上通义灵码强一点
。
整体来说都只有辅助的感觉 ,效果都没有达到预期。 所以最后还是老老实实自己写。
前几天发现掘金自己开始推 MarsCode ,这个应该是字节跳动推出的一款产品,我的第一想法是 :
- 这市场都打破头了 ,并且热度都过了。 现在进场是蹭错了热点 ,还是说真的打磨出了一款好产品?
二. 体验一下
官网 豆包 MarsCode - 编程助手 上面能找到详细的安装教程 ,我个人主业 Java , 所以以 Java 作为优先体验的语言。
- 如果不介意 ,可以通过这个链接注册助力一波
官方提供的能力 :
和常见的 AI 代码助手一样 ,提供的主要是以下几项功能 :
- 代码补全 : 补全 / 修改 / 重构代码 / 错误修复
- 通用难点 : 这个包括 IDEA 本身都带有类似的功能,这一块 很难做的出彩
- 代码解释 : 解释某一段代码的含义
- 通用难点 :
难的在于能基于上下文进行解析
,如果只是当前的代码,其实没啥作用
- 通用难点 :
- 生成注释 : 可有可无的功能
- 通用难点 : 简单的不需要生成 ,
复杂的很难生成对的
- 通用难点 : 简单的不需要生成 ,
- 单测生成 : 生成单元测试
- 通用难点 : 对于有覆盖率要求的兄弟简直大喜,但是
单测都是有业务理解在里面的
- 通用难点 : 对于有覆盖率要求的兄弟简直大喜,但是
- AI问答 : 实时解决提出的问题
- 通用难点 : 最实用 ,
基本功
,做的不好就是扣分项
- 通用难点 : 最实用 ,
- 防喷盾 :仅仅只是从使用者的角度去体验最常见的需求, 可千万别说 :
哔哔什么 ,你行你上
。如果说了 ,那就是你对。
2.1 AI 问答强不强
我第一个关注的是 AI 问答 , 都说码农搬砖 ,CV 工程师。 但实际上对于大多数能力正常的老程序员来说 ,CURD 从来都不占工作量 ,代码生成工具能解决 80% 的功能
。
真正花的时间在 思考业务
+ google一下
上面 ,如果能解决查询问题
的耗时 ,那么就节省了一半的时间。
👉 概念性基础问题 : Java 里面线程安全的集合有哪些?
- GPT 结果较为丰富 ,提供了一些代码 ,如果是 4.0 可能会更优秀
- 通义灵码内容要多很多 ,在细节和回答的体量上都会多一些
- MarsCode 相对东西要少一些,当然 ,基础问题这些就足够使用了
在这个环节中 ,我倾向于 通义灵码 提供更多的细节用于业务的选择。但操作上 MarsCode 更快返回结果
也是一种优点。
👉 功能性的问题 :Flink 包含哪些部分和环节 ?
- GPT 东西多是多 ,但是不符合程序员的需求 , 而且多数侧重点集中在了部分上 ,相当于解读了一半
- MarsCode 整体回答和风格都达到了预期 ,有组成 ,有流程。 很 nice.
- 通义灵码 回答也达到了预期 ,东西都有,但是阅读风格和扩展上会稍微差点。
功能性比概念更期望得到一些使用上的技巧,这些 MarsCode 在结论和展示上都符合预期
。 通义灵码 在我个人看来返回的内容有点凌乱,但是也符合我个人的需求了。
👉 深度问题 :Flink 在营销上有什么好的使用场景 ?
这种问题主要是用来摸鱼的
, 代码写累了 ,想学点课外的东西 ,直接刷博客又太明显 ,AI 助手是一个好的学习途径。
这里就不比较 GPT 了 ,定位不一样 ,我是要摸鱼的 !!
- 和现在市面上的差不多 ,这个没什么好比的 ,主要是看看下面这个 :
👉 实时问题 :2024年09月最近发生的大事件?
- 虽然说跟着 AI 买股票是sx 行为 ,但是可以看出来 ,在对一些实时数据的处理上 ,MarsCode 并没有花过精力(
非编程需要,不作为参考标准 , 不过试了一些其他的有具体日期的实时问题,效果也不理想
) 用 MarsCode 只能摸摸技术鱼了
👉 异常场景的问题 :
- 问题 : Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
- 在不考虑是否回答正确的情况下 ,
通义灵码给出的结论是最多最好的
,GPT 其次。 而 MarsCode 的结论就很敷衍 ,可以说是什么帮助都没有
👉 总结
- 四个维度问题里面 ,
一项强 ,一项平 ,两项弱
。 就 AI 问答领域 ,MarsCode 并没有达到顶尖水平。 - 综合结论 ,MarsCode AI 问答属于弱项
2.2 代码补全补得怎么样?
那么在代码能力上 ,MarsCode 的表现如何呢?这里就不和其他的第三方比较了
,就单纯从使用上看是否达到了老油条的预期。
👉 用法上没有太大的差异 ,都是展示可补全代码 ,通过 Tab 进行代码补全
👉 如果有类似的代码 ,也会自动抄过来
👉 对于新代码 ,也能达到预期
- 例如这里我准备创建一个 RocketMQ 的 Sink ,如果我的
注释和标题
(很重要) 写的对 ,那么提示会往这方面走- 注意 ,
如果注释和题目不对 ,就会发生提示偏移的情况 ,会按照其他类的代码频率进行提示
- 注意 ,
👉 推导还是存在不理想的场景
- 这里确实知道我要加入 RocketMQ 的 Model , 但是名称推导的其实不太对
👉 受其他代码影响比较大
- 如果之前写的是 MySQL , 后续想写一个 Rocket 渠道 ,其中有些提示会有偏移。有的时候会偏向 MySQL 的用法
👉 总结
我尝试每行就写一个开头 ,然后 Tab 全部补全后续的代码 ,可以看到生成的代码已经很接近我的期望了。
三. 其他的功能点
3.1 代码注释
- 这个很 nice 了 ,不论是规则形式还是覆盖范围 ,都已经做的很好了
3.2 代码单元测试
- 生成的单侧覆盖率肯定是够了
- 场景有限 ,不分析业务逻辑 ,但是从结果上看没有死板的做 Mock
3.3 代码解释
代码解释考验能力的就是开源项目的解释 ,下面来看看效果 :
- 非常好 ,在顶级难度的 Spring 源码解析上面 ,效果很好, Nice
总结
AI 问答
项目 | 总结 |
---|---|
基础代码问题 | 回答的内容丰富度一般 |
功能性问题 (涉及原理和应用) | 回答的格式和结论都很好 ,达到了预期 |
深度问题 (用于摸鱼的非编码问题) | 结果中规中矩 |
实时问题 | 无结果 |
特定异常问题 | 反馈不好 ,敷衍 |
代码编写
项目 | 总结 |
---|---|
代码补全 | 就个人而言 ,达到了预期,但是存在其他工具普遍性的一些问题,生成准确的同样受上下文影响 |
代码注释 | 很好 ,超过预期 ,模板和详细度都很好 |
代码解释 | 很好 ,超过预期 ,通过了 Spring 的考验 |
代码单元测试 | 覆盖率能满足要求 ,其他的还没尝试 |
最终总结
个人而言 ,代码层面的功能已经满足了我日常的需求。** 对比之前使用过的工具 ,在某些功能上更突出**。
从 AI 问答的角度来说 ,没有达到预期,对比其他的产品还是稍差。
最后的最后 ❤️❤️❤️👇👇👇
- 👈 欢迎关注 ,超200篇优质文章,未来持续高质量输出 🎉🎉
- 🔥🔥🔥 系列文章集合,高并发,源码应有尽有 👍👍
- 走过路过不要错过 ,知识无价还不收钱 ❗❗