新阶段使用 go 开发 web 后台怎么样

2023-06-13 14:20:10 +08:00
 laoyutang

目标是一个工业场景下的上位机软件,采集数据做展示,需要实时采集数据上传到数据库中。设备量挺大,感觉 go 的并发场景更合适。

5690 次点击
所在节点    程序员
39 条回复
laoyutang
2023-06-13 14:25:25 +08:00
想问下相比于 java ,招人成本和难度怎样。是否会遇到什么坑点。
mmdsun
2023-06-13 14:38:55 +08:00
——现在大多数公司 99%的场景都还没到要对比编程语言性能上这一步。
go 的轮子没 java 多,要自己造轮子。相比下容器化,云原生更方便些,招人看地方,小地方不好招人。一线没什么问题。

真看性能的话,应该选各种性能测评榜的前几名吧。
Web Framework Benchmarks:
https://www.techempower.com/benchmarks/#section=data-r21
lasuar
2023-06-13 15:10:37 +08:00
都 2023 了,还有人在怀疑 go 开发 web 后台?

常用的 Go Web 框架:

Gin:Gin 是一个快速、简单且具有高性能的 Web 框架。它提供了简洁的 API 设计和丰富的中间件支持,使得构建 Web 应用变得高效和灵活。Gin 是目前在 Go 社区中使用广泛的框架之一。

Echo:Echo 是一个轻量级的 Web 框架,具有简单易用的 API 和快速的路由器。它注重性能,并且提供了丰富的功能和插件支持。

Beego:Beego 是一个全功能的 Web 框架,它包含了路由、ORM 、模板引擎等多种功能。它具有较高的可扩展性和稳定性,并且支持 MVC 架构。

Revel:Revel 是一个全栈的高性能 Web 框架,具有自动化路由、模板热加载、ORM 等特性。它借鉴了 Ruby on Rails 的设计理念,提供了快速开发和可靠性的特点。

Fiber:Fiber 是一个类似于 Express.js 的 Web 框架,专注于性能和路由的简单性。它具有快速的路由器、中间件支持和异步处理能力。

FastHTTP:提供了简洁的 API 和可扩展的中间件支持,以及高性能的路由器。它适用于需要处理大量并发请求的场景,如高流量的 Web 服务、反向代理服务器等。


常用的 Go Orm 框架:gorm 、ent ,上面的部分 web 框架自带 orm

Go tcp/udp 框架:Zinx 、Go-Netty 、Gnet 、Kcp-go(udp)

Awesome-Go (10w star): https://github.com/avelino/awesome-go
coderxy
2023-06-13 15:15:10 +08:00
至少 go 的应聘者不会有那么多培训班出来伪造简历的。
orchid9210
2023-06-13 15:20:10 +08:00
EdgeX 吗?
voidmnwzp
2023-06-13 15:21:04 +08:00
@lasuar orm 是硬伤
laoyutang
2023-06-13 15:22:36 +08:00
@coderxy 🤣太真实了
MeteorCat
2023-06-13 15:24:04 +08:00
我觉得后台还是 php 那些最好
dobelee
2023-06-13 15:24:19 +08:00
会怎么样?
会很舒服。
kkocdko
2023-06-13 15:24:47 +08:00
gorm 挺好用的,gin 或者 net/http 做业务都很方便。生态我是没有碰到过什么问题,很多人说没有轮子,我只是觉得小马过河,试一下能否满足你的需求就行了。

等等,楼主的这个描述,看样子我觉得你最好先好好评估一下你的需求,不然无法给出关于语言的建议。
laoyutang
2023-06-13 15:28:37 +08:00
@orchid9210 对类似物联网平台
march1993
2023-06-13 15:30:16 +08:00
go 要是能出一个 gui 库就无敌了……
yl20181003
2023-06-13 15:35:17 +08:00
没啥问题,就是不是 java 那味,喜欢就香
opengps
2023-06-13 15:41:50 +08:00
用啥都行
上位机软件一般并不是并发大,而是循环频率高,用啥语言最后核心逻辑还是单线程高频刷新的思路。因为对接的设备方往往是只支持单链接或者几个连接
encro
2023-06-13 15:48:06 +08:00
yazinnnn
2023-06-13 15:56:12 +08:00
没理解标题和内容的关系

上位机和 web 后台有啥关系?
ThreeK
2023-06-13 16:03:44 +08:00
这俩个语言都行,Java 就是直接 spring cloud 一套省很多事。Go 也是一堆人用有问题直接查也有结果。
ideacco
2023-06-13 16:05:51 +08:00
@opengps 单线程高循环,那么是不是需要异步处理才行,那就 nodejs 比较好吧
opengps
2023-06-13 16:25:12 +08:00
@ideacco nodejs 可能缺少对接第三方的库(比如西门子 PLC ),如果这个因素不影响的话也可以用.
另外实际工业中,可能对接多个设备,这个时候往往还是多个线程的(每个线程去操作一个设备)
BinaryDH
2023-06-13 16:48:10 +08:00
Java 简历到处都是"精通",看到就真的要吐了。
有云原生相关的的选择 go 准没错!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/948324

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX