admin管理员组文章数量:1443939
Java 软件开发者如何学习 Go 语言
首先,我们需要清楚一个事实,Java的生态圈依旧是现有最全且最多的,毫无疑问,Go在这个方面还是没有可比性。
Go没有所谓的SpringCloud,mybatis ,mybatisplus....这些快速框架,类似的可能有Gin、GoFrame等等
学习一门语言前,你不能光了解所谓的优点,启动快,内存占用小,并发模型优异,云原生更友好等等。你更需要接受他没有完善的开发框架,并且拥有复杂的业务系统,甚至可能会在开发过程中遇到从未出现的问题,作为一个Java开发者,最好的入门方式肯定是做一套管理系统来做对比学习,体会Java和Go的区别,做深入理解。需要指出一点的是,这样的Go一定会弱于Java,这不是本文想体现的,两者语言各有优劣,不针对和批评两者的操作逻辑。合理比较学习,如果你作为Java程序员,希望能让你清晰的对别两者的差异化。
- 下面做一下 两者启动服务的对比
使用 springboot 启动服务
@SpringBootApplication
public class AppApplication {
public static void main(String[] args) {
SpringApplication.run(WeixinApiReptileApplication.class, args);
}
}
一次编译处处运行,只要是在有 java 环境的地方都可以运行,使用堆栈的设计方案,面向对象变成。
但是,最低的 SpringBoot 的 jar 包大概也是在 20M 以上,编译出的可执行文件体积大,运行非常的占用内存。有非常完善的社区和各种开源工具。
代码语言:go复制使用 gin 框架
func main() {
r := gin.Default()
r = router.CollectRouter(r)
if port != "" {
panic(r.Run(":" + port))
}
r.Run(config.Config.Server.Port) // listen and serve on 0.0.0.0:8080
}
go 在不同的环境下可以编译成不同的可执行文件,例如exe文件,Mac 的 dmg 等,大部份参考了C++的逻辑,直接通过指针操作。并且打包的可执行文件体积小,内存占用小。但是社区活跃度比 java 低,在有很多优秀的开发者共同努力之下,已经逐渐完善。
学习 go 之前,需要先了解 go 的语法,逐步深入,做一些简单的控制台项目,逐渐去深入。多借鉴一些大佬的代码,这里 引用我写的一个
gin框架入门:
顺便共享一个网络上比较好的 go的文件目录
代码语言:txt复制├── cmd/ # 项目入口目录
│ └── main.go # 主程序入口
├── internal/ # 私有代码目录
│ ├── handler/ # HTTP处理器(等同于Controller)
│ │ └── user.go
│ ├── service/ # 业务逻辑层
│ │ └── user.go
│ ├── repository/ # 数据访问层(等同于DAO)
│ │ └── user.go
│ └── model/ # 数据模型
│ └── user.go
├── pkg/ # 可被外部引用的包
│ ├── middleware/ # 中间件
│ ├── config/ # 配置
│ └── utils/ # 工具函数
├── api/ # API文档(Swagger/OpenAPI)
│ └── swagger.json
├── configs/ # 配置文件目录
│ └── config.yaml
├── scripts/ # 构建、部署脚本
├── test/ # 测试文件目录
└── go.mod # Go模块文件
学习没有途径,只有不断摸索
本文标签: Java 软件开发者如何学习 Go 语言
版权声明:本文标题:Java 软件开发者如何学习 Go 语言 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748118484a2811027.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论