用了 Trae 后,感觉离京东外卖不远了

前言

入手 Trae 开发已经有一段时间了,因为之前开发过一个vscode 插件,有点好奇如果让 Trae 来实现同样的功能会怎样。结果令人震惊 ------ 不到10分钟就完成了开发!这让我突然间对未来迷茫起来了。甚至觉得"送外卖的日子"似乎也不远了(说起来也巧了,今天碰巧就注册了京东众包😂)

vcode 插件介绍

我们先来看一下插件的效果

这个插件是智能代码命名工具,很多开发者在给代码命名时常常感到困扰,尤其是在英文水平有限的情况下,频繁地依赖翻译软件来寻找合适的命名。这个插件通过 AI 自动生成符合命名规范的名称,不仅避免了翻译软件带来的生硬翻译,还能提供更加自然、友好的命名建议。让你的代码命名更高效、更符合语境,提升整体开发体验。

AI 实现

首先我们先对功能进行拆解

然后运行 Trae

可以看到 Trae 直接给我们生成 项目结构

和插件核心代码实现

ts 复制代码
import { ExtensionContext, commands, window } from 'vscode';

function isChinese(text: string): boolean {
  return /[\u4e00-\u9fa5]/.test(text);
}

function validateText(text: string): { isValid: boolean; message?: string } {
  if (!text) {
    return { isValid: false, message: '请选择要转换的文本' };
  }
  if (!isChinese(text)) {
    return { isValid: false, message: '请选择中文文本' };
  }
  if (text.length > 20) {
    return { isValid: false, message: '选中文本不能超过20个字' };
  }
  return { isValid: true };
}

async function generateCodeName(text: string): Promise<string> {
  // TODO: 这里将集成火山引擎的AI模型
  // 临时返回一个示例转换结果
  return text.split('').join('_');
}

export async function activate(context: ExtensionContext) {
  const disposable = commands.registerCommand('vcode.generateCodeName', async () => {
    const editor = window.activeTextEditor;
    if (!editor) {
      return;
    }

    const selection = editor.selection;
    const text = editor.document.getText(selection);

    const validation = validateText(text);
    if (!validation.isValid) {
      window.showErrorMessage(validation.message!);
      return;
    }

    try {
      const codeName = await generateCodeName(text);
      await editor.edit(editBuilder => {
        editBuilder.replace(selection, codeName);
      });
    } catch (error) {
      window.showErrorMessage('生成代码命名失败:' + error.message);
    }
  });

  context.subscriptions.push(disposable);
}

这段代码与我之前手动开发的版本惊人地相似,只需要补充 AI 模型调用的部分就可以完整运行了

插件地址

源码

更多实践案例

除了这个简单的例子,我还想分享一个更现实的案例。也就在一周前,需求评审的时候产品问我能不能写个工具给运营处理一下 docs 里面的图片,把docs 里面的图片替换成 公司图床的链接,然后把 docs 给到知识库解析。我让产品先给我一个测试文档,我先试试,然后我就用 Trae 去实现了一下这个功能。结果需求还没开完,我就已经实现了,感觉就又离谱又神奇。

相关推荐
We་ct3 分钟前
LeetCode 1. 两数之和:两种高效解法(双指针 + Map)
前端·算法·leetcode·typescript·哈希算法
LYFlied8 分钟前
边缘智能:下一代前端体验的技术基石
前端·人工智能·ai·大模型
1024小神10 分钟前
用css的clip-path裁剪不规则形状的图片展示
前端·css
铅笔侠_小龙虾15 分钟前
Flutter 组件层级关系
前端·flutter·servlet
梵得儿SHI17 分钟前
Vue 高级特性:渲染函数与 JSX 精讲(h 函数语法、JSX 在 Vue 中的应用)
前端·javascript·vue.js·jsx·模板语法·渲染函数·底层视图生成机制
GGGG寄了19 分钟前
CSS——文字控制属性
前端·javascript·css·html
菜鸟茜24 分钟前
ES6核心知识解析01:什么是ES6以及为什么需要ES6
前端·javascript·es6
C澒30 分钟前
FE BLL 架构:前端复杂业务的逻辑治理方案
前端·架构·前端框架·状态模式
止观止41 分钟前
拒绝“都是 string”:品牌类型与领域驱动设计 (DDD)
前端·typescript
芸简新章1 小时前
微前端:从原理到实践,解锁复杂前端架构的模块化密码
前端·架构