当前位置: 首页 > news >正文

网站外网访问怎么做路由器端口映射贵阳网站建设费用

网站外网访问怎么做路由器端口映射,贵阳网站建设费用,做网站工程案例图片,太原seo关键词排名文章目录 前言1. 工具准备1.0 事先说明1.1 VSCode1.2 Fitten Code1.3 GitHub Copilot 2. 使用测评2.1 需求理解2.2 上下文理解 3. 总结推荐链接 开年尝鲜高质量国产AI编码助手——FittenCode 前言 2024年刚刚开局#xff0c;清华大学 与 非十科技 就发布了全新的 VSCode AI… 文章目录 前言1. 工具准备1.0 事先说明1.1 VSCode1.2 Fitten Code1.3 GitHub Copilot 2. 使用测评2.1 需求理解2.2 上下文理解 3. 总结推荐链接 开年尝鲜高质量国产AI编码助手——FittenCode 前言 2024年刚刚开局清华大学 与 非十科技 就发布了全新的 VSCode AI 编码助手—— FittenCode。 感谢我的大佬同学小金推荐让我及时收到咨询第一时间体验FittenCode 截止至本文发文日期FittenCode 可在 VSCode 商城下载并免费试用借此契机我索性将我自己的Copilot拿出来与FittenCode做一个使用体验对比。此文就当是用户使用测评了 由于我本人只是渣渣 Java 开发并不懂很多AI知识目前工作与生活中对AI仅略懂皮毛日常仅使用AI而并无细致研究因此本文只讨论如何使用FittenCode及Copilot并不深入探究其原理。 当然了还得事先说明由于个人非专业测评工程师样本有限测评结果仅代表个人观点轻喷。建议读者将本文当作单纯的“Fitten Code的使用”参考文章。 工具 VSCode 1.84 以上GitHub Copilot一个项目或一段代码 由于本人目前 是 Java 方向 本文就用Java 演示啦。 测评维度 同一需求场景下对同一个需求注释生成的代码对比同一代码注释对上下文的理解生成的代码对比 1. 工具准备 这一小节介绍如何准备相关工具包括下载对应 VSCode 版本FittenCode 插件下载注册Copilot 购买 1.0 事先说明 我们在使用FittenCode前由上文提到的小金大佬指导需要事先了解FittenCode现阶段如下几点 目前仅支持 VSCode 插件VSCode 版本需要在 1.84 以上目前免费试用以后是否收费要看开发商非十科技的战略 1.1 VSCode 首先我们下载 VSCode并配置所需的基础环境 下载安装及配置 下载地址 VSCode下载地址 https://code.visualstudio.com/download 安装完成后插件下载、程序运行测试参考文章: 腾讯云社区-VSCode配置JAVA环境参考文章 VSCode 所需Java测试插件 这里我个人使用的是免安装解压版除了要注意VsCode默认的插件安装位置是C:\用户\当前用户.vscode\extensions这一点外其它基本是可插拔开箱即用手动狗头[doge]不需要额外太多配置除非有一些特别的需求要配置环境等。 1.2 Fitten Code 下载并注册FittenCode 注册完马上可以使用 1.3 GitHub Copilot 开通GirHub Copilot CSDN-GitHubCopilot优秀参考文章 2. 使用测评 以下基于同一段代码分别使用 FittenCode 与 GitHub Copilot体验能力区别。 2.1 需求理解 代码准备 准备一个main方法。一个测试类用于验证代码是否正确。 需求 以下是一个顺序表 package cn.sharry.structure.linearlist;import cn.sharry.structure.util.GenericTypeChangeUtil;import java.util.Arrays; import java.util.List; import java.util.Objects;/*** 顺序表的实现* author Sharry* since 2023/9/16*/ public class SequenceTableT implements ISequenceTableT {/*** init length : 0*/public final int INIT_LENGTH 0;/*** hash code constant*/public final int HASH_TIMES 31;/*** array to store sequence data*/private Object [] elements;/*** this sequence tables length*/private int length;public SequenceTable(T[] elements) {this.elements elements;this.length elements.length;}public SequenceTable(int length) {this.elements new Object[length];this.length length;}public SequenceTable() {this.elements new Object[INIT_LENGTH];this.length INIT_LENGTH;}public SequenceTable(T[] elements, int length) {if(length elements.length){throw new ArrayIndexOutOfBoundsException();}this.elements elements;this.length length;}public Object[] getElements() {return elements;}public void setElements(Object[] elements) {this.elements elements;this.length elements.length;}public int getLength() {return length;}public void setLength(int length) {this.length length;}Overridepublic boolean equals(Object o) {if (this o) {return true;}if (!(o instanceof SequenceTable)) {return false;}SequenceTable? that (SequenceTable?) o;return getLength() that.getLength() Arrays.equals(getElements(), that.getElements());}Overridepublic int hashCode() {int result Objects.hash(getLength());result HASH_TIMES * result Arrays.hashCode(getElements());return result;}Overridepublic String toString() {return SequenceTable{ elements Arrays.toString(elements) , length length };}Overridepublic boolean isEmpty() {if (elements.length 0){return this.getLength() INIT_LENGTH || this.getElements() null;}for (Object element : elements) {if (null ! element) {return false;}}return true;}Overridepublic int size() {return getLength();}Overridepublic T get(int i) {if(i INIT_LENGTH || i length-1){throw new ArrayIndexOutOfBoundsException();}return GenericTypeChangeUtil.typeConversion(getElements()[i], getElements()[i].getClass());}Overridepublic boolean set(int i, T x) {if(isOutOfBounds(i)){throw new ArrayIndexOutOfBoundsException();}Object[] eArr getElements();Object e getElements()[i];if ( e null || !e.equals(x)) {eArr[i] x;setElements(eArr);return true;}return false;}Overridepublic int insert(int i, T x) {if(isOutOfBounds(i)){throw new ArrayIndexOutOfBoundsException();}Object[] resource getElements();Object[] target new Object[this.length1];if(i 0){System.arraycopy(resource,0,target,i1,resource.length);target[i] x;}else{System.arraycopy(resource,0,target,0,i);target[i] x;System.arraycopy(resource,i,target,i1,resource.length-i);}setElements(target);return i;}Overridepublic int insert(T x) {return insert(length-1,x);}Overridepublic T remove(int i) {if(isOutOfBounds(i)){throw new ArrayIndexOutOfBoundsException();}Object e getElements()[i];Object[] eArr getElements();eArr[i] null;setElements(eArr);return GenericTypeChangeUtil.typeConversion(e,e.getClass());}Overridepublic int search(T key) {Object[] eArr getElements();for (int i 0 ; i eArr.length ; i){boolean ifNull eArr[i] ! null eArr[i] key;if(ifNull || Objects.equals(eArr[i], key)){return i;}}return -1;}Overridepublic boolean contains(T key) {return search(key) ! -1;}Overridepublic int insertDifferent(T x) {if(contains(x)){return -1;}insert(x);return length-1;}Overridepublic T remove(T key) {T element;if (!contains(key)) {return null;} else {element GenericTypeChangeUtil.typeConversion(getElements()[search(key)],getElements()[search(key)].getClass());set(search(key), null);}return GenericTypeChangeUtil.typeConversion(element,element.getClass());}OverrideSuppressWarnings(unchecked)public boolean addAll(ListT list) {if (list null || list.size() 0){return false;}Object[] source getElements();Object [] tar new Object[this.getLength() list.size()];int tarLength tar.length;if (this.length 0) {System.arraycopy(source, 0, tar, 0, this.length);}for(int i this.length-1; i tarLength; i){tar[i] list.get(tarLength-i);}SequenceTableT ns new SequenceTableT((T[])tar,tarLength);setElements(ns.getElements());setLength(ns.length);return true;}private boolean isOutOfBounds(int i) {return i INIT_LENGTH || i length - 1;}}对该顺序表进行代码优化尽可能简洁 GitHub Copilot 显然稍微复杂的一些代码Copilot并不能理解其意思。这种情况不如暂时关一下Copilot。 Fitten Code 像模像样对上述代码 OverrideSuppressWarnings(unchecked)public boolean addAll(ListT list) {if (list null || list.size() 0){return false;}Object[] source getElements();Object [] tar new Object[this.getLength() list.size()];int tarLength tar.length;if (this.length 0) {System.arraycopy(source, 0, tar, 0, this.length);}for(int i this.length-1; i tarLength; i){tar[i] list.get(tarLength-i);}SequenceTableT ns new SequenceTableT((T[])tar,tarLength);setElements(ns.getElements());setLength(ns.length);return true;}这一段进行了重写看起来比Copilot更靠谱些甚至看起来确实优化了点代码。 因此这一part仅此需求的测试Fitten Code 胜。 至于更多的测试篇幅有限请读者自行发掘啦。 2.2 上下文理解 测试需求 在中间插入一段该线性表参数进行希尔排序 GitHub Copilot Fitten Code 上图结果不相上下其中Fitten Code生的甚至多了一些略不符合题意看起来是忘了上文的内容了。这一part 算是GitHub Copilot小优吧 至于更多的测试请读者自行发掘咯。 3. 总结 经过本次测试我个人对 Fitten Code 插件 与 GitHub Copilot 的比较体验结果 Fitten Code 优缺点 优点 免费某些业务理解比GitHub Copilot好一些更新更年轻 缺点 目前仅VSCode 1.84 以上版本能用。其它工具和平台里不能用对于不常用VSCode开发的程序猿不友好。目前一天一个版本几乎每天上号第一天就要点击更新略显麻烦 GitHub Copilot 优缺点 优点 多个工具里均可使用重复性代码生成能力很强减少程序猿重复性工作有GitHub数据投喂可获得非常多开源方案参考 缺点 贵学生包申请有条件限制有时略显笨拙生成的不是咱想要的还不如停掉 好啦个人对这两个AI编码助手的体验测评大概就是这些啦若您是VSCode忠实用户恭喜您有 GitHub Copilot 的平替方案啦甚至说对某些代码的理解更胜一筹。 当然这里也忠心祝愿国产AI助手能更上一层楼早日让国人用上性价比更高的国产AI助手 推荐链接 VS插件商城非十科技VSCode下载地址腾讯云社区-VSCode配置JAVA环境参考文章CSDN-GitHubCopilot优秀参考文章
http://www.pierceye.com/news/32377/

相关文章:

  • 大型门户网站源码对门户网站建设情况的报告
  • 深圳建设网站速成班长春网页推广有哪些公司
  • 网站单页在线网站开发员工保密协议
  • 南宁百度网站建设公司哪家好大连建设网网址
  • wp企业网站模板南县做网站推荐
  • wordpress uiseo查询软件
  • 如何查看网站跳出率极家装修怎么样啊
  • 安卓 网站整站下载google浏览器网页版
  • 自助公益网站建设著名网红公司开业
  • 如何免费搭建自己的网站0元购怎么在网站做
  • 南宁网站建设-中国互联宁波网络营销推广
  • 虚拟主机搭建网站网站备案中商城服务性质是什么
  • 电子商务网站建设论文wordpress 添加锚点
  • 北京网站优化服务seo排名优化哪里好
  • 淄博学校网站建设哪家好网站图片特效源码
  • 做网站用什么主机好成都网站设计定制
  • 网站建设的ci设计指的是什么样本之家登录网站
  • 南宁建站方案php自建网站
  • 做面包国外网站阿里云做网站的代码
  • 网站建设实施方案ppt中国十大物联网公司
  • 上海网站建设的意义建设银行手机银行登录网站
  • 公司网站二维码怎么做的企业网站建设应该注意什么事项问题
  • 网站建设接私活平台黄冈网站设计推广哪家好
  • 专业网站设计制合肥作视频制作软件哪个好用
  • 百度快照搜索引擎seo查询工具精准
  • 做网站别人输账号代码长春哪里有做网站的
  • wordpress多域名多站点量品定制怎么发展客户
  • 中英文的网站怎么建设北京做网站建设公司
  • 杭州九鸿科技网站开发有用unity做网站的吗
  • 学校网站开发价格简历表格 个人简历手机版