【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

大家好 我是寸铁👊
总结了一篇Windows11安装go-zero代码生成工具goctl的文章✨
喜欢的小伙伴可以点点关注 💝

goctl介绍

背景:goctl 的最早功能是为了解决 GRPC 内网调试问题,大约是在 2019 年,在我们的生产环境中,rpc 是内网隔离的,不可通过外网访问,为了快速去 mock 一些线上 RPC client 的请求,就简单的实现了第一版本的代码生成,主要目的是去访问 RPC Server 做一些调试。

goctlgo-zero 的内置脚手架,是提升开发效率的一大利器,可以一键生成代码、文档、部署 k8s yamldockerfile 等。

goctl作用

  • 降低沟通成本

沟通,是团队协作进行信息交换的一种形式,沟通的方式有很多种,会议沟通、文档沟通、聊天交流,相信不管是哪种方式,沟通都是团队中最难的一个环节,会议沟通需要占用大量时间,动则半小时起步,文档沟通同样,也会占据大量时间去构思和编写大篇幅的文档,最后可能还没表达出预期目标,线上聊天,需要双方都在线上才能进行信息交换,当然我们这里沟通交换的信息更多是指开发中的一些内容,如接口信息、部署信息等。

  • 降低团队耦合

有了沟通,那么团队之间的协作的耦合是避免不了的,例如:在前后端开发中,最大的耦合是接口的耦合,前端完成了规定 UI 绘制后,需要等待后端的接口部署到对应环境才能实现功能的调试,在此期间,前端的团队资源就会大大浪费,由此还会导致项目的延期等问题。

  • 提高开发效率

除了沟通成本和团队耦合以外,每个团队在进行项目开发时也有很多时间是在做重复的工作,例如:我们在开发一个新的功能时,需要去定义接口,编写接口文档,编码准备工作,业务开发,model 文件,编写 Dockerfile 文件,编写 k8s yaml 文件,在这些上面我们可以在每个环节上都有提升的空间,让用户将真正的时间集中在业务开发上。

  • 降低错误率

在之前的开发实践中,经常会出现grpc server实现不完全的问题,grpc server 实现类经常会出现编译不过的情况;除此之外,数据库查询层代码开发,sql 语句的编写多参,少参,参数错位,在编译过程中很难发现,一般可能到 QA 环节才能发现,更甚者会导致线上问题。


goctl这么强大的开发工具,马上用起来,先把他安装好,怎么快速安装,寸铁手把手带你安装!


goctl安装

Step1

命令行下查看一下当前的go版本
在这里插入图片描述


Step2

命令行下安装goctl
输入下面命令:

go install github.com/zeromicro/go-zero/tools/goctl@latest

如果出现如下情况:
在这里插入图片描述


说明是安装goctl的代理没有开启,开启一下代理即可。

go env -w GOPROXY=https://goproxy.cn,direct

命令行下输入如下命令:
在这里插入图片描述


接着再次输入如下命令:

go install github.com/zeromicro/go-zero/tools/goctl@latest

会出现下面的结果:
代表正常下载成功

在这里插入图片描述

Step3

测试一下安装是否成功
在命令行中输入goctl
出现如下的结果,不要慌,寸铁带你解决这个问题!
在这里插入图片描述

方法1

  • 先把当前的命令行窗口关掉,再打开一个新的命令行窗口。
    如果说还是会出现如下的结果,则说明需要配置环境变量
    在这里插入图片描述

方法2

配置环境变量
先找到对应存放goctl的文件位置
我这里使用的是Everything软件去查找对应的位置

在这里插入图片描述


步骤1

右键点击打开路径

在这里插入图片描述


步骤2

之后就是进入到文件所在的路径位置,双击上方路径框,复制当前的路径即可。
在这里插入图片描述

步骤3
  • 复制完后开始找到配置环境变量的地方
    在这里插入图片描述

  • 找到系统变量的Path

在这里插入图片描述


  • 接着点击新建,把复制的路径粘贴环境变量中,点击确定即可
    在这里插入图片描述

这一步的作用是让计算机系统可以直接在命令行窗口中寻找到路径,从而执行相关的命令,便于提高开发者的效率,不然每次都需要去安装的位置运行下载的命令。

Step4

接着继续在命令行窗口中输入goctl

显示如下界面,说明环境变量配置完毕!
在这里插入图片描述

再查看一下goctl 的版本
在这里插入图片描述

至此,goctl 安装完毕!

protoc安装

一键式安装:
只需在命令行窗口中输入如下命令:

goctl env check --install --verbose --force

运行结果如下:
在这里插入图片描述


安装完毕后,bin 文件夹下会出现可执行文件如下:

在这里插入图片描述


安装go-zero

步骤1

先初始化go mod
初始化命令如下

go mod init <文件夹名字>

结果如下:
在这里插入图片描述


步骤2

开启GO111MODULE 和开启依赖代理
在这里插入图片描述


步骤3

安装go-zero
命令如下:

go get -u github.com/zeromicro/go-zero@latest

运行结果如下:说明安装成功!
在这里插入图片描述


安装成功后,会在go.mod 文件中生成对应的依赖!
在这里插入图片描述

至此,goctl、protoc、go-zero安装完毕!


看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode:1768. 交替合并字符串(python3解法)

难度&#xff1a;简单 给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1&#xff1a; 输入&#xff1a;w…

一些反序列化总结

1 反序列化漏洞原理 如果反序列化的内容就是那串字符串&#xff0c;是用户可以控制的&#xff08;即变量的值&#xff09;&#xff0c;且后台不正当的使用了PHP中的魔法函数&#xff0c;就会导致反序列化漏洞&#xff0c;可以执行任意命令。Java 序列化指 Java 对象转换为字节序…

迷人的数据结构:揭秘数组和链表的不同

数据结构中的数组和链表的区别 一、简介二、数组的特点和特性三、链表的特点和特性四、数组和链表的对比五、数组和链表的代码实现六、总结 一、简介 数据结构是组织和存储数据的方式&#xff0c;直接影响着程序性能、内存利用和资源管理等关键方面。 数据结构提供了各种方法来…

如何使用react框架进行两个html页面的切换?

如何使用react框架进行两个html页面的切换? 项目背景首先是古老的做法login.htmlindex.html 正文->react框架如何设置两个页面的跳转?配置react框架的环境react框架如何实现两个页面的跳转? 项目背景 古老的html页面跳转的做法无法在react框架中直接适配,所以非常有必要…

代码随想录算法刷题训练营day16

代码随想录算法刷题训练营day16&#xff1a;LeetCode(104)二叉树的最大深度 、LeetCode(559)n叉树的最大深度、LeetCode(111)二叉树的最小深度、LeetCode(222)完全二叉树的节点个数 LeetCode(104)二叉树的最大深度 题目 代码 /*** Definition for a binary tree node.* publ…

NC开发客户端(前端)连接启动失败can‘t connect to server, please wait

效果图 解决方法 IP地址和端口要对应 1-IP地址中间启动&#xff0c;肯定是这个127.0.0.1 2-端口号&#xff0c;要对应中间件启动在控制台输出的端口 或者是在home目录-》bin-》sysConfig.bat这里面的服务器&#xff0c; 里面可以看到对应启动ip地址和端口

一天吃透面试八股文

内容摘自我的学习网站&#xff1a;topjavaer.cn 分享50道Java并发高频面试题。 线程池 线程池&#xff1a;一个管理线程的池子。 为什么平时都是使用线程池创建线程&#xff0c;直接new一个线程不好吗&#xff1f; 嗯&#xff0c;手动创建线程有两个缺点 不受控风险频繁创…

include文件包含

include 文件包含利用日志文件什么是日志文件 之所以会burp抓包上传就可以成功的原因&#xff0c;是因为burp可以绕过url编码&#xff0c;导致写入日志文件中的代码没有进行编码&#xff0c;可以直接解析成php文件 声明&#xff1a;其中图片并非本人实操&#xff0c;而是直接截…

java生成验证码工具类,java生成图片验证码

java生成验证码工具类&#xff0c;java生成图片验证码 java生成验证码工具类&#xff0c;java生成图片验证码&#xff0c;java生成彩色图片验证码&#xff0c;带干扰线验证码。 调用结果&#xff1a; 工具类调用&#xff1a; GetMapping("/validateCode")public vo…

Qt项目文件以及对象树

"在哪里走散&#xff0c;你都会找到我~" 前篇&#xff0c;我们仅仅对Qt创建了第一个简单的项目。相比于使用其他IDE创建工程项目&#xff0c;Qt会为自动创建诸如&#xff1a;.pro、.h\.cpp、.iu等文件&#xff0c;这些文件到底是什么&#xff1f;我们在使用Qt时 应该…

机器人顶会IROS,ICRA论文模板下载及投稿须知,以及机器人各大会议查询

一、背景 机器人方向&#xff0c;不止期刊TRO&#xff0c;TASE&#xff0c;RAM&#xff0c;RAL上的成果被认可&#xff0c;机器人顶会上的成果也是非常好的&#xff0c;一般来说一篇机器人顶会顶一篇trans。当决定要写一篇IROS论文时&#xff0c;结果IROS论文模板和投稿须知找…

Spring boot + Azure OpenAI 服务 1.使用 GPT-35-Turbo

Azure OpenAI 服务使用 GPT-35-Turbo 先决条件 maven 注意 beta.6 版本 <dependency><groupId>com.azure</groupId><artifactId>azure-ai-openai</artifactId><version>1.0.0-beta.6</version></dependency>问答工具类 pack…