DevChat:VSCode中的AI黑马

前言

编程对于很多人来说,可能是一件复杂且耗时的事情。在结合当下各类AI产品层出不穷的情况下,我是有在认真的去拥抱AI来结合我们的工作,帮助我们的工作提升效率,尝试过我们的官方G P T,以及各类国产AI产品,其实讲实话在编程方面还是有点繁琐,毕竟想要借助AI需要从我们的代码屏幕中切换到AI,帮我们生成部分代码复制后在嵌入我们的项目中,来回切屏的时间消耗当然问题不大,但是更重要的是思路会受到干扰,作为前端人的我们常用编辑器就是VSCode,所以后面也寻找并尝试集成在编辑器中的一些产品,讲实话省去切屏的步骤思路是不会受到干扰,但是整体的生成结果总是不尽人意,不过最近发现的DevChat算得上是我目前体验下来后觉得非常赞的一款产品;

DevChat做最务实好用的智能编程工具,不做AI试验品,前面这句话呢不是我说的,是DevChat自己说的,不过整体体验下来,我是比较认可他的这句宣传标语的,DevChat的魅力,首先来自于它的全面性。代码补全、语法检查、智能推荐,这些原本需要耗时耗力的任务,现在只需一键即可完成。而这一切,都得益于DevChat背后强大的AI算法。但DevChat不仅仅满足于此。它的真正价值,在于对用户体验的极致追求。无论是界面设计还是操作流程,DevChat都展现出了极高的水准。每一个细节,都经过了精心打磨,确保用户能够享受到最流畅、最便捷的体验。而对于那些对技术有着极高要求的开发者来说,DevChat背后的技术原理更是充满了魅力。机器学习、自然语言处理…这些前沿的技术,都被DevChat完美地融入到了日常的编程中。

在这里插入图片描述

与其他同类产品相比,DevChat的优势更为明显。不仅功能更为强大,更重要的是,它真正做到了与用户的心灵沟通。每一次更新、每一次优化,都是为了更好地满足用户的需求。总的来说,DevChat不仅是一款插件,更是一种编程的革新。它让编程变得更加智能,也更加人性。如果你还在为编程的效率而烦恼,那么不妨试试DevChat,它或许会给你带来意想不到的惊喜。下面我就来带大家感受一下这款AI工具DevChat https://meri.co/jwv

安装

我们访问上面的官方地址后首先进行个注册,注册的时候非常简单,就是邮箱加验证码,那么注册的时候会有一封邮件告知注册成功,里面包含了一个Access Key 的内容,这个内容我们下面会用到;然后回到官方后右上角有一个安装教程,里面讲解的比较详细,当然考虑大家看本篇文章的连贯性,我就也把步骤罗列一下:

安装依赖软件

这个几乎我们所有的程序员都是不需要的,如果你打开终端运行 git --version 返回版本号表明无需操作本步骤,如果你确实没有返回版本号,那你就参考 https://git-scm.com/book/en/v2/Getting-Started-Installing-Git 操作。完成安装于行上面命令出现版本号即可;

在这里插入图片描述

安装插件

打开咱们前端的趁手工具 VSCode,插件市场中搜索“devchat”,如下图,点击安装即可;

在这里插入图片描述

设置key

点击左下角的设置,选择命令面板/Command Palette,在弹出的命令面板中输入“devchat key”,点击如下命令

在这里插入图片描述

在这里插入图片描述

在最开始的时候跟大家提到过,我们注册成功邮箱收到邮件,其中包含了 Access Key 我们拿出来在弹窗中输入按下回车即可;

在这里插入图片描述

然后我们在插件中输入任意内容,测试下,正常回答就说明我们是ok了;在这里插入图片描述

当然我们这款插件可选择的AI版本还是比较齐全的;可以根据自己需求来进行切换

在这里插入图片描述

插件体验

我们先来小小的尝试一下,请帮我写一个js方法,要求传入一个树形结构的数组,和一个id,这个方法就可以给我返回匹配的ID所在层级和name值

在这里插入图片描述

function findNode(tree, id) {let result = {};// 递归遍历树形结构的数组function traverse(nodes, level) {for (let node of nodes) {if (node.id === id) { // 匹配idresult = { level, name: node.name };return;}if (node.children) { // 继续遍历子节点traverse(node.children, level + 1);}}}traverse(tree, 0); // 从根节点开始遍历return result;
}

我们可以看到他生成的代码;相对而言很精准的能够知道我想要的是什么,我们这款插件每次生成后会有一个按钮 insertCode,他可以将生成的内容直接push到我们的代码中的光标位置,非常的丝滑跟方便,那我让他帮我生成数据来验证一下吧!

function findNode(tree, id) {let result = {};// 递归遍历树形结构的数组function traverse(nodes, level) {for (let node of nodes) {if (node.id === id) { // 匹配idresult = { level, name: node.name };return;}if (node.children) { // 继续遍历子节点traverse(node.children, level + 1);}}}traverse(tree, 0); // 从根节点开始遍历return result;
}const tree = [{id: 1,name: 'Node 1',children: [{id: 2,name: 'Node 2',children: []},{id: 3,name: 'Node 3',children: [{id: 4,name: 'Node 4',children: []}]}]},{id: 5,name: 'Node 5',children: []}
];const id = 4;
const result = findNode(tree, id);
console.log(result); // 输出: { level: 2, name: 'Node 4' }

在这里插入图片描述

一次性能够生成这种比较精准的代码还是比较考验AI能力的,同时能够跟我们的编辑器做到这么高的融合程度真的很值得推荐;我们在来提升一下难度让他写一段贪吃蛇试试看;

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
<style>#game-board {position: relative;height: 300px;width: 300px;border: 1px solid black;}.dot {position: absolute;height: 20px;width: 20px;background: #000;}#fruit {position: absolute;height: 20px;width: 20px;background: #f00;}
</style>
</head>
<body>
<div id="game-board"></div>
<script>var dotSize = 20;var gameBoardSize = 300;var direction = 'Right';var snake = [{ top: 0, left: 0}];var fruit = null;function updateGameBoard() {var gameBoard = document.getElementById('game-board');// Clear boardwhile (gameBoard.firstChild) {gameBoard.firstChild.remove();}// Draw snakesnake.forEach(function(dot) {var dotEl = document.createElement('div');dotEl.classList.add('dot');dotEl.style.top = `${dot.top}px`;dotEl.style.left = `${dot.left}px`;gameBoard.appendChild(dotEl);});// Draw fruitif (fruit == null) {// No fruit - create onefruit = {top: Math.floor(Math.random() * gameBoardSize / dotSize) * dotSize,left: Math.floor(Math.random() * gameBoardSize / dotSize) * dotSize,};}var fruitEl = document.createElement('div');fruitEl.id = 'fruit';fruitEl.style.top = `${fruit.top}px`;fruitEl.style.left = `${fruit.left}px`;gameBoard.appendChild(fruitEl);}function updateGame() {var head = Object.assign({}, snake[0]); // Start with current headswitch (direction) {case 'Up': head.top -= dotSize; break;case 'Down': head.top += dotSize; break;case 'Left': head.left -= dotSize; break;case 'Right': head.left += dotSize; break;}// Game overif (head.top < 0 || head.top === gameBoardSize ||head.left < 0 || head.left === gameBoardSize ||snake.find(function(dot) { return dot.top === head.top && dot.left === head.left })) {snake = [{ top: 0, left: 0 }];direction = 'Right';fruit = null;return;}// Eating fruitif (fruit && fruit.top === head.top && fruit.left === head.left) {fruit = null; // Eat the fruit} else {snake.pop(); // Not eating - need to remove tail}snake.unshift(head);}window.setInterval(function() {updateGame();updateGameBoard();}, 200);window.onkeydown = function(e) {switch (e.key) {case 'ArrowUp': direction = 'Up'; break;case 'ArrowDown': direction = 'Down'; break;case 'ArrowLeft': direction = 'Left'; break;case 'ArrowRight': direction = 'Right'; break;}};
</script></body>
</html>

在这里插入图片描述

写在最后

虽然会有一些小的问题但是整体上的思路很赞,当然这种尝试我也只是想看看复杂情况下他的效果,真实不错,其实我们在日常的开发中,经常会有一些非业务层面的代码量,那么能够让我们的DevChat去帮我们搞定,对我们来讲就会节省时间去处理业务逻辑,从而就会提升我们的工作效率;在开发工程中我们也会遇到一些冗余代码或者是欠优化代码,其实我们都可以之际复制到左边让DevChat来帮我们搞定;很大的优势也在于它是真的不需要科技就可以直接体验AI的效果,因为我们很多时候其实在开发过程中的网络问题是不支持我们运用科技的,但是这个差价无需科技,而且响应速度很快的;推荐搭建使用!DevChat https://meri.co/jwv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7虚拟机部署苍穹私有云环境记录

物理机建议16G内存以上&#xff0c;不然安装gpass过程中带不动虚拟机 步骤1&#xff1a;迅雷下载centos7.9镜像文件&#xff0c;并创建虚拟机&#xff0c;手动安装 http://ftp.sjtu.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 后面安装gpass时会有校验…

5.OsgEarth加载地形

愿你出走半生,归来仍是少年&#xff01; 在三维场景中除了使用影像体现出地貌情况&#xff0c;还需要通过地形体现出地势起伏&#xff0c;还原一个相对真实的三维虚拟世界。 osgEarth可通过直接加载Dem数据进行场景内的地形构建。 1.数据准备 由于我也没有高程数据&#xff0c…

【C程序设计】用心浇灌<C程序>

目录 数据类型 整数类型 实例 浮点类型 void 类型 类型转换 数据类型 在 C 语言中&#xff0c;数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间&#xff0c;以及如何解释存储的位模式。 C 中的类型可分为以下几种&…

C++ 重载

C 允许在同一作用域中的某个函数和运算符指定多个定义&#xff0c;分别称为函数重载和运算符重载。 重载声明 是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明&#xff0c;但是它们的参数列表和定义&#xff08;实现&#xff09;不相同。 重载声明 当…

NSSCTF做题第9页(3)

[GKCTF 2020]CheckIN 代码审计 这段代码定义了一个名为ClassName的类&#xff0c;并在脚本的最后创建了一个ClassName类的实例。 在ClassName类的构造函数中&#xff0c;首先通过调用$this->x()方法获取了请求参数$_REQUEST中的值&#xff0c;并将其赋值给$this->code属性…

京东平台数据分析:2023年9月京东扫地机器人行业品牌销售排行榜

鲸参谋监测的京东平台9月份扫地机器人市场销售数据已出炉&#xff01; 根据鲸参谋平台的数据显示&#xff0c;9月份&#xff0c;京东平台扫地机器人的销量近14万&#xff0c;环比增长约2%&#xff0c;同比降低约4%&#xff1b;销售额为2.9亿&#xff0c;环比降低约4%&#xff0…

threejs(7)-精通粒子特效

一、初识Points与点材质 // 设置点材质 const pointsMaterial new THREE.PointsMaterial(); import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; // 导入动画库 import gsa…

Linux云服务器限制ip进行ssh远程连接

对Linux云服务器限制IP进行SSH远程连接的原因主要有以下几点&#xff1a; 增加安全性&#xff1a;SSH是一种加密的网络传输协议&#xff0c;可以保护数据的机密性和完整性。通过限制SSH连接的IP地址&#xff0c;可以防止未经授权的访问和数据泄露。只有拥有访问权限的IP地址才…

Makefile三个版本的编写

1.Makefile Makefile是一个工程管理文件&#xff0c;简化编译的流程&#xff0c;完成自动化编译的过程 在Makefile中&#xff0c;会把编译的过程分为两步&#xff0c;先生成.o文件&#xff0c;再对.o文件链接&#xff0c;生成可执行文件 Makefile由变量、函数、和规则构成 2.引…

辅助驾驶功能开发-执行器篇(03)-Mobileye Control Requirements

1. 目的 本文描述了产品开发不同阶段(研发、验证和产品化)车辆集成的控制要求。 2. 控制接口要求 2.1 接口类型 控制模块与车辆之间的接口应基于CAN协议或Flexray协议。 2.2 通讯频率 控制模块与车辆之间的通讯频率应高于36Hz。通信频率优先选择为 50 Hz。 2.3 延迟 所有…

vulnhub_DeRPnStiNK靶机渗透测试

VulnHub2018_DeRPnStiNK靶机 https://www.vulnhub.com/entry/derpnstink-1,221/ flag1(52E37291AEDF6A46D7D0BB8A6312F4F9F1AA4975C248C3F0E008CBA09D6E9166) flag2(a7d355b26bda6bf1196ccffead0b2cf2b81f0a9de5b4876b44407f1dc07e51e6) flag4(49dca65f362fee401292ed7ada96f9…

ResNet简单解释

什么是Resnet&#xff1f; resnet是一种残差网络&#xff0c;简单看一下resnet的结构 上面是ResNet&#xff0c;下面是传统的 ResNet里的一小块就是这样的 为什么要引入ResNet&#xff1f; 理论上讲&#xff0c;随着网络加深&#xff0c;我们获取的信息越来越多多&#xff0…

WordPress主题模板 大前端D8 5.1版本完整开源版源码简洁大气多功能配置

源码测评&#xff1a;该模板官方已更新至5.2&#xff0c;但是这个5.1也是非常好用的&#xff0c;经测试所有页面均完好&#xff0c;推荐下载使用。 模板简介&#xff1a; 大前端D8 主题是一款非常牛逼的WordPress博客主题,响应式,功能齐全,支持手机,电脑,平板,非常适合做博客站…

​iOS安全加固方法及实现

目录 iOS安全加固方法及实现 摘要 引言 iOS安全加固方法及实现 一、字符串加密 二、类名方法名混淆 三、程序代码混淆 四、加入安全SDK 总结 参考资料 摘要 本文介绍了iOS平台下的应用安全保护方法&#xff0c;包括字符串加密、类名方法名混淆、程序代码混淆和加入安全…

User CSS 在性能优化方面的实践

目录 前言 1. 减少重绘和回流 1.1 用法 1.2 代码示例 1.3 理解 2. 使用CSS精灵 2.1 用法 2.2 代码示例 2.3 理解 3. 压缩CSS文件 3.1 用法 3.2 代码示例 3.3 理解 4. 使用媒体查询进行响应式设计 4.1 用法 4.2 代码示例 4.3 理解 5. 使用CSS预处理器和构建工…

2015年亚太杯APMCM数学建模大赛A题海上丝绸之路发展战略的影响求解全过程文档及程序

2015年亚太杯APMCM数学建模大赛 A题 海上丝绸之路发展战略的影响 原题再现 一带一路不是实体或机制&#xff0c;而是合作与发展的理念和主张。凭借现有有效的区域合作平台&#xff0c;依托中国与有关国家现有的双边和多边机制&#xff0c;利用古丝绸之路的历史象征&#xff0…

【跟小嘉学 Rust 编程】三十三、Rust的Web开发框架之一: Actix-Web的基础

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…

定义USB接口,鼠标类和键盘类都可以作为实现类去实现USB接口

目录 程序设计 程序分析 系列文章 ​ 如图所示,我们电脑上都有USB接口,当我们的鼠标和键盘插上去之后才可以使用,拔出来就关闭使用。其实具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范…

专家级数据恢复:UFS Explorer Professional Recovery Crack

UFS Explorer Professional Recovery - 一款功能强大且方便的数据恢复程序&#xff0c;支持检测大量文件系统、操作系统和各种类型的驱动器&#xff1a;从简单的闪存驱动器到复杂的复合存储&#xff08;各种级别的 RAID 阵列&#xff09;。 该程序由执业专家开发&#xff0c;并…

可以用商城源码做什么?

商城源码是一个基于电子商务流程的现代化的商城网站程序。它提供了一个完整的电子商务解决方案&#xff0c;包括产品目录、购物车、结账、订单和付款等功能。商城源码可以用于创建各种类型的电子商务网站&#xff0c; 在这篇文章中&#xff0c;我将介绍商城源码可能带来的各种…