Go开发运维:Go项目工程化进行初始配置

2024-09-01 16:52

本文主要是介绍Go开发运维:Go项目工程化进行初始配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、实验

1.环境

2.初始化Go项目

3.Go项目工程化

4. 导入Gin包

5.下载viper与logrus依赖

二、问题

1.Windows如何进行go的版本升级

2. Go mod常用命令

3.下载Gin依赖失败


一、实验

1.环境

(1)主机

表1 主机

系统

软件版本备注
Windows11VS Code1.92.2
go1.20.4

运行(输入cmd)

查看VS Code版本

Code --version

查看go版本

go version

2.初始化Go项目

(1) go env查看GOPATH

(2) 进入GOPATH目录下

C:\Gocode\src

(3)创建项目工程

创建project-devops

(4)VS Code打开工程

(5)右上角点击打开命令行

(6)初始化项目

go mod init project-devops

(7)查看当前目录

工程目录下自动生成了go.mod

(8)创建main.go

VS Code创建main.go文件,作为项目的总入口

3.Go项目工程化

(1)配置层

VS Code创建config目录及config.go文件,存放程序的配置信息

(2)配置层

VS Code创建routers目录及routers.go文件,管理程序的路由信息

(3)控制器层

VS Code创建controllers目录及controllers.go文件,实现路由的处理逻辑

(4)中间件层

VS Code创建middlewares目录及middlewares.go文件,配置路由的中间件

(5)模型层

VS Code创建models目录及models.go文件,实现数据的CRUD操作

CRUD操作:
1)create 添加数据
2)read   读取数据 
3)update 修改数据
4)delete 删除数据

(6)工具类层

VS Code创建utils目录及utils.go文件,作为工具类封装

4. 导入Gin包

(1)访问

https://pkg.go.dev/

(2) 搜索gin

点击进入

点击扩展

查看

import "github.com/gin-gonic/gin"

(3)config.go创建初始化函数 

func init() {println("Start加载程序配置!")
}

(4)main.go导入依赖与配置gin

import (_ "project-devops/config""github.com/gin-gonic/gin"
)func main() {r := gin.Default()r.Run()
}

(5)下载gin依赖

go get  github.com/gin-gonic/gin

(6)运行

go run .\main.go

打印了配置层初始化信息

5.下载viper与logrus依赖

(1)访问

https://pkg.go.dev/

(2) 搜索viper ( 用来处理程序配置)

点击进入

点击扩展

查看安装

(3)下载viper依赖

go get github.com/spf13/viper

 (4) 搜索logrus (用来处理程序日志)

点击进入

点击扩展

查看安装

(3)下载logrus依赖

go get github.com/sirupsen/logrus

(4)最后查看go.mod

相关依赖都已更新

二、问题

1.Windows如何进行go的版本升级

(1)访问官网

https://golang.google.cn/dl/

(2)查看历史版本

点击Show

选最对应版本下载

选择对应的Windows版本下载安装

https://golang.google.cn/dl/go1.20.4.windows-amd64.msi

(3)配置Go环境便变量

我的电脑-属性-高级系统设置

确认Go的系统变量

确认Go的用户变量

(4)查看配置的环境变量

cmd执行

go env

(5) VSCode 安装Go插件

搜索go 安装

安装Go 辅助工具,输入ctrl + shift + p

点击确定,等待安装

2. Go mod常用命令

(1)常用命令

1)go mod init
初始化模块,并在当前目录下创建go.mod文件2)go mod tidy 
清理未使用的依赖项,并更新go.mod文件3)go mod vender
将依赖项复制到vender目录,方便离线部署4) go mod download
下载当前模块机器依赖的所有依赖5) go mod graph
以文本形式打印模块依赖图6)go list -m all
列出当前模块及其依赖项的所有模块和版本7) go get
获取指定包或模块,并将其添加到go.mod文件8) go get -u
更新指定包的版本 

3.下载Gin依赖失败

(1)报错

github.com/gin-gonic/gin importsgithub.com/gin-gonic/gin/binding importsgithub.com/pelletier/go-toml/v2 importsslices: package slices is not in GOROOT (C:\Program Files\Go\src\slices)
note: imported by a module that requires go 1.21

(2)原因分析

go get -u github.com/gin-gonic/gin

因为当前go版本为1.20.4,更新指定包的版本至少需要go 1.21

(3)解决方法
在不升级版本的情况下,获取指定包或模块,并将其添加到go.mod文件

go get  github.com/gin-gonic/gin

成功:

这篇关于Go开发运维:Go项目工程化进行初始配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127509

相关文章

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.