惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
WordPress大学
WordPress大学
D
DataBreaches.Net
腾讯CDC
小众软件
小众软件
B
Blog RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Y
Y Combinator Blog
V
V2EX
I
InfoQ
D
Docker
量子位
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog

StudyingLover's Blog

Diffusion Policy笔记 rwkv笔记 act笔记 nanovllm-block_manager opencode多智能体 nanobot-pre-train nanobot-rl nanobot-sft nanobot-checkpoint_manager nanobot-gpt nanobot-mid-train Vision Mamba (Vim)笔记 BPE演示 最后一遍学习Transformer YOLOv5 目标检测笔记 下载根服务器解析记录 Dynaseal A Backend-Controlled LLM API Key Distribution Scheme with Constrained Invocation Parameters 判断链表有环 王道25数据结构勘误 关于perplexity的open-sourcing-r1-1776 AI为什么不像人类一样进行多轮对话 新博客改造日记和功能测试 linuxqq只显示登陆背景图 数字设计和计算机体系结构(机械工业出版社)勘误(自制) Dynaseal:面向未来端侧llm agent的llm api key分发机制 A Definitive Guide to Markdown Style This post is using MDX, Where you can embed JSX and Astro components RT-Patch学习 pydantic实现的LLM ReAct fastapi 和 uvicorn 设置监听 ipv6
copliot才是代码开发神器
About the Author StudyingLover · 2023-02-05 · via StudyingLover's Blog

copliot才是代码开发神器

本文使用copilot和chatGPT辅助完成

copilot是微软的AI代码生成器,可以帮助我们快速完成代码编写(这句copilot简介是copilot写的)。在openai的chatGPT出现后,copilot的风头有所下降,直到刚才…… 几分钟前我在写我的博客ThreeJS实现屏幕坐标转3d坐标时,原本的第一段代码是这样的:

function get3DPosition(x, y, camera, scene, hyper_z) {
        var vector = new THREE.Vector3();
        // calculate mouse position in normalized device coordinates
        // (-1 to +1) for both components
        vector.x = (x / window.innerWidth) * 2 - 1;
        vector.y = - (y / window.innerHeight) * 2 + 1;
        vector.z = hyper_z;

        // unproject the vector
        vector.unproject(camera);

        // calculate the ray from the camera to the vector
        var ray = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());

        // check for intersection with objects in the scene
        var intersects = ray.intersectObjects(scene.children);
        if (intersects.length > 0) {
            return intersects[0].point;
        }
        else {
            return null;
        }
    }

正当我写完

官方为我们提供了一个接口vector.unproject(camera) 打算粘贴上我的代码时,copilot突然给了我一大段代码提示,并给出了我一段代码

emmmmmmmmmm,当时的我是有点懵的,我回去看了看当时这段代码的目的,发现这段代码的目的(实不相瞒写到这copilot又给我一段提示(实不相瞒写到这copilot又给我一段提示(…)))先获取点击的坐标点,再获取我点击的3d物体的名称。所以前半部分没问题,真正要改的是后部分。更改后的代码如下:

function screenToWorld(screenX, screenY, camerahyper_z) {
    const vector = new THREE.Vector3();
    vector.set(
        (screenX / window.innerWidth) * 2 - 1,
        -(screenY / window.innerHeight) * 2 + 1,
        hyper_z
    );
    vector.unproject(camera);
    vector.applyMatrix4(camera.matrixWorldInverse);
    return vector;
}

你以为结束了吗,当我继续往下写我的博客,写道

这里的hyper_z网上很多教程认为是写0.5,

copilot又给我一段代码提示,,这次的提示是这样的 还好还好,这次代码的目的没搞错,只是整个代码都可能写错了而已……

经过一番思考,我决定继续按照原先的代码写,因为我已经尝试了代码的效果,勉强可以达到我们的要求。

最后,我想说的是,copilot真的是一个神器,但是要注意,它只是一个辅助工具,不要完全依赖它,因为它可能会给你一些错误的代码提示,这时候你就要自己去思考了。(这段话还是copilot写的)

总而言之,Copilot是代码开发领域中高效且创新的工具。它具有易于使用的界面和先进的功能,已被证明是开发人员的游戏规则改变者,并被广泛认为是最终的代码开发工具。无论您是经验丰富的程序员还是刚刚入门,Copilot都提供了您需要的工具,可以比以往更快、更高效地完成工作。(这段话是chatGPT写的)