温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Windows中go-zero如何使用

发布时间:2021-08-13 13:44:41 阅读:276 作者:Leah 栏目:编程语言
GO开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

本篇文章为大家展示了Windows中go-zero如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

go语言环境搭建

配置GO语言环境

新增go的代理

GOPROXY=https://goproxy.io,direct,https://mirrors.aliyun.com/goproxy/,https://goproxy.cn,https://athens.azurefd.net,https://gonexus.dev Windows中go-zero如何使用

设置环境变量

环境变量path中添加 %GOROOT%\bin;%GOPATH%\bin Windows中go-zero如何使用

在vscode的配置

安装插件 Windows中go-zero如何使用

关键是go语言环境在vscode的配置,如下:

{
    "go.goroot""D:\\go",
    "go.gopath""D:\\go_project",
    "go.inferGopath"false,
    "go.toolsGopath""D:\\go_project",

    "window.zoomLevel"0,
    "git.autofetch"true,
    "terminal.integrated.shell.windows""powershell.exe",	// 也可以使用 cmd.exe
    "workbench.colorTheme""Monokai Pro (Filter Machine)",
    "workbench.iconTheme""Monokai Pro (Filter Machine) Icons",
    "editor.renderControlCharacters"false,
    "editor.snippetSuggestions""top",
    "editor.suggest.snippetsPreventQuickSuggestions"true,
    "breadcrumbs.enabled"true,
    "terminal.explorerKind""external",
    "editor.cursorStyle""block",
    "editor.links"false,
    "editor.mouseWheelZoom"true,
    "editor.renderLineHighlight""all",
    "editor.suggest.shareSuggestSelections"true,
    "outline.icons"true,
    "search.showLineNumbers"true,
    "search.smartCase"true,

    // package 查找模式
    "go.gocodePackageLookupMode""go",
    "go.gotoSymbol.includeGoroot"true,
    "go.gotoSymbol.includeImports"true,

    // build 相关
    "go.buildOnSave""off",
    "go.gocodeAutoBuild"true,
    "go.installDependenciesWhenBuilding"true,
    "go.buildFlags": [],
    "go.buildTags""",
    "go.coverOnSingleTest"true,

    "go.useCodeSnippetsOnFunctionSuggest"true,
    "go.useCodeSnippetsOnFunctionSuggestWithoutType"true,

    "go.docsTool""guru",
    "go.formatTool""goimports",
    "go.lintTool""golangci-lint",
    "go.lintOnSave""package",
    "go.lintFlags": [
        "--fast"
    ],
    "go.formatFlags": [],
    "go.vetFlags": [],
    "go.vetOnSave""package",
    "go.generateTestsFlags": [],

    "go.liveErrors": {
        "enabled"true,
        "delay"500
    },
    "go.gocodeFlags": [
        "-builtin",
        "-ignore-case",
        "-unimported-packages"
    ],
    "go.enableCodeLens": {
        "references"true,
        "runtest"true
    },
    "go.delveConfig": {
        "dlvLoadConfig": {
            "followPointers"true,
            "maxVariableRecurse"1,
            "maxStringLen"64,
            "maxArrayValues"64,
            "maxStructFields"-1
        },
        "apiVersion"2,
        "showGlobalVariables"true
    },
    "go.editorContextMenuCommands": {
        "toggleTestFile"true,
        "addTags"true,
        "removeTags"true,
        "testAtCursor"true,
        "testFile"true,
        "testPackage"true,
        "generateTestForFunction"true,
        "generateTestForFile"true,
        "generateTestForPackage"true,
        "addImport"true,
        "testCoverage"true,
        "playground"true,
        "debugTestAtCursor"true
    },
    "go.playground": {
        "openbrowser"false,
        "share"false,
        "run"false
    },
    "go.addTags": {
        "tags""json",
        "options""json=omitempty",
        "promptForTags"true,
        "transform""snakecase"
    },
    "go.removeTags": {
        "tags""",
        "options""",
        "promptForTags"false
    },
    "[go]": {
        "editor.codeActionsOnSave": {
            "source.organizeImports"true
        },
    },
    "go.alternateTools": {
        "go-langserver""gopls",
    },
    "go.useLanguageServer"false,
    "go.languageServerFlags": [],
    "go.languageServerExperimentalFeatures": {
        "format"true,
        "autoComplete"true,
        "rename"true,
        "goToDefinition"true,
        "hover"true,
        "signatureHelp"true,
        "goToTypeDefinition"true,
        "goToImplementation"true,
        "documentSymbols"true,
        "workspaceSymbols"true,
        "findReferences"true,
        "diagnostics"false
    }
}

参考链接:https://www.cnblogs.com/chnmig/p/10796316.html

克隆go-zero

github地址:https://github.com/tal-tech/go-zero

学习视频地址:https://talkgo.org/t/topic/729

语雀文档资料:https://www.yuque.com/tal-tech/go-zero/tdsgkg

Windows中go-zero如何使用

玩goctl工具

goctl是go-zero微服务框架下的代码生成工具,其可以快速提升开发效率,让开发人员将时间重点放在业务coding上……

查询很多资料都不说的,不清晰,总是报command not found: goctl错误。

我也是将goctl工具安装到 $GOPATH/bin 目录下

Windows中go-zero如何使用?x-oss-

环境变量也配置了,最后发现,所有网上博客都没有说,把 $GOPATH/bin,加入系统环境path变量。加入以后,重启电脑,就可以正常使用goctl工具。

Windows中go-zero如何使用

接下来,就是体验goctl工具。

体验goctl工具

C:\Users\domin>d:

D:\>cd D:\go-learn

D:\go-learn>goctl api new greet
[32mDone.[0m

D:\go-learn>cd greet

D:\go-learn\greet>go mod init
go mod init: go.mod already exists

D:\go-learn\greet>go mod tidy
go: finding module for package github.com/tal-tech/go-zero/core/logx
go: finding module for package github.com/tal-tech/go-zero/rest
go: finding module for package github.com/tal-tech/go-zero/rest/httpx
go: finding module for package github.com/tal-tech/go-zero/core/conf
go: found github.com/tal-tech/go-zero/core/conf in github.com/tal-tech/go-zero v1.1.2
go: found github.com/tal-tech/go-zero/rest in github.com/tal-tech/go-zero v1.1.2
go: found github.com/tal-tech/go-zero/rest/httpx in github.com/tal-tech/go-zero v1.1.2
go: found github.com/tal-tech/go-zero/core/logx in github.com/tal-tech/go-zero v1.1.2

D:\go-learn\greet>go run greet.go -f etc/greet-api.yaml
Starting server at 0.0.0.0:8888...
{"@timestamp":"2021-01-10T01:04:05.746+08","level":"stat","content":"CPU: 0m, MEMORY: Alloc=0.6Mi, TotalAlloc=0.6Mi, Sys=6.6Mi, NumGC=0"}
{"@timestamp":"2021-01-10T01:04:05.751+08","level":"stat","content":"(api) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
{"@timestamp":"2021-01-10T01:05:05.747+08","level":"stat","content":"CPU: 0m, MEMORY: Alloc=0.6Mi, TotalAlloc=0.6Mi, Sys=6.6Mi, NumGC=0"}
{"@timestamp":"2021-01-10T01:05:05.751+08","level":"stat","content":"(api) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
{"@timestamp":"2021-01-10T01:06:05.746+08","level":"stat","content":"CPU: 0m, MEMORY: Alloc=0.6Mi, TotalAlloc=0.6Mi, Sys=6.6Mi, NumGC=0"}
{"@timestamp":"2021-01-10T01:06:05.750+08","level":"stat","content":"(api) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
{"@timestamp":"2021-01-10T01:07:05.746+08","level":"stat","content":"CPU: 0m, MEMORY: Alloc=0.6Mi, TotalAlloc=0.6Mi, Sys=6.6Mi, NumGC=0"}
{"@timestamp":"2021-01-10T01:07:05.752+08","level":"stat","content":"(api) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
{"@timestamp":"2021-01-10T01:08:05.744+08","level":"stat","content":"CPU: 0m, MEMORY: Alloc=0.6Mi, TotalAlloc=0.6Mi, Sys=6.6Mi, NumGC=0"}
{"@timestamp":"2021-01-10T01:08:05.750+08","level":"stat","content":"(api) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
{"@timestamp":"2021-01-10T01:09:05.746+08","level":"stat","content":"CPU: 0m, MEMORY: Alloc=0.6Mi, TotalAlloc=0.6Mi, Sys=6.6Mi, NumGC=0"}
{"@timestamp":"2021-01-10T01:09:05.750+08","level":"stat","content":"(api) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}

Windows中go-zero如何使用

再另外开一个cmd窗口

C:\Users\domin>d:

D:\>cd D:\go-learn\greet

D:\go-learn\greet>goctl api java -api greet.api -dir greet
[32mDone.[0m

D:\go-learn\greet>curl -i http://localhost:8888/from/you
HTTP/1.1 200 OK
Content-Type: application/json
Date: Sat, 09 Jan 2021 17:09:06 GMT
Content-Length: 14

Windows中go-zero如何使用

生成的代码

Windows中go-zero如何使用

总结

除了goctl神器,go-zero还有很多的小工具。

  1. 流数据处理利器:fx。如java8的lambda,,go-zero也有了!fx.Filter().Sort().Head() ,让数组的复杂处理变得简单。

  2. List itemmapReduce降低服务相应时间:mr.Finish(), mr.Map().Reduce(), 跟并发处理waitGroup说拜拜。

  3. etcd服务发现的集成:p2c的算法发现服务,避免开发人员点对点或nginx的转发服务,安装一个etcd就完事了。

  4. jwt集成api:轻松拥有一个jwt的后台服务。

  5. 集成Prometheus:轻松拥有一个带监控的golang后台服务。

上述内容就是Windows中go-zero如何使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/kevwan/blog/4898548

AI

开发者交流群×