GitHub
快来分享你的内容吧~
- 2023-06-03·Java后端
- 2023-06-01·前端开发最近把半年来的各种积累的提问都回答了一下,有一种暑假开学前补作业的感觉。。。 有一些过于细节的技术我私聊了提问的同学,这类问题比较适合在开放社区提问,比如SegmentFault或者Stack Overflow。我希望尽量回答对更多读者有阅读价值的内容。 其中提问比较多的,就是“如何做项目”或者“如何有实践经验”。 很多人应该是看星球的项目来的,跟着教程去复刻一个项目是入门练习的好的方式,当完成这查看全文程序员鱼皮:文中的 dashboard 地址我好像没办法直接打开,但这个可以打开:https://github.com/GreptimeTeam/dashboard4640分享
- 2023-05-28·全栈开发最近,看到很多大佬分享 GitHub copilot chat ,据说能够让效率翻倍,抱着不相信,打假的心态我也弄一个,体验一下,结果真的很赞,下面分享使用 GitHub copilot chat 的过程 首先,我们需要先了解一下 GitHub copilot chat 是一个什么东西,GitHub Copilot 是一个AI驱动的代码完成工具,由 OpenAI 和 GitHub 联合开发。它利用查看全文luckySnail:忘记分享最重要的能力了 就是帮助写代码 你只需要写好注释 点击enter 就可以看AI帮你生成code3011分享
Git教程 | 第八节 远程仓库操作(下)
<html> <head></head> <body> <div class="content ql-editor"> <p>大家好,我是阿娟,今天给大家分享Git教程第八节:远程仓库相关操作(下)和代码提交相关操作</p> <p><br></p> <p><strong><br></strong></p> <p><strong>一、 代码提交</strong></p> <p><strong><br></strong></p> <p><br></p> <p>1、提交暂存区到仓库区</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git commit -m [提交信息] </div> </div> <p><br></p> <p>2、提交暂存区的指定文件到仓库区</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git commit [file1] [file2] ... -m [提交信息] </div> </div> <p><br></p> <p>3、提交工作区自上次commit之后的变化,直接到仓库区</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git commit -a </div> </div> <p><br></p> <p>4、使用一次新的commit,替代上一次提交</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git commit --amend -m [message] </div> <div class="ql-code-block"> #如果代码没有任何新变化,则可以用来改写上一次commit的提交信息 </div> </div> <p><br></p> <p>5、 重新做上一次commit,并包括指定文件的新变化</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git commit --amend [file1] [file2] ... </div> </div> <p><br></p> <p><strong><br></strong></p> <p><strong>二、 git pull</strong></p> <p><strong><br></strong></p> <p><br></p> <p>1、将远程分支拉取到指定本地分支</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git pull [远端仓库名] [远程分支]:[本地分支] </div> </div> <p><br></p> <p>2、将指定远程分支同步到当前本地分支</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git pull [远端仓库名] [远程分支] </div> </div> <p><br></p> <p>3、拉取所有远程分支的最新内容</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git pull </div> </div> <p><br></p> <p>git fetch 是将远程仓库的最新内容拉到本地,用户检查了以后决定是否合并到本地分支中</p> <p>而git pull 则是将远程仓库的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,产生的冲突需要手动解决。</p> <p><br></p> <p><br></p> <p><strong>三、 git push</strong></p> <p><strong><br></strong></p> <p><br></p> <p>1、上传本地指定分支到远程仓库</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push [远端仓库名] [本地分支] :[远程分支] </div> </div> <p><br></p> <p>2、如果本地分支名与远程分支名相同,则可以省略冒号</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push [远端仓库名] [本地分支] </div> </div> <p><br></p> <p>当前分支与远程分支之间已经关联,则本地分支和远程分支都可以省略</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push [远端仓库名] </div> </div> <p><br></p> <p>如果当前分支只有一个远程分支,那么远端仓库名也可以省略</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push </div> </div> <p><br></p> <p>当前分支与多个仓库存在关联关系,则可以使用-u 选项指定一个默认仓库</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push -u [指定远端仓库名] [本地分支] </div> </div> <p><br></p> <p>3、强行推送当前分支到远程仓库,即使有冲突</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push --force [远端仓库名] [本地分支] </div> </div> <p><br></p> <p>4、推送所有分支到远程仓库</p> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> git push --all [远端仓库名] </div> </div> <p><br></p> <p><br></p> <p><br></p> <p>以上就是今天的分享,谢谢你的阅读呀 ~~</p> <p><br></p> <p><br></p> </div> </body> </html>
一个Gin快速启动框架gin-init
<html> <head></head> <body> <div class="content ql-editor"> <p>仓库先放这:https://github.com/wawayes/gin-init</p> <p>好心人可以点个star. hh</p> <p>利用Gin开发一个Go Web项目,正因为它的轻量,如果是从0开始的话必然会导致很多库自己引,避免重复劳动,这个框架集成了gorm, redis, <strong>sessions</strong>+<strong>cookie</strong>+<strong>redis</strong>, <strong>viper</strong>, <strong>zap</strong>, <strong>elastic</strong>,还带上了sql方便一键go。</p> <p><br></p> <p>还会更新,使其更加完善。</p> <p><br></p> <p>shortcuts:</p> <p><br></p> <p>注解详细</p> <p></p> <p><br></p> <p></p> <p><br></p> <p>日志集成Zap:</p> <p>好的日志当然便是能够选择性决定输出到控制台/文件,以JSON/Console格式输出。</p> <p>配置文件一键即可修改,已经做好封装</p> <p></p> <p><br></p> </div> </body> </html>
快速构建go项目后端框架
<html> <head></head> <body> <div class="content ql-editor"> <p>星球里应该也有跟我一样的go友吧,想到鱼皮每次做项目都有一套给大家的java后端项目框架,我也给大家土家推荐一个go-gin快速搭建项目框架,作者文档也很详细</p> <h4><strong style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-size: 18px;"><a href="https://github.com/go-nunu/nunu" target="_blank">https://github.com/go-nunu/nunu</a></strong></h4> <p>https://github.com/go-nunu/nunu/blob/main/README_zh.md</p> <p><br></p> </div> </body> </html>
校长您好,请问如何更好的阅读G
校长您好,请问如何更好的阅读GitHub上别人的项目代码呢,自己阅读的时候感觉就是无从下手。
发现了一个flutter比较优质的学习仓库,推荐给大家:https://github.com/crazycodeboy/awesome-flutter-cn
我自己的springboot starter:WebInit!
<html> <head></head> <body> <div class="content ql-editor"> <p>来星球也有一个月了,收获也是很多。</p> <p>在看Yupi Api 项目时,受到鱼皮的启发,想着自己也写一个SpringBoot Starter,说干就干。</p> <p>WebInit 中集成了 Knief4j 接口文档,也借用了星球前几个项目一直在用的全局异常处理器和错误码,简化开发,一步到位,只需简单配置就能快速开启一个SpringBoot Web项目。</p> <p><strong>项目地址:</strong><a href="https://github.com/limincai/WebInit" target="_blank">https://github.com/limincai/WebInit</a>,希望路过的小伙伴给个Star!</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1654362608091836417/turncaao.jpeg"></p> <p><br></p> <p>今天也是尝试将WebInit发布到Maven中心仓库,照着网上的博客一步一步的配置,可是还是因为网络原因一直部署失败 ,希望有大佬可以帮忙解决下。</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1654362608091836417/ogc96eqn.jpeg"></p> </div> </body> </html>
年轻人的第一次github
<html> <head></head> <body> <div class="content ql-editor"> <p>最近把半年来的各种积累的提问都回答了一下,有一种暑假开学前补作业的感觉。。。</p> <p><br></p> <p>有一些过于细节的技术我私聊了提问的同学,这类问题比较适合在开放社区提问,比如SegmentFault或者Stack Overflow。我希望尽量回答对更多读者有阅读价值的内容。</p> <p><br></p> <p>其中提问比较多的,就是“如何做项目”或者“如何有实践经验”。</p> <p><br></p> <p>很多人应该是看星球的项目来的,跟着教程去复刻一个项目是入门练习的好的方式,当完成这个阶段以后,下一步可能就会有些迷茫。想自己做项目,不知道做什么好。有了想法,但是要从头做一个项目,能力又觉得不够。遇到问题,因为是自己原创的项目,可能还不好在互联网上找到解决办法,想找人问,也不知道找谁。</p> <p><br></p> <p>(是不是觉得我在你家装摄像头了)</p> <p><br></p> <p>如果我和你讲,有一种方式,可以很好的做技术实践,又会有人给你帮助,帮你看代码,解决问题,然后一不小心可能还能获得实习机会,想不想了解一下?</p> <p><br></p> <p><strong>那就是参与开源项目。</strong></p> <p><br></p> <p>这件事可以分几步走:</p> <p><br></p> <ol> <li data-list="ordered"><span class="ql-ui"></span>技术上如何给项目提PR</li> <li data-list="ordered"><span class="ql-ui"></span>如何找到合适的项目</li> <li data-list="ordered"><span class="ql-ui"></span>如何参与开源</li> </ol> <p><br></p> <p>先说第一步。</p> <p><br></p> <p>可能有些同学之前没接触过github和git,git是一种分布式的版本管理系统,而github是一个基于git建立的网站,git也被托管在github上,这个是<a href="https://github.com/git/git" target="_blank">项目地址</a></p> <p><br></p> <p>可以说,如果想要成为一个程序员,使用git是必要的技能。如果不习惯命令行的话,可以用sourceTree客户端,非常简单好用。</p> <p><br></p> <p>有了工具以后,如何使用这个工具呢?这时候我就要推荐一个神项目:Dress</p> <p><br></p> <p>可以看一下相关的<a href="https://zhuanlan.zhihu.com/p/55299832" target="_blank">文章</a>和<a href="https://www.bilibili.com/video/BV1ht411R7p8" target="_blank">视频</a></p> <p><br></p> <p>作者建立这个项目的初衷就是为了帮助新人学习如何给开源项目提交代码,十分建议有相关特长的同学可以尝试一下。</p> <p><br></p> <p>对了,原项目已经被关闭了,你们可以看这个<a href="https://github.com/Cute-Dress/Dress" target="_blank">项目</a></p> <p><br></p> <p>当你掌握了如何提交代码,下一步就如何选择项目了。</p> <p><br></p> <p>你完全可以找一些耳熟能详的项目,比如ant-design,大家应该都很熟悉。打开issue列表,选择“<a href="https://github.com/ant-design/ant-design/labels/good%20first%20issue" target="_blank">good first issue</a>”或者“help wanted”标签</p> <p><br></p> <p>很多项目都有这两个标签,前者是专门提供给首次使用github的同学,这些需求往往非常简单,简单到你可能领过一次就不好意思再领 了。后者会是正常难度,但是项目方因为种种原因,希望社区的同学能参与贡献。一般会是一些比较独立,描述清晰的需求。</p> <p><br></p> <p>比如<a href="https://github.com/ant-design/ant-design/issues/23369" target="_blank">这个issue</a>,就是一些翻译工作,甚至不需要写代码。</p> <p>我司的数据库项目也有<a href="https://github.com/GreptimeTeam/dashboard/issues/261" target="_blank">good first issue</a>,感觉只要改一行代码就可以呢。</p> <p><br></p> <p>这些good first issue就是开源项目提供给新人的很好的入门机会,而且在这个issue下面还可以和一线工程师沟通,当你提交代码以后,还会帮你做code review,这个是一定会有的步骤,他可能会指出你的代码中的问题,这时候需要你要配合完善代码。</p> <p><br></p> <p>一般来说,如果你可以解决两个help wanted,大概就意味着,你有做实习生的能力了,可以适时表达一下想要实习的机会。公司对于全职都会比较谨慎,但是实习相对好很多,大厂可能常年都有很多实习岗。像我们这个小公司,目前也<strong>有Go/Rust的实习岗位开放</strong>,欢迎勾搭。</p> <p><br></p> <p>目前前端没有HC,不过我们的<a href="https://github.com/GreptimeTeam/dashboard" target="_blank">Dashboard</a>也欢迎大家参与,我这两天挂一些比较简单的需求可以给大家玩一下。<strong>星球的同学提PR被合并的话,可以寄个点周边</strong>啥的,明天我去找市场的小姐姐申请一下,应该是稳的。</p> <p><br></p> <p><a href="https://goodfirstissue.dev/" target="_blank">这个网站</a>有列出来一些good first issue,不过分类做的不是很好。如果感兴趣的同学比较多,周末我整理一些国内项目的good first issue给大家。</p> <p><br></p> <p><br></p> <p><br></p> <p><br></p> </div> </body> </html>
HELLO,大家好 我是 余白 今天给大家介绍一个技巧:Github国内镜像网址kgithub,解决Github无法访问和访问速度慢的问题! 使用方法:只需要在github项目地址的域名前面加一个”k”字母即可。 eg: github.com → kgithub.com 【 https://kgithub.com】
发布项目到Maven中央仓库,封装了星球项目的全局异常处理器,错误码,和响应类以及Knife4j接口文档
<html> <head></head> <body> <div class="content ql-editor"> <p>前几天有个突发奇想:<span style="font-size: 15px;">每次创建Web项目都要重新写或者复制全局异常处理器,错误码,和响应类等等,很麻烦,作为新时代的我自然不愿意每次都做这么繁琐的事情。干脆直接搞一个starter,说干就干,然后就有了这个教程也是踩了一些坑,下面是我能够跑成功的示例,希望能够帮助到大家。然后借用鱼聪明起了名字和简介,甚至README文档都是ai生成的。</span></p> <p><span style="font-size: 15px;">目前在Github开源了</span></p> <p><span style="background-color: rgb(255, 255, 255); font-size: 15px; color: rgb(47, 48, 52);">项目地址:</span><a href="https://github.com/qimu666/EazyWeb" target="_blank">qimu666/EazyWeb: 快速构建Web应用,整合Knife4j接口文档,自定义错误码和全局异常处理器,一切尽在EazyWeb。 (</a><a href="http://github.com" target="_blank">github.com</a><a href="https://github.com/qimu666/EazyWeb" target="_blank">)</a></p> <p><span style="background-color: rgb(255, 255, 255); font-size: 15px; color: rgb(47, 48, 52);">大家也可以使用我的封装的starter来开发自己的项目,只需要在项目中引用坐标,然后配置匹配策略和扫描包路径就可以使用了</span></p> <div class="ql-code-block-container"> <div class="ql-code-block"><span class="ql-token hljs-tag"><dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>icu.qimuu<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>EazyWeb<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>0.0.1<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"><span class="ql-token hljs-tag"></dependency></span> </div> </div> <h4>示例配置:</h4> <p>简略配置:</p> <div class="ql-code-block-container"> <div class="ql-code-block"> knife4j: </div> <div class="ql-code-block"> config: </div> <div class="ql-code-block"> scan-path: com.qimuu.demo.controller </div> <div class="ql-code-block"> spring: </div> <div class="ql-code-block"> mvc: </div> <div class="ql-code-block"> path match: </div> <div class="ql-code-block"> matching-strategy: ant_path_matcher </div> </div> <p>全量配置:</p> <div class="ql-code-block-container"> <div class="ql-code-block"> knife4j: </div> <div class="ql-code-block"> config: </div> <div class="ql-code-block"> name: Author </div> <div class="ql-code-block"> email: xxx </div> <div class="ql-code-block"> version: API version </div> <div class="ql-code-block"> title: API document </div> <div class="ql-code-block"> description: API document description </div> <div class="ql-code-block"> scan-path: com.qimuu.demo.controller </div> <div class="ql-code-block"> spring: </div> <div class="ql-code-block"> mvc: </div> <div class="ql-code-block"> path match: </div> <div class="ql-code-block"> matching-strategy: ant_path_matcher </div> </div> <h2><br></h2> <h2><strong>注册账号和生成GPG生成密钥教程</strong></h2> <p><span style="color: rgb(236, 40, 52);">主要看注册账号和生成GPG密匙部分就行了</span><span style="color: inherit;">,出现问题可以先在这两个地方找</span></p> <p><a href="https://blog.csdn.net/weixin_38096157/article/details/88951278" target="_blank" style="color: rgb(65, 131, 196);">gpg加密发布jar包到maven中央仓库详细过程以及踩的坑_佛系猿秦大昊的博客-CSDN博客</a></p> <p><a href="https://juejin.cn/post/7135457823055413278#heading-29" target="_blank" style="color: rgb(65, 131, 196);">来开源吧!发布开源组件到 MavenCentral 仓库超详细攻略 - 掘金 (juejin.cn)</a></p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">1. 修改Maven配置文件</strong></h2> <p><br></p> <p>全局配置文件添加</p> <div class="ql-code-block-container"> <div class="ql-code-block"> <span class="ql-token hljs-tag"><server></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><id></span>sonatype-qimu<span class="ql-token hljs-tag"></id></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><username></span>sonatype账号<span class="ql-token hljs-tag"></username></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><password></span>密码<span class="ql-token hljs-tag"></password></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></server></span> </div> </div> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">2. 修改项目pom,xml</strong></h2> <p><br></p> <p>在Maven项目的pom.xml中添加licenses、developers、scm、profiles、plugins、distributionManagement等内容,示例:</p> <div class="ql-code-block-container"> <div class="ql-code-block"><span class="ql-token hljs-meta"><?xml version="1.0" encoding="UTF-8"?></span> </div> <div class="ql-code-block"><span class="ql-token hljs-tag"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span> </div> <div class="ql-code-block"><span class="ql-token hljs-tag"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><modelVersion></span>4.0.0<span class="ql-token hljs-tag"></modelVersion></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><parent></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.springframework.boot<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>spring-boot-starter-parent<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>2.7.0<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><relativePath/></span> <span class="ql-token hljs-comment"><!-- lookup parent from repository --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></parent></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>icu.qimuu<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>EazyWeb<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>0.0.1<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><name></span>EazyWeb<span class="ql-token hljs-tag"></name></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><description></span>EazyWeb<span class="ql-token hljs-tag"></description></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><properties></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><maven.compiler.source></span>1.8<span class="ql-token hljs-tag"></maven.compiler.source></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><project.build.sourceEncoding></span>UTF-8<span class="ql-token hljs-tag"></project.build.sourceEncoding></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></properties></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><licenses></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><license></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><name></span>The Apache Software License, Version 2.0<span class="ql-token hljs-tag"></name></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><url></span>http://www.apache.org/licenses/LICENSE-2.0.txt<span class="ql-token hljs-tag"></url></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></license></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></licenses></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- 根据自己实际情况填写 --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><developers></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><developer></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><name></span>qimu<span class="ql-token hljs-tag"></name></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><email></span>2483482026@qq.com<span class="ql-token hljs-tag"></email></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></developer></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></developers></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- 与申请issue时填写的SCM保持一致 --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><scm></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><connection></span>https://github.com/qimu666/EazyWeb.git<span class="ql-token hljs-tag"></connection></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><developerConnection></span>https://github.com/qimu666/EazyWeb.git<span class="ql-token hljs-tag"></developerConnection></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><url></span>https://github.com/qimu666/EazyWeb<span class="ql-token hljs-tag"></url></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></scm></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><profiles></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><profile></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- 这个id就是打包时的 -P 参数 --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><id></span>release<span class="ql-token hljs-tag"></id></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><build></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><plugins></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- Source插件--></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><plugin></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.apache.maven.plugins<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>maven-source-plugin<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>2.2.1<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><executions></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><execution></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><phase></span>package<span class="ql-token hljs-tag"></phase></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><goals></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><goal></span>jar-no-fork<span class="ql-token hljs-tag"></goal></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></goals></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></execution></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></executions></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></plugin></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- Javadoc插件 --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><plugin></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.apache.maven.plugins<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>maven-javadoc-plugin<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>2.9.1<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><executions></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><execution></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><phase></span>package<span class="ql-token hljs-tag"></phase></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><goals></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><goal></span>jar<span class="ql-token hljs-tag"></goal></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></goals></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- -Xdoclint:none 是为了避免生成apidoc的时候检查过于严格而报错--></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><configuration></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><additionalparam></span>-Xdoclint:none<span class="ql-token hljs-tag"></additionalparam></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></configuration></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></execution></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></executions></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></plugin></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- GPG加密插件 --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><plugin></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.apache.maven.plugins<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>maven-gpg-plugin<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>1.6<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><executions></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><execution></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><phase></span>verify<span class="ql-token hljs-tag"></phase></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><goals></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><goal></span>sign<span class="ql-token hljs-tag"></goal></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></goals></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></execution></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></executions></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></plugin></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></plugins></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></build></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-comment"><!-- snapshotRepository与repository的id应与setting.xml中添加的server的id一致 --></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><distributionManagement></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><snapshotRepository></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><id></span>sonatype-qimu<span class="ql-token hljs-tag"></id></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><url></span>https://s01.oss.sonatype.org/content/repositories/snapshots/<span class="ql-token hljs-tag"></url></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></snapshotRepository></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><repository></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><id></span>sonatype-qimu<span class="ql-token hljs-tag"></id></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><url></span>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/<span class="ql-token hljs-tag"></url></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></repository></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></distributionManagement></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></profile></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></profiles></span> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><dependencies></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.springframework.boot<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>spring-boot-starter-web<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.springframework.boot<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>spring-boot-configuration-processor<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><optional></span>true<span class="ql-token hljs-tag"></optional></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>com.github.xiaoymin<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>knife4j-spring-boot-starter<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><version></span>3.0.3<span class="ql-token hljs-tag"></version></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.projectlombok<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>lombok<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><optional></span>true<span class="ql-token hljs-tag"></optional></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><groupId></span>org.springframework.boot<span class="ql-token hljs-tag"></groupId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><artifactId></span>spring-boot-starter-test<span class="ql-token hljs-tag"></artifactId></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"><scope></span>test<span class="ql-token hljs-tag"></scope></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></dependency></span> </div> <div class="ql-code-block"> <span class="ql-token hljs-tag"></dependencies></span> </div> <div class="ql-code-block"><span class="ql-token hljs-tag"></project></span> </div> </div> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">3. 控制台执行命令</strong></h2> <p><br></p> <div class="ql-code-block-container"> <div class="ql-code-block"> mvn clean deploy -P release </div> </div> <p><br></p> </div> </body> </html>
GitHub copilot chat 体验
<html> <head></head> <body> <div class="content ql-editor"> <p>最近,看到很多大佬分享 GitHub copilot chat ,据说能够让效率翻倍,抱着不相信,打假的心态我也弄一个,体验一下,结果真的很赞,下面分享使用 GitHub copilot chat 的过程</p> <p><br></p> <p> 首先,我们需要先了解一下 GitHub copilot chat 是一个什么东西,GitHub Copilot 是一个AI驱动的代码完成工具,由 OpenAI 和 GitHub 联合开发。它利用机器学习模型预测和生成代码,帮助开发者快速编写代码。而GitHub Copilot Chat 则是 GitHub Copilot 的扩展,它将 AI 编程助手融入到对话中,帮助解答编程问题,提供代码示例,甚至可以对代码进行审查和修正。这两种工具都是开发者的有效助手,帮助提升编程效率和代码质量。下面,我们需要做这几件事情👇🏻👇🏻</p> <p><br></p> <ol> <li data-list="ordered"><span class="ql-ui"></span>你必须购买了 GitHub copilot ,因为 chat 是基于它的,这个大家可以和我一样去某宝搜索,很便宜(一杯奶茶),我相信这绝对是你2023最具性价比的投资</li> <li data-list="ordered"><span class="ql-ui"></span>当你购买成功后,就可以去 VSCode 左下角登录一下你购买服务的账号,然后在插件下载中心下载 GitHub copilot ,体验一下 GitHub copilot 的能力(我的代码产出 = chatGPT + GitHub Copilot),</li> </ol> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/g6fsfgjq.jpeg"></p> <p>3. 申请加入 waitlist :<u style="color: rgb(86, 120, 149);"><a href="https://github.com/github-copilot/chat_waitlist_signup/join" target="_blank">https://github.com/github-copilot/chat_waitlist_signup/join</a></u> 当你加入 list 后,你再次进入这个网址你可以看到 👇🏻 还有,关注你留的邮箱,通过后会通过邮箱提醒你(很快,最多两个工作日)</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/g3k3mo5z.jpeg"> 4. 下载我们的 VSCode insiders,因为只有在这里才能体验(坑了我好多时间):<u style="color: rgb(86, 120, 149);"><a href="https://code.visualstudio.com/insiders" target="_blank">https://code.visualstudio.com/insiders/</a></u></p> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/erqmsclo.jpeg"></p> <p>5. 在我们刚刚下载的VSCode insiders中 下载一个插件GitHub Copilot Nightly:<u style="color: rgb(86, 120, 149);"><a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-nightly" target="_blank">https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-nightly</a></u> 你会看到 👇🏻</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/6g1pbhw5.jpeg"></p> <p> 如果没有看到,不要慌,先看下自己编辑器是否登录上了 GitHub ,看下右下角的弹窗是不是有一个 GitHub copilot chat 的提示让你登录 GitHub,如果这两个都完成了,重启一下,应该就能看到我们心心念念的 chat页面了</p> <p><br></p> <p><br></p> <h3 class="ql-align-center"><strong style="color: black;">体验 AI 的强大</strong></h3> <p><br></p> <p><br></p> <p>先看下,官方对它的定位,是这样描述的:我是你的副驾驶,我是来帮你更快完成任务的。我可以识别问题,解释甚至改进代码。您可以问一些一般性的问题,但我真正擅长的是帮助您编写代码。例如:</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>为我的代码生成单元测试</li> <li data-list="bullet"><span class="ql-ui"></span>解释选定的代码</li> <li data-list="bullet"><span class="ql-ui"></span>建议,修复我代码中的错误</li> </ol> <p> 如果你想了解更多关于我的能力和局限性,请查看副驾驶文档:<u style="color: rgb(86, 120, 149);"><a href="https://docs.github.com/en/early-access/copilot/github-copilot-chat-transparency-note" target="_blank">https://docs.github.com/en/early-access/copilot/github-copilot-chat-transparency-note</a></u>。最后它还鸡贼的进行了甩锅,我是由人工智能驱动的,所以意外和错误是可能的。不过也给我们程序员一点面子,要是不出错,那程序员不是要消失了是吧,我们一个一个功能来体验</p> <p><br></p> <p><br></p> <h4><strong style="color: black; font-size: 18px;">为我的代码生成单元测试</strong></h4> <p><br></p> <p><br></p> <p>我先选中左侧我的函数,然后使用 command + i (windows 是ctrl + i)</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/84nf5z7j.jpeg"></p> <p><br></p> <p>这里我的 prompt 是 /test Generate tests for the selectd code with Mocha 这里有两个注意事项,</p> <ol> <li data-list="ordered"><span class="ql-ui"></span>我使用了 GitHub copilot chat 提供的 /test 关键字,用于生成单元测试代码</li> <li data-list="ordered"><span class="ql-ui"></span>我在末尾添加了 生成的测试代码使用的框架 Mocha</li> </ol> <p>我们可以看到右侧就为我们生成了对应的单元测试代码,这里我们没有安装对应的单元测试库,所以就报错了,兄弟们,帮我看看它写的对不对?(我觉得应该是靠谱的)</p> <p><br></p> <p><br></p> <h4 class="ql-align-center"><strong style="color: black; font-size: 18px;">解释选定的代码</strong></h4> <p><br></p> <p><br></p> <p><span style="font-size: 14px; color: black;">逐步解释选中代码的原理</span></p> <p>我依然使用 command + i 然后 prompt 就是它提供的 /explain</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/yqdsesvf.jpeg"></p> <p><br></p> <p><br></p> <p><br></p> <h4 class="ql-align-center"><strong style="color: black; font-size: 18px;">建议,修复我代码中的错误</strong></h4> <p><br></p> <p><br></p> <p>错误代码:<img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/xoyequt4.jpeg"></p> <p>这里,如果执行的话,会发现它并没有检测出来 hooks 写法的错误,这也很好理解,因为它不知道这段代码的上下文,我这样写 prompt 后,就好了</p> <p><img src="https://pic.code-nav.cn/planet_post_image/1619930914211520514/6p6hen9u.jpeg"></p> <p><br></p> <p><br></p> <p><br></p> <h3 class="ql-align-center"><strong style="color: black;">其他功能</strong></h3> <p><br></p> <p><br></p> <p><br></p> <p><br></p> <ol> <li data-list="ordered"><span class="ql-ui"></span>/ ext :询问VS Code扩展开发。</li> <li data-list="ordered"><span class="ql-ui"></span>/fix:修复针对所选代码中的问题提出修复建议。</li> <li data-list="ordered"><span class="ql-ui"></span>/help :帮助关于 GitHub Copilot 的一般帮助</li> <li data-list="ordered"><span class="ql-ui"></span>/vscode:关于 VSCode 的问题</li> <li data-list="ordered"><span class="ql-ui"></span>/clear:清空当前会话</li> </ol> <p><br></p> <p><br></p> <h3 class="ql-align-center"><strong style="color: black;">使用体验总结</strong></h3> <p><br></p> <ol> <li data-list="ordered"><span class="ql-ui"></span>在左侧聊天的时候,它真的太懂程序员的懒了,它会自动预测下一个问题?这真的很智能</li> <li data-list="ordered"><span class="ql-ui"></span>它最大的好处就是和编辑器完美融合,使用体验非常 nice,以后再也不用切换了</li> <li data-list="ordered"><span class="ql-ui"></span>当我们在读一些源码的时候,我觉得 /explain真的太强大了吧,以后再也不怕看源码了</li> <li data-list="ordered"><span class="ql-ui"></span>把它放在编辑器中,不代表它不能做其他事情,你完全可以把它当做一个chatGPT 3.5来用,嗯??那以后上班玩 chatGPT 再也不怕被发现了,</li> <li data-list="ordered"><span class="ql-ui"></span>当我们写完代码后,如果有很复杂的业务逻辑,很可能有一些没有测试出的 bug,我们可以直接选中代码去询问:“这段代码有什么改进的地方吗?”,“这段代码需要重构吗?”</li> <li data-list="ordered"><span class="ql-ui"></span>我现在,当我们把我们的工作流程化了,我们完全可以使用 AI 来帮我们完成任务,例如:我们最常写的crud,如果代码够通用,我们写新的 crud 是不是就完全可以交给 AI,不像我们自己写,还有可能 复制粘贴错误</li> <li data-list="ordered"><span class="ql-ui"></span>我们还可以问它我们在实现一些之前没有实现过的场景,怎么做,让我们写出更加健壮,可读性强的代码,因为我觉得它在学习了 GitHub 上那么多优秀的开源库后,它提供的基本上都是最佳实践,我们只需要写出更好的 prompt 即可</li> </ol> <p><br></p> <p> 最后,我还发现了一个宝藏,那就是 GitHub Copilot Voice :,我已经加入waitlist,以后写代码,可能都不需要键盘了,这真的泰裤辣!</p> <p><br></p> <p><br></p> </div> </body> </html>


