有偿找一个能做编辑器(富文本)开发的的朋友 |
招牌网站上武汉使用go语言的很少
go语言做区块链相关业务比较多,现在区块链相关的公司陆续搬往了东南亚;
其次是go语言并没那么好,字节的广告系统之前是用go语言开发的,但是他们的广告系统一直在5.0之前都很卡,5.0之后据说换了rust重构,有的说是换了java重构;总之,经过实践后,他们发现了go并不适合做通用业务开发。
总结:1、做区块链的用go多,但是相关业务在国内越来越少;2、大厂实践后发现go并不适合做通用业务;
在国内,go最终适合做的就是网络中间件产品,中间件产品能容纳的岗位是很少的。
虽然Go语言在很多方面表现出色,但在大厂实践后发现其可能不适合做通用业务,主要有以下本质原因:
1. 生态系统相对不够完善:与一些成熟的编程语言如Java相比,Go语言的生态系统仍在发展中。在通用业务中,可能需要大量的各类库和框架来快速搭建系统。例如,在企业级应用开发中,Java拥有丰富的Spring系列框架及各种成熟的ORM、缓存等中间件,而Go语言在某些特定领域的库可能不够全面和成熟,这可能导致开发过程中需要更多的自行开发工作,增加了开发成本和时间。
2. 代码可读性和维护性问题:Go语言的语法简洁,但在大型通用业务项目中,可能会导致代码可读性变差。例如,Go语言大量使用接口和组合的方式实现多态和代码复用,对于不熟悉这种编程风格的开发者来说,理解和维护代码可能会有一定难度。尤其是在团队成员水平参差不齐或团队规模较大时,代码的可维护性会成为一个重要问题,影响项目的长期发展。
3. 缺乏成熟的企业级设计模式支持:在通用业务开发中,经过长期实践积累的企业级设计模式能够帮助开发者更好地组织和构建系统。Java等语言有完善的设计模式体系及相应的实现框架,但Go语言在这方面相对较弱。例如,在处理复杂的业务逻辑和系统架构时,可能没有像Java的EJB等成熟的企业级组件来方便地实现分层架构和业务逻辑的解耦,开发者需要花费更多精力去设计和实现合适的架构。
4. 开发效率在某些场景下不高:尽管Go语言在性能方面表现优异,但在一些快速迭代的通用业务场景中,其开发效率可能不如一些动态语言。例如,在开发一些简单的Web应用或脚本任务时,Python等语言可以通过简洁的语法和丰富的库快速实现功能,而Go语言可能需要编写更多的样板代码,从编写代码到完成功能的时间可能更长,不利于快速响应业务需求的变化。
虽然Go语言有其优势,但在通用业务领域由于生态、代码可读性、设计模式支持和开发效率等方面的原因,在大厂实践中可能会面临一些挑战,需要开发者根据具体业务场景谨慎选择。
@cartoon_author 之前看过内部人写的,使用rust重写了,资源占用降低了50%
@cartoon_author 广告系统居然不用c++?
@cartoon_author go平时写一些小工具很方便,最方便的是打包速度很快,而且无需依赖其他环境
@icecola 所以我说go适合写一些中间件产品;比如docker这类镜像容器,还有云服务中间件等,这种产品都有个特点,业务简单,且很在乎资源占用问题。
@cartoon_author 你是猎头还是干啥的,我发现你真的很印象流,什么就区块链用 go,你还总结出结论来了,不说别的,游戏行业就很多用 go 的,音视频行业也有很多,你上 boss 上搜搜职位再发言,哔哩哔哩和米哈游招 go 是干嘛的,做区块链吗
@pillars 我对go的结论是两点
1、适合做区块链
2、适合做 云中间件产品
米哈游,b站的很多业务都上了云,用go做一部分业务不很正常吗?但是这部分岗位在整个IT行业,占比非常少。我说米哈游还在使用lua做游戏脚本呢?但这能说明什么呢?
我的两个结论点,你只抓住第一个狂喷,不见第二个;我不仅了解go,我自己在github上还有go的开源框架,虽然star不多,但是足以证明我是对go有足够了解过才发言的;
很赞同已故的大佬左耳朵耗子的原话:go 只适合用来开发中间件类的基础设施工具。用它来开发大型软件,将会是灾难
因为 go 的特点是开发效率高,同时执行效率又特别高。所以特别适合用来开发中小型工具。
其语言特点又注定了很容易写成烟囱式的代码,这在多人团队协作,写出高质量的可扩展、可维护的代码,不要做任何期待指望。
对于大型应用软件的开发,java 才是无可匹敌的存在,没有任何竞争对手。原因在于 java 的生态圈非常完善。在各种应用场景下,都有非常优秀的第三方解决方案工具和框架。
@cartoon_author 我只是正常发言,并没有狂喷,你的结论 1,2 并没有说云中间件,如果结尾的一句补充说明也算,那算我没看全。即便有这句补充说明,你说的也很片面。不少动态语言或者 c++技术栈起家的公司会用 go 写新业务,甚至重写历史项目,这些业务不是一句云中间件就能概括的,go 的业务应用没 java 广泛,但没框死在你说的这一亩三分地上,你的结论过于武断
实际上,在k8s成为微服务事实标准的情况下,上云已经不再局限于语言了;以前大家都使用go上云,一个重要原因就是golang做出来的镜像很小,启动速度很快;这得益于golang打包后的产物自带依赖,运行时;
但是golang的这一优点,已经被java吸收了;对于javer来说,你们应该纠结的不是java和go的选择问题;而是应该认真考虑要不要升级新版java;
我可以肯定的说,go的优势,java在历次版本迭代中已经全部吸收了;而go在迭代中,也在引入java特性,但是我不知道怎么回事,go在吸收java的优点的时候,总是有种画虎不成反类犬的感觉,比如:genericity
@cartoon_author AOT 已经普及了?
过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号