使用豆包MarsCode 编写 Node.js 全栈应用开发实践

以下是「豆包MarsCode 体验官」优秀文章,作者狼叔。

欢迎更多用户使用豆包MarsCode 并分享您的产品使用心得及反馈、创意项目开发等,【有奖征集|人人都是豆包MarsCode 测评官!】活动正在火热进行中,欢迎大家投稿参加,惊喜大礼等着大家!

我基本上经历 Node.js 的几个部署阶段,从原始云服务,到 K8S 容器化,到无服务的 FaaS 云函数,也做过一些科普工作。2017年之后做过很多年 SSR ,也是从基本 Web 框架到 FaaS ,最多做个降级容灾等大流量下稳定性相关的工作,其他就是全栈场景了。现在基本上也就 TRPC 能够让我觉得眼前一亮,仔细想想,也不过是 SDK 一样的思路,至于 AI 和 Node.js 开发有什么好的实践,我还没看到,都是常规思路,当我试过 MarsCode 之后,还是有些激动的。

在豆包MarsCode 发布之前,我就是第一波邀测用户,发布会当天我也去了现场。这个项目的核心开发主要是天猪、死月、老雷、段鹏飞等 Node.js 中坚力量,无论出于何种想法,我都是应该是去支持的。下面结合我了解的一些信息和动手实践内容,简单介绍一下我理解的 MarsCode。

豆包MarsCode是什么?

官方说法:豆包MarsCode 是字节跳动推出的免费 AI 编程助手,提供了 AI 驱动的云端 IDE 版和支持 VSCode 和 JetBrains 等的扩展版。豆包MarsCode IDE 具备代码补全、生成、解释功能,支持 AI 问答和 BUG 修复功能。豆包MarsCode 还提供 AI 插件开发与部署工具,简化了 API 测试、存储管理和 Schema 管理。此外,它拥有一键部署功能,提供安全可靠的云开发环境,支持多种项目创建方式,无需配置即可开始开发,确保了快速稳定的开发体验。

官方说豆包MarsCode 主要包含了 AI 功能的编程助手和 Cloud IDE,我认为不全面。我理解豆包MarsCode 是 AI + WebIDE + 自动化部署平台。

  • 深度集成AI 功能,从 Chat 到选中到流程集成。
  • WebIDE,以前我们开玩笑说它最大的作用是为外包用,代码不落地。那时候是因为性能不够,加载市场较慢。现在 Chrome 和电脑硬件变强,加载速度已经很好了,甚至有人直接用 iPad 写代码。这是个趋势的,比如 Codespaces ,就是 Github 提供的 WebIDE。
  • 自动化部署平台,它有部署服务,做了非常多的简化工作。

发布会当天通过需求开发、修复 Bug、开源项目学习三个实际场景,详细演示了豆包MarsCode 的项目问答、代码补全、单测生成、Bug Fix 等功能。确实没翻车,演示的还算比较流程。

> 官方说:通过完整场景演示串联各功能的使用配合,展示出豆包MarsCode 在日常工作中的优秀落地能力,无论是新手程序员还是经验丰富的开发者,都能体验到豆包MarsCode 带来的助力和效率提升。

这句话我不敢说,通过下面一系列实践,让大家来真实感受,可能更靠谱。下面通过场景一个具体的项目来讲讲我对豆包MarsCode 的理解。

创建项目,WebIDE 速度非常快

首先,在官网场景一个 Node.js 项目。注意这里选择的是 Node.js for AI Plugin,这是官方推荐的模版。

从项目创建到加载非常快,体感上 2-5 秒左右,体感速度应该跟 replit 差不多持平,如下图。

安装 tree 命令,英语查看文件目录结构。备注:apt-get下个版本可能会干掉或局部支持。

通过 tree 和 du 查看文件数和存储大小。

18个文件,加上 npm 安装,总大小72M,加上 os,大约300多M。

我是第一批豆包MarsCode 邀测用户,大约是4月底。那个时候一个项目从创建到启动大约1-2分钟,现在基本上能够做到2-5s左右启动,同为 VSCode 的谷歌 idx,现在启动还是大概按分钟计算的,Codespace大约30s左右([opulent-garbanzo-6vw4gx9xjv9h5qrq.github.dev/\](opulent-garbanzo-6vw4gx9xjv9h5qrq.github.dev/))目前豆包MarsCode 这个性能,可以说是行业里是领先的,应该是 Top 3。我和天猪简单的聊聊几句,此处是有高级技巧的,他们连着加班搞了1个月,在 K8S 上优化了很多细节,具体还处于保密阶段。

项目实战

我个人对 Node.js 比较熟悉,就以这个角度来做分析是比较容易的。这里我选了 Node.js for AI Plugin 这个模版,它是专门服务 Chatgpt 插件场景的,豆包MarsCode 还有非常多的其他模版,支持社区绝大部分框架(比如 React、Vue、Python、Go、Rust 等),也支持从 Git Repo 导入,理论上支持所有语言和框架。

本小节从项目目录结构到写法,到和 Vercel 对比,希望深入浅出的剖析一下豆包MarsCode 实现的一些细节。

项目结构

直接看一下忽略 node_modules,只显示3层的结构,这样更便于理解。

$ tree -I node_modules -L 3
.
├── api
│   ├── metadata.json
│   ├── sayhi
│   │   └── hello.ts
│   └── todo
│       ├── consts.ts
│       ├── create.ts
│       ├── delete.ts
│       ├── edit.ts
│       ├── search.ts
│       └── types.ts
├── package.json
├── pnpm-lock.yaml
├── README.md
├── runtime
│   ├── cli
│   ├── current_revision
│   ├── package.json
│   ├── pnpm-lock.yaml
│   ├── src
│   │   ├── cli.js
参考提供的引用,并未直接提及使用Node.js和Vue将豆包部署到本地的具体步骤和方法,但可依据引用中的相关技术信息推测通用步骤: ### 后端(Node.js)部分 1. **创建项目并安装依赖**:创建Node.js项目,安装Express等所需的npm包。 ```bash mkdir nodejs-backend cd nodejs-backend npm init -y npm install express ``` 2. **编写后端代码**:编写处理业务逻辑、数据处理以及与前端的数据交互的代码,同时实现与MySQL数据库的连接。以下是一个简单的Express示例: ```javascript const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello from Node.js backend'); }); const port = 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); }); ``` 3. **运行后端服务**:在终端中运行以下命令启动后端服务。 ```bash node app.js ``` ### 前端(Vue.js)部分 1. **创建Vue项目**:使用Vue CLI创建一个新的Vue项目。 ```bash npm install -g @vue/cli vue create vue-frontend cd vue-frontend ``` 2. **编写前端代码**:编写用户界面和用户交互逻辑,与后端进行数据交互。例如在`src/App.vue`中: ```vue <template> <div id="app"> <h1>{{ message }}</h1> </div> </template> <script> export default { name: 'App', data() { return { message: 'Hello from Vue.js frontend' }; } }; </script> ``` 3. **运行前端项目**:在终端中运行以下命令启动前端开发服务器。 ```bash npm run serve ``` ### 前后端联调 确保前端代码中正确配置了后端API的请求地址,例如在Vue项目中可以使用`axios`库进行请求: ```bash npm install axios ``` ```javascript import axios from 'axios'; axios.get('http://localhost:3000') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); ``` ### 部署到本地 如果要将项目部署到本地,可以使用Docker等工具。以下是一个简单的Dockerfile示例: ```Dockerfile # 后端Dockerfile FROM node:14 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "app.js"] # 前端Dockerfile FROM node:14 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build FROM nginx:1.19.0-alpine COPY --from=0 /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 构建并运行Docker镜像: ```bash docker build -t nodejs-backend . docker run -p 3000:3000 nodejs-backend docker build -t vue-frontend . docker run -p 80:80 vue-frontend ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值