用go语言重写所有的java后台工程

 go教练   2019-07-04 14:15   67 人阅读  0 条评论

B站的技术发展历程,最开始是用PHP语言开发的,后来B站的中台逐步被Node占领,而后台技术为了更高的并发、更稳健,以及为了大数据分析,逐步向JAVA靠拢,这便导致了哔哩哔哩的技术整体较为混乱。

生活经验告诉我们,房间需要定期进行整理,如果长时间不打理会变得杂乱无章,同样的,作为一个有着巨大用户量并且正在发展中的视频网站来说,定期清理杂乱无章的技术栈,为用户提供更稳定的服务、更优质的使用体验显然是非常有必要的。否则当视频正看到关键时刻,一记黑屏大法便足以败了你所有的兴致。

并非重写全部的后台工程,而仅仅是与账号相关的业务

哔哩哔哩使用Go语言重构JAVA后台应该已经是板上钉钉的事了,但他们并非是要重写所有的后台,因为就大数据分析方向来说,还是JAVA的天下,重构的部分仅仅是账号有关的业务。

其实很多程序员都有自己热衷的语言以及程序设计偏好,甚至有技术洁癖的程序员,在代码能正常运行的情况下,是不会允许任何人碰自己的代码的,老子的代码天下无敌!

 微信截图_20190704092917.png

但是,前提是代码能正常运行,而哔哩哔哩的后台,B站早期几乎天天故障,随着团队和业务扩大,各方面的压力都增加,处处冒火。这样的状态与其像补衣服那样不停地打补丁,新补丁盖旧补丁,缝缝补补又三年,着实不如重写来得干脆。至于统一到什么语言其实都是无可厚非的,不管黑猫白猫,能捉到耗子就是好猫。

为什么是Go?

归根到底,这次重写后台工程是哔哩哔哩统一技术栈的一次尝试,至于最后为啥选择了Go,很重要的一点在于Go能够满足哔哩哔哩平台重构优化的需求。

 微信截图_20190704092955.png

前面说过了,选择哪种语言都无可厚非,因此这里不针对Go与JAVA两种语言做孰优孰劣的评判。就事论事,我们站在哔哩哔哩的角度,来说说做此选择的优势所在。

Go语言本身具有其语言亮点

最近几年,Go语言开始走向火爆,国内外很多公司都已经将Go语言应用到公司核心业务系统中。比如Google、AWS和MonGoDB等国外巨头,以及像阿里云CDN、华为、饿了么、七牛等国内公司也都在积极拥抱Go语言。

 微信截图_20190704093009.png

JAVA目前仍是企业级开发中的主流选择,如果说JAVA是武林名门,历史悠久、沉稳持重,那么Go就是一个新开山立派的年轻一代,更有冲劲和活力:它没有继承的OO,在很大程度上解决了编译速度慢的痛点,它的强一致类型,破解了程序难维护、文档可读性差等难题,有效缩短了更新所需要的时长,让交叉编译变得更加简单。总之,Go的主要特色让它受到了更多程序员的关注。

 微信截图_20190704093037.png

另外,Go内置的net/http包基本上把我们平常用到的网络功能都实现了,这些特性对于网络视频平台哔哩哔哩来讲,解决其当前所面临的问题是绰绰有余的。

公司有自己的Go语言团队

哔哩哔哩的研发总监,此前的工作经历均以Go为主,同时他也带了自己的Go团队共同加入,在这样的背景下,相对于JAVA,选择用Go来重构后台显然能够起到事半功倍的效果。

其实,这件事对于技术团队来说,用自己擅长的语言做自己应该做的事儿,说破大天儿去,也无可非议。不管是JAVA还是Go,公司最看重的不是编程语言,而是最终所呈现的系统,语言只不过是工具而已;对于用户而言,只要有完美的体验,后台用什么语言不重要。所以,在相对统一的情况下,让各种语言发挥它们最大的优势,为产品的稳健运行提供更好的保障,应该是最明智的选择。

综上,这次哔哩哔哩采用Go语言来重写后台JAVA工程,有行业发展的必然性,也有场景、功能实现的需求性,还有技术负责人根据现实情形做出选择的主观判断性。随着行业的不断发展,各种新兴语言不断出现,一个项目中多种语言并存、互补的现象是必然的,说不定哪一天你还会发现用Go写的后台被其他语言改写了,或者某种你以为已经成为历史的语言卷土重来也不是没有可能。

以上就是今天给大家介绍的go语言重写所有的java后台工程,如果你还想了解更多关于go语言的知识技巧,可以继续关注我们http://www.fastgolang.com

本文地址:http://fastgolang.com/91.html
版权声明:本文为原创文章,版权归 go教练 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?