新阶段使用 go 开发 web 后台怎么样
互联网资源分享 · 互联网资源分享 · 于 08-29 03:24发布 · 111 次阅读
目标是一个工业场景下的上位机软件,采集数据做展示,需要实时采集数据上传到数据库中。设备量挺大,感觉 go 的并发场景更合适。 想问下相比于 java ,招人成本和难度怎样。是否会遇到什么坑点。 ——现在大多数公司 99%的场景都还没到要对比编程语言性能上这一步。go 的轮子没 java 多,要自己造轮子。相比下容器化,云原生更方便些,招人看地方,小地方不好招人。一线没什么问题。真看性能的话,应该选各种性能测评榜的前几名吧。Web Framework Benchmarks:https://www.techempower.com/benchmarks/#section=data-r21 都 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 框架自带 ormGo tcp/udp 框架:Zinx 、Go-Netty 、Gnet 、Kcp-go(udp)Awesome-Go (10w star): https://github.com/avelino/awesome-go 至少 go 的应聘者不会有那么多培训班出来伪造简历的。 EdgeX 吗? @lasuar orm 是硬伤 @coderxy 🤣太真实了 我觉得后台还是 php 那些最好 会怎么样?会很舒服。 gorm 挺好用的,gin 或者 net/http 做业务都很方便。生态我是没有碰到过什么问题,很多人说没有轮子,我只是觉得小马过河,试一下能否满足你的需求就行了。等等,楼主的这个描述,看样子我觉得你最好先好好评估一下你的需求,不然无法给出关于语言的建议。 @orchid9210 对类似物联网平台 go 要是能出一个 gui 库就无敌了…… 没啥问题,就是不是 java 那味,喜欢就香 用啥都行上位机软件一般并不是并发大,而是循环频率高,用啥语言最后核心逻辑还是单线程高频刷新的思路。因为对接的设备方往往是只支持单链接或者几个连接 @march1993 go+vben admin or Naive-uihttps://www.naiveui.com/zh-CN/os-theme/docs/community 没理解标题和内容的关系上位机和 web 后台有啥关系? 这俩个语言都行,Java 就是直接 spring cloud 一套省很多事。Go 也是一堆人用有问题直接查也有结果。 @opengps 单线程高循环,那么是不是需要异步处理才行,那就 nodejs 比较好吧 @ideacco nodejs 可能缺少对接第三方的库(比如西门子 PLC ),如果这个因素不影响的话也可以用.另外实际工业中,可能对接多个设备,这个时候往往还是多个线程的(每个线程去操作一个设备) Java 简历到处都是"精通",看到就真的要吐了。有云原生相关的的选择 go 准没错! 差不多得了, 工厂上位机你整云原生是吧😅😅😅😅😅😅工业场景云原生有啥好处? 我们一年内销毁了 100 万次容器?😅😅😅😅😅😅 go 非常好用,好用得一匹 不应该是团队擅长什么才用什么吗? 工业场景下的上位机常用的语言是 C#, 而且是性能很差的老版本。这个场景下 go 没啥优势,要轮子没有,性能也不怎么样。 我来,在压缩 server 开支的时候 go 比 java 有优势。spring cloud 一套 每个 pod 不带几个 G 。go 随便给点资源能跑了。今年主流不是降本增效吗 必须 golang 啊 5 年 go 的忠告 直接上 goframe 省事的呢 弱弱的问一句,云原生为什么选 go 呢,有什么特殊的吗,用 java 、c#这些不是也可以容器化吗 @thin0 Java AOT 不太行,JIT 的话启动慢资源占用高,C#不了解。 @march1993 wails 了解一下?比什么 qt 简单多了... Java 的话可以考虑 Vertx ,vertx-mqtt 还不错 java 用 springboot underdow 开发效率快多了 一句话,f@ck golang 可以写,但是运行时太简单,语法糖几乎没有。工作的话,那捏着鼻子也可以写。自己选,肯定不用。 不知道你这个上位机软件是放到什么环境运行,如果是放到上位机里面,可以从 cpu 、内存和硬盘资源利用对比一下估计有些意义。以前也有过 php 开发的 web 放到上位机里面的经历,对我来说可能如下几点对比有点意思。1. 上位机内存一般都比较小,java 因为 jvm 原因内存消耗较大,如果使用 spring 生态源那这个消耗更加恐怖。这个 golang 就比较有优势2. 另外对于硬盘,或者软件安装需要的体积,完整版的 jvm 不算小、更小的体积需要使用模块化自行裁剪;另外对于 web 开发,看基于 servlet 那套搞,还是用 netty 撸;基于 servlet 那套需要使用 servlet 容器,tomcat 这套就比较重和大、jetty 那套比较小,但是方案不是很多。用 netty 撸又太原始,而且异步编程掌握难度比较高3. java 的部署也是比 golang 复杂,除非使用 spring boot ,或者类似的单体框架,打成一个包直接 java 命令就可以启动会比较方便。golang 是直接编成 native exec 程序,而且无任何依赖(有些版本依赖 glibc ),丢进上位机就可以运行了。4. 对于网络这块、golang 和 java 都擅长网络开发。但是对于网络高并发这块,还是 golang 比较有优势,java 可能要使用 netty 这种事件驱动编程吞吐率才好; golang 是天生支持高并发,底层是协程+epoll 实现,对于开发来说还是同步编程,比较易溶理解和掌握。5. 另外对于生态:java 这块确实是最好的,但是还是要看应用场景、有些场景 golang 都有可替代的解决方案。 我是从 16 年开始用 go 的,当时是要做点跨平台而且是关于网络开发的东西,就用了 go ,当时上海也都没几个岗位后来岗位渐渐多了。如果是 web 场景,还是首推 jvm 系无论 java 还是 kotlin ,中后期的开发和维护成本还是 jvm 系比较丝滑。云原生也不是 go 独有的,其他语言都可以入,只不过 go 编译出来的文件比较小。go 现在有很多拍簧片转入的,拍簧片的分水岭比较大,招人自己注意就行。 @jitongxi 拍簧片什么鬼😅 @laoyutang PHP 吧 :) webman 试试 性能已经超过 go java 了
qun
共收到 0 条回复:
回复
.NET Core 大润晟泽实验室
.NET Core 开发
VS Code 或者 VS 2019

系统介绍:

系统开发:
ASP.NET Core + EF Core Mysql + Bootstrap
运行环境:
Ubuntu 16.04 + Kestrel

博客介绍: Sufangxu's Blog
Lab: 大润晟泽实验室
服务器时间:2024-05-01 11:34:41
统计信息
  • 社区会员: 344 人
  • 帖子数: 11 个
  • 回帖数: 1022 条