Golang Go语言 开源学习--募集大神
Golang Go语言 开源学习–募集大神
自上次在 V2EX 发了一篇,关于我对从 php 转 go 的心得,发了自己的开源 https://github.com/xiangdong1987/easyGin 感觉反响挺大,被骂的挺惨的,不过我也从中学习了很多东西。今天来总结一下,顺便看看大家还有没有新的意见和建议。
Go mod
- 官方支持的包管理工具自,从 golang 1.11 新加的特性
- 好处:go run 时自动引入依赖包 存储在 $GOPATH/src/pkg 目录
- 使用方式:
- 更新到新版 go
- 设置如下配置
//开启 mod export GO111MODULE=on
//设置代理 export GOPROXY=https://gocenter.io
只能说谁用谁知道
Go template
- 提供了模板渲染 方便灵活
- 使用方式
type CurdTemplate struct {
LowerName string
}
routerTemplate=`lower:{{.LowerName}}`
t := template.New("router")
curdStrut := CurdTemplate{strings.ToLower("Person")}
//解析内容到模板
t, err = t.Parse(routerTemplate)
if err != nil {
log.Fatal("Parse:", err)
}
//将数据用到模板中
buf := new(bytes.Buffer)
if err = t.Execute(buf, curdStrut); err != nil {
log.Fatal("Execute:", err)
} else {
result = buf.String()
}
fmt.Println(result)
Go convey 代码测试及代码覆盖
- 这个库提供了代码测试的重新封装,使用友好,还可以提供页面展示代码覆盖率自动测试功能。程序规范化典范(感觉又要挨骂了)
func TestInitRouter(t *testing.T) {
Convey("model 路由", t, func() {
InitDB("company")
err := InitRouter("Person", "D:/data/go/src/easyGin/router/")
Convey("model 生成", func() {
So(err, ShouldEqual, nil)
})
})
}
性能测试
- 使用 ab 进行测试,毕竟我们是 api 接口
- 测试环境:
- 虚拟机 2G 内存 单核
- 数据库 测试环境单机
- 量 100 并发 10000 请求
- 测试结果:
总结
我觉得大家的批评都挺好的,指出了我的不足,然后让我不断进步,感觉这就是开源的乐趣吧!希望各位大神多给点意见,不吝赐教。还有最好有人能提 pr 大家一起维护,做一个有用的工具而不是玩具。在这在募集一波大神。
更多关于Golang Go语言 开源学习--募集大神的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
您好请问 go template 可以讲讲嘛? 还有用处,谢谢大佬🙏
更多关于Golang Go语言 开源学习--募集大神的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
#1 直接撸代码吧 真没啥可讲的 不难的 就是用作代码生成
您好!看到您对Go语言(Golang)开源学习感兴趣,很高兴能有这次交流的机会。作为IT领域Go语言方面的从业者,我愿意分享一些学习心得和资源,希望能助您一臂之力。
Go语言以其简洁、高效和并发支持强的特点,在云计算、微服务等领域得到了广泛应用。对于初学者来说,推荐从Go语言的官方文档和教程入手,这些资源详实且易于理解,能够帮助您快速掌握基础语法和核心概念。
在学习过程中,实践是非常重要的。您可以尝试参与一些开源项目,这不仅能加深您对Go语言的理解,还能锻炼您的代码能力和团队协作能力。GitHub上有许多用Go语言编写的开源项目,您可以根据自己的兴趣选择参与。
此外,加入一些Go语言的社区和论坛也是提升学习效率的好方法。在这些平台上,您可以与其他Go语言爱好者交流心得,解答疑惑,甚至找到志同道合的合作伙伴。
最后,我想说的是,学习Go语言需要耐心和毅力。遇到困难时,不妨多查阅文档、搜索相关资料,或者向社区求助。相信在不久的将来,您也能成为Go语言领域的“大神”。祝您学习顺利,期待在开源社区中看到您的身影!