Copilot使用体验

本篇是去年使用Copilot的记录,不代表目前水平,仅做个人记录同步,谨慎参考。

GitHub Copilot的订阅计划

https://docs.github.com/en/copilot/about-github-copilot/subscription-plans-for-github-copilot
个人版提供30天的免费试用。个人版每月10 美元或每年 100 美元。

Copilot操作文档

https://docs.github.com/en/copilot/quickstart
目前支持JetBrains IDEs,Vim/Neovim,Visual Studio,Visual Studio Code,Xcode。安装插件,登录Github账号就可以使用了,需要开代理。

基本操作

  • 获取代码建议,输入代码时会自动触发,使用“Tab”键采纳。
  • 切换建议,macOS使用“Option+]”或“Option+[”,windows使用“Alt+]” 或 “Alt+[”切换下一条,上一条。
  • 聊天模式,可以引用文件,生成测试代码,解释代码,修复问题。

基本操作,支持功能和同类型工具都大差不差,主要关注实际提示代码质量。

其他设置

  • 启用或禁用公共代码匹配的建议,如果选择允许匹配公共代码的建议,当Copilot建议匹配代码时,可以显示匹配的详细信息,并点击到GitHub上的相关存储库。
  • 访问Bing,Copilot将使用Bing在互联网上搜索与问题相关的信息。在讨论新技术或特定的主题时,Bing搜索尤其有用。

Copilot优缺点

优点

  • 提示速度快,支持语言丰富。
  • 偏向提示多行代码块,方便快捷。
  • 相对其他同类型工具提示更精准。
  • 会根据项目代码不断优化提示,做到更贴近所想。

缺点

  • 需要使用代理,没有国内的工具访问方便。
  • Copilot 是使用大量代码训练的,但它的范围仍然有限。 它可能无法处理一些复杂的代码结构或模糊的编程语言。
  • Copilot 并不是没有错误的。可能会生成看起来有效但实际无效的代码。 为了降低代码不准确的风险,需要仔细查看和测试生成的代码。
  • 由于上下文的限制,copilot不能全局考虑问题,更多的是解决局部的问题。会存在方法未复用的情况。

辅助编程相关场景举例说明

一般有三大类:

  • 代码-代码:包含代码补全、代码修复
  • 代码-文本:代码解释、代码优化、代码异常排查
  • 文本-代码:通过提示词 Prompt 做代码生成 (单元测试等)

支持语言

常用语言都支持(Java,python,JavaScript,Go,C, Kotlin等),亲测Flutter的Dart语言也可以很好的支持。

代码补全

场景:数据上报点击删除按钮时,pageinfo传入课程id(多个课程id用逗号分隔)
操作:当我输入到map方法做转换时,Copilot猜到我的意图,给出了下面的提示。

在这里插入图片描述


提示和预期完全一致,比较惊喜的地方在于,下载对象中属性字段很多,并且有“id”这个字段作为相似项干扰。
在我没有告知Copilot我的需求情况下,最终可以准确提示,还是很智能的。

代码修复

下面这段代码在实际运行中会报错崩溃,我们根据报错行数找到这段问题代码:

val goal ="${list[0].option.filter{ it.selected }[0]?.id ?: 1}"// java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0

选中这行问题代码,输入“/fix”修复这个问题。

在这里插入图片描述


可以看到copilot解释了问题的原因,并给出了解决方案。

代码生成

可以通过写注释的方式,让Copilot帮我们生成相关代码。Copilot会根据上下文,给到合理的代码。

在这里插入图片描述

Read more

CRMEB 标准版系统(PHP)- 前端多语言开发指南

一、多语言应用的典型场景 前端多语言支持通常出现在以下类型的组织或项目中:跨国公司、电商平台、跨文化交流平台、开源项目、面向全球用户的产品等等。在这些场景中,前端需要支持多种语言,如英语、中文、日语、韩语等,以更好地服务不同地区的用户。 二、什么是国际化(i18n)? 国际化(Internationalization,简称 i18n)是指软件设计时使其能够轻松适应不同语言和地区的过程。i18n 这个缩写中,“i” 和 “n” 分别是单词的首尾字母,中间的 “18” 表示这两个字母之间的字符数。 通俗来说,i18n 就是让一个页面能够根据用户设置切换显示不同语言内容的能力。 三、实现多语言功能的常见方式 1. 多语言数据支持 提供足够的语言数据集,包含不同语言的词汇、语法规则、翻译数据等,以支持不同语言的理解和生成,这是实现多语言能力的基础。 2. 机器翻译技术 使用机器翻译技术将内容或翻译成不同语言,以支持多语言交互,这需要较强的机器翻译模型和系统。

3D效果:HTML5 WebGL结合AI实现智能3D场景渲染

3D效果:HTML5 WebGL结合AI实现智能3D场景渲染 📝 本章学习目标:本章聚焦高级主题,帮助读者掌握工程化开发能力。通过本章学习,你将全面掌握"3D效果:HTML5 WebGL结合AI实现智能3D场景渲染"这一核心主题。 一、引言:为什么这个话题如此重要 在前端技术快速发展的今天,3D效果:HTML5 WebGL结合AI实现智能3D场景渲染已经成为每个前端开发者必须掌握的核心技能。HTML5作为现代Web开发的基石,与AI技术的深度融合正在重新定义前端开发的边界和可能性。 1.1 背景与意义 💡 核心认知:HTML5与AI的结合,让前端开发从"静态展示"进化为"智能交互"。这种变革不仅提升了用户体验,更开辟了前端开发的新范式。 从2020年TensorFlow.js的成熟,到如今AI辅助开发工具的普及,前端开发正在经历一场智能化革命。据统计,超过70%的前端项目已经开始尝试集成AI能力,AI辅助前端开发工具的市场规模已突破十亿美元。 1.2 本章结构概览 为了帮助读者系统性地掌握本章内容,

改进A*算法的Floyd路径规划:Matlab实现

改进A*算法的Floyd路径规划:Matlab实现

改进A*--Floyd算法路径规划Matlab 可以自己任意选目标点和起点位置, 地图可自己任意更换 1 8个搜索方向变成 5个 提高搜索方向 2 无斜穿障碍物顶点 避免发生碰撞 3 删除中间多余节点,减少转折,增加路径的平滑度 4 评价函数:f(n)=g(n)+h(n) 改为:f(n)=g(n)+(1+r/R)*h(n)。 可修改地图,起始点,目的地点,黑色为栅格障碍物,灰色为搜索空间的遍历节点 最近在学习路径规划算法,特别是A算法和Floyd算法的结合。A算法虽然高效,但在某些场景下还是存在一些可以优化的地方。因此,我决定对A*算法做一些改进,结合Floyd算法来提升路径规划的效果。本文将详细记录这个过程,并且附上Matlab实现代码。 一、基本思路

【算法刷题】二叉树前中后序遍历(递归+迭代)详解

【算法刷题】二叉树前中后序遍历(递归+迭代)详解

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程” 文章目录 * 一、二叉树的前序遍历🥝 * 1. 递归写法🍂 * 核心思路 * 步骤拆解 * 示例说明 * 代码🍋‍🟩 * 2. 迭代写法🍂 * 核心思路 * 步骤拆解 * 关键逻辑解析 * 示例说明 * 代码🍋‍🟩 * 二、二叉树的中序遍历🥝 * 1. 递归写法🍂 * 思路 * 代码🍋‍🟩 * 迭代写法🍂 * 核心思路 * 步骤拆解 * 关键逻辑解析 * 示例说明 * 代码🍋‍🟩 * 三、二叉树的后序遍历🥝 * 递归写法🍂 * 思路 * 代码🍋‍🟩 * 迭代写法1🍂🐦‍🔥 * 关键难点👏👏👏 * 解决方案 * 步骤拆解