写点什么

时隔七年重启编码人生,豆包 MarsCode 让我快速回归 | MarsCoders 开发者说

作者:豆包MarsCode
  • 2024-09-10
    北京
  • 本文字数:2645 字

    阅读完需:约 9 分钟

时隔七年重启编码人生,豆包MarsCode 让我快速回归 | MarsCoders 开发者说

「MarsCoders 开发者说」是 AI 时代下各类技术栈、各种经历的开发者的故事记录,我们捕捉并再现他们在技术洪流中的职场蜕变与角色定位重塑,希望给更多开发者带来启发。

同时,该系列也记录了众多豆包 MarsCode 用户和 AI 爱好者们的实践案例,各类开发者甚至非研发人员将在此分享其使用豆包 MarsCode 的最佳实践,为更多开发者带来 AI 时代使用编程工具的新思路。


本期「MarsCoders 开发者」主角:

听海,计算机科学与技术专业,自小学起参加编程小组,学习 Basic 语言、网页三剑客(Dreamweaver、Fireworks、Flash)、Flash 动画短片制作等。大学毕业后先后进入互联网公司、创业公司实习就业;2017 年,回到老家入职国企,从程序员变成了“不纯粹”的程序员;2024 年,峰回路转,有幸再次被来到程序开发的位置上。


在 AI 时代尝试重新开始写代码,如何快速找到感觉?且听开发者“听海”讲讲他和豆包MarsCode 之间的“协作”故事。


前奏

作为一个做过六年专职开发的伪全栈开发工程师,最近四年阴差阳错的一直活跃在技术之外,像一块补丁一样,哪里缺人补哪里。每当夕阳西下,回忆起过去 Coding 的快乐日子,不仅有些神伤。

峰回路转,上周我这块“补丁”被放在了程序开发的位置上。那种感觉就像是久旱逢甘霖、他乡遇故知、贱妾遇良人。

项目本身不算复杂,简单的说就是获取数据、处理数据、大模型分析数据、传递结果。在弄清需求和打通数据接口之后,我打开了尘封已久的 Visual Studio Code 准备一展身手。

在我新建好 index.js 准备写下第一行代码的时候,脑海中闪现出一个“问题”。过去的项目都是我自己开发自己维护,或者是交给其他前端同事维护,Node.js 是一个很好的选择。但是,现在的项目后续要和后端合作,用 Node.js 怕是不行,难道我要一边查文档一边写 Python 吗?所谓遇事不慌刷会儿朋友圈。

访问链接:https://sourl.cn/emFi2B 


好家伙!赢 4090 显卡与金条?点开查看才发现原来是一个叫豆包MarsCode 的 AI 编程助手发起的活动。其实以前也经常刷到各种 AI 编程助手,但是因为没有应用场景,一直没有体验。这次豆包MarsCode 的出现可谓是有心栽花花不开,无心插柳柳成荫。

豆包MarsCode 是基于豆包大模型打造的智能开发工具,提供 Cloud IDE 及 AI 编程助手两种使用形态。作为豆包代码模型的具体应用,豆包MarsCode 支持智能识别当前编码任务相关的上下文信息,同时将代码理解、生成、优化、推荐、补全、审查等多维能力融为一体,无缝嵌入研发流程的各个环节,帮助开发者提升代码开发质量和效率。

接下来,我们使用集成在 Visual Studio Code 里的 AI 编程助手,体会 AI 辅助编程的快乐吧。


实践

前面提到,这个项目主要分为获取数据、处理数据、大模型分析数据、传递结果四个环节,我们尝试从 0 开始,从一个编程小白的角度来完成这个项目。

考虑到一个 xxx.py 文件实在是简陋,体现不出该项目的高级感,我们首先了解一下项目结构。

其实无论使用什么语言,项目结构都大同小异,不过豆包MarsCode 的提示可以为新人提供更明确的指导。进入实操环节,我们一鼓作气尝试让豆包MarsCode 为我们输出整个代码结构。

我通过通俗的内容描述了我的需求,豆包MarsCode 给出了文字分析,以及代码片段。甚至在定时任务方面,每一个步骤都给出了详细的说明。下面是代码片段的截图:

一眼看去,代码基本符合我的需求,当然也有一些小瑕疵,比如步骤 5 的 log 在最后环节才统一输出。不过我也反思了下,我的提示词写的也有问题,把对日志的需求列在了序号 5,扰乱了 AI  的思路,不过只需要简单的修改就能够解决这些小问题。

接下来我们一起看看豆包MarsCode 处理业务逻辑的能力。我希望它帮我输出一段处理业务数据的代码,具体需求是:

经过尝试,我发现 AI 无法很好地理解什么是“把客服和客户的对话文本以时间线进行还原”,于是我将提示词优化为:

这时,豆包MarsCode 给出了符合需求的代码片段:

import jsonimport timeimport datetimedef process_call_record(record):    fields = record.split('|')    if len(fields)!= 8:        return {}    customer_statements = fields[2].split(';')    agent_statements = fields[3].split(';')    agent_start_times = fields[4].split(';')    agent_end_times = fields[5].split(';')    customer_start_times = fields[6].split(';')    customer_end_times = fields[7].split(';')    result = []    for i in range(len(agent_statements)):        agent_dict = {            "content": agent_statements[i],            "start_time": time.strftime("%H:%M:%S", time.localtime(int(agent_start_times[i]))),            "end_time": time.strftime("%H:%M:%S", time.localtime(int(agent_end_times[i]))),            "identity": "客服"        }        result.append(agent_dict)    for i in range(len(customer_statements)):        customer_dict = {            "content": customer_statements[i],            "start_time": time.strftime("%H:%M:%S", time.localtime(int(customer_start_times[i]))),            "end_time": time.strftime("%H:%M:%S", time.localtime(int(customer_end_times[i]))),            "identity": "客户"        }        result.append(customer_dict)    return sorted(result, key=lambda x: x["start_time"])with open('your_file.txt', 'r') as file:    records = file.readlines()for record in records:    processed_record = process_call_record(record.strip())    print(json.dumps(processed_record,ensure_ascii = False, indent=2))
复制代码

接下来的过程,AI 编程助手把我的角色从程序员变成了提示词小编,只要提示词写的足够好,我们就能得到符合需求的代码。原本编写代码的过程变成了代码填空和优化代码的过程。

除此以外,豆包MarsCode 还具备多个“一键”功能,比如一键生成代码注释,一键生成单元测试等等。豆包MarsCode 对于广大普通程序员而言,相当于是一个贴身编程小助手,一定程度上提升了我们的编程的上限和下限。


结语

豆包MarsCode 的 AI 编程助手让我想起一些低代码产品以及早些年那些通过“拖拉拽”构建 H5 页面的产品。那时候很多程序员会说,我们通过手写代码的方式完成页面开发,效率不比“拖拉拽”差,甚至质量更好。但其实这些都是工具,赋予工具价值的是它的使用者。

取长补短,去粗取精,体验过豆包MarsCode 之后,我脑海里只剩下两个字“真香”。


用户头像

还未添加个人签名 2024-08-27 加入

用 AI 激发创造

评论

发布
暂无评论
时隔七年重启编码人生,豆包MarsCode 让我快速回归 | MarsCoders 开发者说_Python_豆包MarsCode_InfoQ写作社区