作为开发人员掌握 GitHub Copilot:15 个提示和技巧

目录

Copilot 的炫酷用例

为您完成代码

从代码编写测试

TDD:通过测试编写代码

测试/模拟数据生成

从注释中编写代码

问:&答:

颜色生成

使用测量单位

自然语言翻译

自动化脚本

正则表达式

配置

命令行命令

文档和自述文本

if (true) 技巧

快捷方式

附加功能

副Copilot实验室

副CopilotX

替代方案以及在您的公司使用 Copilot

最后


过去两年我一直是 Github Copilot 的活跃用户,我真的很喜欢它改进我的代码和技术文本工作的方式。

今天,我想分享一组实用的提示和技巧,帮助您最大限度地发挥其潜力。我将它们发布在我的 Twitter 帐户上,现在是时候将它们全部收集到一个地方了。无论您是经验丰富的开发人员还是刚刚起步的开发人员,我相信它们都可以帮助您使日常工作变得更简单、更快。

Copilot 的炫酷用例

为您完成代码

这是 Copilot 的基本用例,只需开始使用代码,它就会为您预测行和整个块

从代码编写测试

Copilot 可以帮助您为代码编写测试。只需编写一个测试名称,Copilot 就会根据该名称生成一个测试模板和一些模拟数据。如果您向它展示代码,它就知道之前的上下文,因此它可以使用它来测试真实数据。

TDD:通过测试编写代码

您还可以先编写测试,Copilot 将尝试预测通过测试的代码。如果您一直想尝试 TDD,也许现在是尝试 TDD 的好时机。

它知道我们在类中有这个方法

测试/模拟数据生成

Copilot 非常适合生成模拟数据。只需提供一个接口或数据结构示例,它就会生成您想要的任意数量的实体。

反之亦然,您可以在常量中添加随机数据,Copilot 将帮助根据它生成界面。

从注释中编写代码

在编写代码之前为 Copilot 提供注释,看看它能做什么。这是一个非常强大的工具

顺便说一句,现在它用 ES 的旧方法生成代码,因为它对项目上下文一无所知(它是空白的 JS 文件)。但是让我们添加一个const作为现代代码方法的标识符并查看结果:

太好了,现在它知道我们想要获取 ES6+ 代码

问:&答:

问答:您可以在评论中向 Copilot 询问任何问题。它可以是技术问题,也可以是常见问题。

很有用,因为您可以在几秒钟内完成

任何问题…

颜色生成

Copilot 可以根据描述为您生成颜色。它在构建简单的示例/演示时很有用

使用测量单位

您可以使用 Github Copilot 在代码注释中快速计算测量单位

但切勿将其用于重要计算。它不是计算器,有时可能会错过。当您不确定时请仔细检查其结果

自然语言翻译

Copilot也懂得许多自然语言。您可以使用它作为翻译器或在评论中描述您想要的内容,而不仅仅是用英语

您也可以用其他语言编写代码请求。

自动化脚本

Copilot非常擅长编写各种项目迁移脚本。您可以操作代码、文件、项目结构。通常,从想法到迁移文件需要几分钟的时间......

正则表达式

你不喜欢写正则表达式吗?Copilot生成的效果非常好。通常,您需要的只是一个正确的变量名称

配置

GitHub Copilot 可以帮助您更快、更轻松地编写 Nginx 等配置。它适用于常用工具的配置和从模式中学习的内部配置模式。

您甚至可以要求 Copilot 生成整个配置文件;)

命令行命令

您知道可以使用 Github Copilot 生成命令行命令吗?只需创建.sh文件并为其提供所需的描述

文档和自述文本

永远不要忘记,您还可以使用 Copilot 作为自动完成功能来编写文本;)

if (true) 技巧

if (true)如果您希望 Github Copulot 能够执行以下操作,请使用构造:

  • 生成整个代码块,但不是逐行生成
  • 完成生成注释并开始编写代码

快捷方式

不要忘记使用键盘快捷键,它们可以节省您很多时间!有关快捷方式的文档。

附加功能

Copilot实验室

这是一个VS Code 扩展,围绕许多 Copilot 功能添加了 UI。

选择代码并要求 Copilot 进行解释

用它来将您的代码翻译成其他语言。它甚至可以切换代码范式......

一组可以简化您日常工作的小工具

其他测试生成经验

Copilot X

这是一组下一级工具,还添加了问答聊天、语音助手、在 Github 上创建拉取请求的自动化、与 CLI 的集成以及与代码编辑器集成的其他工具。

在Github 的文章中查看。

替代方案以及在您的公司使用 Copilot

不要忘记,Github Copilot 有很多替代品,所有这些技巧都可以应用于其中任何一个。有些工具做得更好,其他工具生成得更简单,但可以为您的公司自行托管。

我在本文中提到的所有内容也可以通过 ChatGPT 或 Bard 来实现,但在我看来,这些工具之间存在很大差异:

  • 您可以使用代码助手来加快编码速度,并且通常可以更快地继续您的想法。
  • 您使用聊天助手作为独立顾问来深入研究某些主题,不仅可以获得解决方案,还可以获得一些解释

并且不要忘记在工作中使用它之前询问您的信息安全同事,以确保您的公司允许将代码发送到第三方服务,即使是匿名的。

最后

在处理代码时有这样的Copilot真是太酷了。对我来说,这非常类似于与以前阅读和见过很多东西的开发人员进行结对编程。

无论如何,不​​可能突出其所有炫酷的功能。因此,如果您有其他喜欢的示例,请在评论中分享!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT与MATLAB混合编程详解

写在前面:由于matlab和qt的环境配置复杂,请大家一定先根据自己电脑的路径来替换本文中的路径 本文使用环境: MATLAB 2022b qt 6.6 编译环境:MSVC2019 64位 matlab的环境还需要配置在环境变量中 此电脑(右键&#xf…

Docker 实践之旅:项目迁移与高效部署

目录 1 引言2 初识 Docker2.1 Docker简介2.2 Docker优势 3 传统部署流程的问题4 学习 Docker 的过程5 Docker 解决项目部署的实践5.1 迁移关键服务5.2 定制化打包与快速部署 6 项目实践收获6.1 简化了部署流程6.2 节约了部署成本 7 克服难点和经验分享7.1 版本兼容性问题7.2 网…

Android Studio修改创建新布局时默认根布局

将Android Studio默认布局ConstraintLayout切换成LinearLayout 打开设置, Editor> File and Code Templates > Other > layoutResourceFile.xml 备注:创建时提示根布局仍然为ConstraintLayout,不用管这个,实际创建的…

MybatisX逆向工程方法

官方文档链接:MybatisX快速开发插件 | MyBatis-Plus (baomidou.com) 使用MybatisX可以快速生成mapper文件,实体类和service及实现 效果 方法:首先下载mybatisX插件 然后创建数据库信息 然后选中表,右键,点击Mybatis…

WeakMap 和 Map 的区别,WeakMap 原理,为什么能被 GC?

垃圾回收机制 我们知道,程序运行中会有一些垃圾数据不再使用,需要及时释放出去,如果我们没有及时释放,这就是内存泄露 JS 中的垃圾数据都是由垃圾回收(Garbage Collection,缩写为 GC)器自动回…

JMeter逻辑控制器之While控制器

JMeter逻辑控制器之While控制器 1. 背景2.目的3. 介绍4.While示例4.1 添加While控制器4.2 While控制器面板4.3 While控制器添加请求4.3 While控制器应用场景 1. 背景 存在一些使用场景,比如:某个请求必须等待上一个请求正确响应后才能开始执行。或者&…

Springboot整合JSP-修订版本(Springboot3.1.6+IDEA2022版本)

1、问题概述? Springboot对Thymeleaf支持的要更好一些,Springboot内嵌的Tomcat默认是没有JSP引擎,不支持直接使用JSP模板引擎。这个时候我们需要自己配置使用。 2、Springboot整合使用JSP过程 现在很多的IDEA版本即使创建的项目类型是WAR工…

页面左中右下布局HTML

效果如下 代码如下 <!DOCTYPE html> <html><head><title>名曲欣赏</title><meta charset"UTF-8" /><style>body {padding: 0;margin: 0;background: linear-gradient(180deg, #d7f5f2 0%, #c4f2ee 100%);}p {margin: 0;p…

学生使用什么牌子的护眼灯好?五款优秀台灯分享

在近几年&#xff0c;儿童青少年近视率非常高。很多家长认为孩子近视的原因是没有养成正确的用眼习惯&#xff0c;例如经常趴桌子写作业、眯眼看书等&#xff0c;但实际上这些坏习惯是因为没有合适的光线而导致的。所以安排一盏合适的台灯给孩子学习是非常重要的。 很多家长会选…

基于C++的类Unix文件系统

这是一个基于C的类Unix文件系统&#xff0c;有意者私信获取。 可用指令如下&#xff1a; ls - 显示当前文件夹下的内容 cd - 按照路径进入到某个文件夹下 mkdir <path/name> - 在指定路径下创建一个文件夹 create <path/name> - 在指定路径下创建一个文件 open &…

Hadoop安装笔记2单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

紧接着上一篇博客&#xff1a;Hadoop安装笔记1&#xff1a; Hadoop安装笔记1单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2&#xff1a;离线数据处理-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135…

SpringBoot 项目中常用的注解

每一层对应每个包&#xff0c;包名中应全为小写。 一、Common 层&#xff08;实体类&#xff09; 前提&#xff1a;导入 Lombok 依赖 Data&#xff1a;生成 get 和 set 方法以及 toString 方法 Getter&#xff1a;只生成 get 方法&#xff0c;避免对类中的成员变量修改。 …

《MySQL系列-InnoDB引擎01》MySQL体系结构和存储引擎

文章目录 第一章 MySQL体系结构和存储引擎1 数据库和实例2 MySQL配置文件3 MySQL数据库路径4 MySQL体系结构5 MySQL存储引擎5.1 InnoDB存储引擎5.2 MyISAM存储引擎5.3 NDB存储引擎5.4 Memory存储引擎5.5 Archive存储引擎5.6 Federated存储引擎 6 连接MySQL6.1 TCP/IP6.2 命名管…

MIT线性代数笔记-第31讲-线性变换及对应矩阵

目录 31.线性变换及对应矩阵打赏 31.线性变换及对应矩阵 线性变换相当于是矩阵的抽象表示&#xff0c;每个线性变换都对应着一个矩阵 例&#xff1a; 考虑一个变换 T T T&#xff0c;使得平面上的一个向量投影为平面上的另一个向量&#xff0c;即 T : R 2 → R 2 T:R^2 \to R…

CDN 原理

CDN 原理 CND 一般包含分发服务系统、负载均衡系统和管理系统 分发服务系统 其基本的工作单元就是各个 Cache 服务器。负责直接响应用户请求&#xff0c;将内容快速分发到用户&#xff1b;同时还负责内容更新&#xff0c;保证和源站内容的同步。 根据内容类型和服务种类的不…

gitlab请求合并分支

直接去看原文: 原文链接:Gitlab合并请求相关流程_source branch target branch-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- 入口&#xff1a; 仓库控制台的这两个地方都…

RedisConnectionFailureException: Unable to connect to Redis; 报错解决

一 Unable to connect to Redis报错提示 项目启动时都会报错&#xff1a;RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException 如图&#xff1a; 提示是不能正确连接到redis&#xff0c;连接问题的问…

关于苹果iOS 16:揭开伪装成飞机模式的隐形蜂窝接入漏洞的动态情报

一、基本内容 在日常生活中&#xff0c;网络威胁不断演变&#xff0c;给个人和组织带来了一系列重大挑战。网络犯罪分子使用的一种最常见的、最具破坏性的方法之一就是网络钓鱼。这种攻击方式通过电子邮件、短信或其他通讯渠道冒充可信实体&#xff0c;诱使个人泄露敏感信息&am…

Flink版本更新汇总(1.14-1.18)

0、汇总 1.14.0 1.有界流支持 Checkpoint&#xff1b; 2.批执行模式支持 DataStream 和 Table/SQL 混合应用&#xff1b; 3.新增 Hybrid Source 功能&#xff1b; 4.新增 缓冲区去膨胀 功能&#xff1b; 5.新增 细粒度资源管理 功能&#xff1b; 6.新增 DataStream 的 Pulsar …

特征归一化及其原理--机器学习

归一化是数据预处理中的一种常见操作&#xff0c;其目的是将不同特征的数值范围统一或缩放到相似的尺度。这有助于提高模型的性能&#xff0c;加速模型的收敛&#xff0c;并使模型更加稳健。以下是进行归一化的一些原因和原理&#xff1a; 消除特征间的尺度差异&#xff1a; 不…