
获得徽章 0
- #青训营 x 字节后端训练营#
Gin是一个轻量级的Web框架,用于构建高性能的Go语言Web应用程序。它基于HTTP路由和中间件的概念,提供了简洁、快速和灵活的方式来处理HTTP请求和构建API。
以下是Gin框架的一些关键特性和用法:快速和高性能;简洁的API设计;中间件支持;参数绑定和验证;渲染和模板;错误处理;插件和扩展
将gin框架集成到go-micro中:
```go
package main
// 获取gin
import "github.com/gin-gonic/gin"
// 主函数
func main() {
// 取r是router的缩写
r := gin.Default()
// 这里非常简单,很像deno、node的路由吧
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
// 监听端口8080
r.Run(":8080")
}
```
把路由放到控制层中维护,先新建controller层,再搭建脚手架,基于gin我们搭建一个脚手架。就如同我们基于oak搭建deno的脚手架一样。同样换做echo框架也同样适用。新建server目录,在此目录下新建server.go文件,还能在主函数里减少代码。
路由分组只需要在server.go里加入方法即可。
继续加油!展开评论1 - #青训营 x 字节后端训练营#
1. 锁(Lock)是Go语言中用于实现并发安全的机制之一。在多个goroutine同时访问共享资源时,为了避免竞态条件(race condition),需要使用锁来保护共享资源的访问。常用的锁包括互斥锁(Mutex)和读写锁(RWMutex),它们提供了互斥访问和读写分离的功能,确保在同一时间只有一个goroutine可以访问共享资源。
2. 线程同步(WaitGroup)是Go语言中用于协调多个goroutine之间执行的一种机制。当我们需要等待一组goroutine完成任务时,可以使用WaitGroup来进行线程同步。WaitGroup可以在主goroutine中添加等待的goroutine数量,然后通过调用Wait方法来阻塞主goroutine,直到所有的goroutine都执行完毕。
3. Go Module是Go语言自带的包管理和版本控制工具。它解决了Go语言在依赖管理方面的一些问题,通过引入模块(Module)的概念,将代码和依赖的包组织成一个逻辑单元。Go Module可以帮助开发者管理项目依赖,确保项目在不同环境下的可复现性,并且支持语义化版本控制,方便进行版本管理和升级。使用Go Module,开发者可以更加方便地管理项目的依赖关系,提高开发效率和代码质量。
继续努力继续加油!展开评论1 - #青训营 x 字节后端训练营#
对于值类型:布尔类型为 false, 数值类型为 0,字符串为 "",数组和结构会递归初始化其元素或字段,即其初始值取决于元素或字段。 对于引用类型: 均为 nil,包括指针 pointer,函数 function,接口 interface,切片 slice,管道 channel,映射 map。
nil可以表示空指针或者空接口。
nil可以拿来查错
```go
func doSomething() error {
return nil
}
func main(){
if doSomething() != nil {
return err
}
}
```
继续打卡,给自己加油!展开评论1 - #青训营 x 字节后端训练营#
第一次接触Go Web,刚上手因为Java的习惯确实用不来了一下子,后来跟着文章学搞懂了点,在服务器配置上个人感觉比java方便多了,继续努力学习!
评论1