Github Copilot学习笔记

news2025/3/3 18:39:21

(一)Prompt Engineering

  • 利用AI工具生成prompt
  • 设计好的prompt结构
  • 使用MarkDown语法,按Role, Skills, Constrains, Background, Requirements和Demo这几个维度描述需求。然后收输入提示词:作为 [Role], 拥有 [Skills], 严格遵守 [Constrains],根据[Background]和[Requirements], 参考[Demo]开始工作.

1.Specific Persona 明确Copilot的身份

  • 好的例子

1.你是一个Senior的Typescript Developer,非常注重代码质量、抽象度、稳定性和代码执行效率

2.Break Down 任务拆解

  • 原则

1.AI最了解AI自己,与AI聊天,合作完成任务的拆解

2.不要试图在一次对话或者一个文件中让AI全部扫描,让它自己做拆分逐个学习和理解,反复提问

3.Specific Requirements with Constrain 明确需求,包括输入输出和实现标准及约束条件

目的明确

确定约束条件

用什么语言或格式输出

可以提供示例

4.Keep the context Relevant保持上下文关联

  • 原则

1.让AI逐个理解你的输入,询问它的疑惑点或者询问其是否对项目有了进一步的了解,check它理解的正确性,并考察它几个重要的概念,纠正它的错误理解,并最终让它编写“学习笔记”,形成Knowledge Bases的Local MD文件

2.在具体功能细节上使用注释和函数作用声明

3.在Setttings中声明Instructions,文件内包含了对Copilot的各种规范、规则、和期望

4.由于GitHub Copilot 的Search能力,除了自带的Github Search之外,得基于第三方Participant(比如Bing),所以结合ChatGPT的Search能力帮助其进行竞品分析,这也是一个获取其他相关材料来投喂的一种方式

5.可以主动询问AI一次可以分析多少条case

6.当AI无法分析PDF或DOC等文件时,可以让它提供代码,转化成文本文件,然后作为AI的输入

(二)Reviewing and Redifining Suggestions

  • 原则

1.Check and then Accept, check的过程中如果发现AI理解或者建议错误,不要盲目接受,而是直接指出错误的地方,让它重新调整后再给出建议,不断的沟通和要求其调整,直到满意后才Accept

  • 好的例子

1.明确告知AI你给的是A,而我想要B,避免机械地重复给我B

2.先对其认知,询问它对需求的理解是什么,问它有什么困惑,并给予逐一回答并再三确认,先给予再要求输出

3.直接重开一个Chat

(三)Efficient Collaboration

  • 原则

从Chat到Edit到Inline,是一个从Overview到Detail,从整体到细节的过程,从High Level的讨论 (用Chat),到执行(Edit), 再到微调(Inline Suggestion)。这个流程下来,自己不用动手写一行代码,全程在指挥(聊天)

  • 好的例子

1.GitHub Copilot其实在代码相关的功能方面表现比较有优势,比如代码、命令行、注释、数据库查询生成;API与框架设计;代码解释、Debugging;以及IaC方面的建议生成等。 结合VSCode,可以直接进行文件编辑,比如测试用例编写。
ChatGPT 则能够在代码之外给出更多更详细的建议,有趣的是,我跟ChatGPT了解该如何用好GitHub Copilot,它倒是给出了不少有效的建议。

(四)Improvement

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

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

相关文章

单片机-定时器中断

1、相关知识 振荡周期1/12us; //振荡周期又称 S周期或时钟周期(晶振周期或外加振荡周期)。 状态周期1/6us; 机器周期1us; 指令周期1~4us; ①51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器…

高比例压缩:Linux 中的压缩命令与技巧

文章目录 高比例压缩:Linux 中的压缩命令与技巧1. 压缩格式的选择2. gzip 命令示例:压缩文件示例:解压文件 3. bzip2 命令示例:压缩文件示例:解压文件 4. xz 命令示例:压缩文件示例:解压文件 5.…

【ArcGIS Pro二次开发实例教程】(1):图层的前置、后置

一、简介 此工具要实现的功能是:将内容框中当前选定的图层移到最顶层或最底层。 主要技术要点包括: 1、Config.daml文件设置(UI设置) 2、按钮的图片和位置设置 3、当前选定图层的获取 4、图层在内容列表中位置的获取和移动 …

Sprint Boot教程之五十:Spring Boot JpaRepository 示例

Spring Boot JpaRepository 示例 Spring Boot建立在 Spring 之上,包含 Spring 的所有功能。由于其快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置,因此如今它正成为开发人员的最爱。Spring Boot 是一个基…

ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告

问题背景: ESP32 IDF VScode出现头文件“无法打开 源 文件 ”,并有红色下划线警告: 解决办法: 在工程里面的.vscode文件夹下,检查是否存在c_cpp_properties.json文件,如果没有可以手动创建添加。如图…

【Shell脚本】Docker构建Java项目,并自动停止原镜像容器,发布新版本

本文简述 经常使用docker部署SpringBoot 项目,因为自己的服务器小且项目简单,因此没有使用自动化部署。每次将jar包传到服务器后,需要手动构建,然后停止原有容器,并使用新的镜像启动,介于AI时代越来越懒的…

关于ssh-server在windows系统中进行部署及通过mobaxterm中ssh隧道技术实现不同网段之间进行网络通讯的问题

问题1.windows系统部署ssh-server 在安装部署过程中参考先行者就可实现部署。我使用的作者百度云安装包。 记录一下操作步骤: 1.在搜索中打开power shell命令行,将文件夹复制到C:\Program Files,切换到OpenSSH-Win64,执行如下安装…

写了个小工具,绿色/C#/Url/Base64/Encode/Decode

写这个小工具的动机是什么呢? 虽然很多在线工具也非常地方便,但经常在抓包的时候需要操作相关的转码工作,但你开着抓包工具访问网页有时候又非常地不方便。这时候就想到如果有一款本地的工具软件,就非常地耐斯。 这种工具也不是…

【优选算法】Binary-Blade:二分查找的算法刃(下)

文章目录 1.山脉数组的峰顶索引2.寻找峰值3.寻找旋转排序数组中的最小值4.点名希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 本篇接上一篇二分查找,主要通过部分题目熟悉二分查找的进阶使用,重点强调二段性,…

【Ubuntu22.04】VMware虚拟机硬盘扩容

1.首先打开虚拟机设置 2.根据需要对硬盘扩展 这边提示我们还需要进入虚拟机在内部分区 3.安装界面化磁盘管理工具 # 安装 sudo apt install gparted# 启动 sudo gparted调整硬盘大小 调整的时候会提示我们硬盘是只读的,因此还要进行操作 新建终端重新挂载文件系…

无网络时自动切换备用网络环境

目录 背景目标为什么需要做自动网络切换网络切换手段 网络环境实现思路和代码部署脚本开机自动执行附录连接两个网络时的路由问题 背景 目标 学校实验室有两个网络环境,我电脑使用网线连接稳定但低速的网络A,使用WiFi连接高速但不稳定的网络B。因此&am…

设计模式 行为型 策略模式(Strategy Pattern)与 常见技术框架应用 解析

策略模式(Strategy Pattern)核心思想是将算法的实现从使用该算法的类中分离出来,作为独立的对象,通过接口来定义算法家族,这样就可以很容易地改变或扩展算法。通过这种方式,可以避免在客户端代码中使用大量…

Unity 热更新基础知识

文章目录 1.一些名词2.三种编译方式3.Unity 两种脚本后端3.1 Mono3.2 IL2CPP3.3 对比 1.一些名词 IL(Intermediate Language):中间语言(类似于汇编代码)CIL(Common Intermediate Language)&…

C++感受15-Hello STL 泛型启蒙

生鱼片和STL的关系,你听过吗?泛型编程和面向对象编程,它们打架吗?行为泛型和数据泛型,各自的目的是? 0 楔 俄罗斯生鱼片,号称俄罗斯版的中国烤鸭,闻名于世。其鱼肉,源于…

LabVIEW轴承性能测试系统

本文介绍了基于LabVIEW的高效轴承性能测试系统的设计与开发。系统通过双端驱动技术实现高精度同步控制,针对轴承性能进行全面的测试与分析,以提高轴承的可靠性和寿命。 项目背景 随着工业自动化程度的提高,对轴承的性能要求越来越高。传统的…

(k8s)Flannel Error问题解决!

1.问题描述 书接上回,我们在解决kubectl不断重启的时候引入了Flannel 网络插件,但是一上来就报错, 2.问题解决 自己的思路:照例开始检查 1.先检查一下目前Flannel的pod kubectl get pods --all-namespaces 2.检查 Flannel的po…

CatLog的使用

一 CatLog的简介 1.1 作用 CAT(Central Application Tracking) 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。 1.2 组成部分 1.2.1 Transaction 1.Transaction 适合记录跨越系统边界的程序访问行为&a…

深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02

目录 2、 使用SurfaceView画2D图 范例一 设计GameLoop(把小线程移出来) 范例二 2、 使用SurfaceView画2D图 范例一 以SurfaceView绘出Bitmap图像设计SpriteView类别来实作SurfaceHolder.Callback接口首先来看个简单的程序,显示出一个Bitmap图像。这个图像就构…

【FlutterDart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100)

【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100) 【Flutter&Dart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100) 上效果: 这个在知乎里找到的效果&…

tk GMV MAX素材范围投放指南

Product GMy Max素材范围说明 Product GMy Max能自动获取带有相关商品锚点链接(无论是单个锚点还是多个锚点)的视频,并将其用于推广特定商品的广告素材,前提是这些视频已经获得广告授权。然而,请注意,多个…