元宇宙非小号金色财经交流群社区官网

Java转型Go区块链工程师:我的经验分享

浏览:110|时间:2023-06-18 06:00:54
前言

本人在加入比原链之前一直从事Java开发。当我第一次了解Go语言时,还有些犹豫,担心自己无法通过面试。但实际上,掌握一门语言并不是决定入职的最重要因素。我成功地加入了比原链,并在短短半个月内迅速掌握了Go语言,并能够进行核心项目开发。

Java语言在大型成熟项目上具有优势,但在区块链开发中存在许多不足。比如,在协程处理方面,Java语言并不够灵活等等。选择使用Go语言的主要原因在于它在区块链领域的流行程度。

区块链的流行语言

在区块链公链的开发领域,有许多流行的编程语言,如C++、Go、Python和最近兴起的Rust等等。我们对比较著名的项目采用的编程语言进行了统计,结果如下图所示:

老一代公链,如比特币和莱特币,通常使用程度较高的C/C++(当时Go语言还未普及)。新一代公链,如以太坊和超级账本,则开始更多地采用Go语言。当然,我们看到Rust的发展势头也很猛,近两年来,很多公链,如波卡和Grin,也开始采用Rust语言进行开发。

Go语言的优势

1. 部署简单

Go语言编译生成的是一个静态可执行文件,除了glibc外没有其他外部依赖。这让部署变得异常方便,目标机器上只需要一个基础的系统和必要的管理、监控工具,就无需考虑应用的各种包、库的依赖关系。Go语言可以直接编译成机器码,不依赖其他库。只需要满足一定的glibc版本要求即可进行部署。

2. 性能优秀

尽管Go语言的性能不如C语言和Java,但通常比原生Python应用性能要高一个数量级,因此适用于编写一些瓶颈业务。此外,Go语言的内存占用也非常省。

3. 并发性&通道

Goroutine和channel不仅让编写高并发的服务端软件变得相当容易,而且很多情况下不需要考虑锁机制及其带来的各种问题。单个Go应用也能有效地利用多个CPU核,从而实现并行执行的性能优化。

4. 良好的语言设计

Go语言的设计十分简单,易于学习。尽管从学术上说,Go语言并不支持许多高级语言特性,但从工程的角度来看,Go语言的设计非常优秀。规范足够简单灵活。正是由于Go语言的简单性,任何有经验的C/C++、Java、Python、Scala等开发者都可以在一个月内构建一个高效的Go团队。

5. 标准库&工具

目前,Go语言已经内置了大量的库,尤其是网络库非常强大。更重要的是,Go语言具有完整的工具链,这大大提高了团队协作的一致性。例如,gofmt可以自动排版Go代码,很大程度上可以避免因不同人编写的代码排版不一致引起的问题。在编辑器配置中设置gofmt运行时,一旦编写的代码有格式不规范的地方,编辑器将自动对其进行排版处理。另外,gofix和govet等工具对于团队协作也非常有用。

6. 团队实力

Go语言得到了谷歌的支持,它在各种领域都得到了检验,并且其创始人还是C语言之父。这预示着Go语言有着很好的发展前景和创新潜力。

7. 成功项目案例

随着云时代的到来,Go语言在各个领域都得到了广泛的应用。尤其是Docker

AV 分享 区块 区块链 我的

  • 如何在shitcoins上赚1000倍:我的策略分享

    如何在shitcoins上赚1000倍:我的策略分享

    2023-12-25 22:12:51

    我以比 ath 低 125 倍的价格命名它,甚至在上市之前:让我们从 3 个基本规则开始: 投资永远不要超过你能承受的损失 不要把所有的钱都投入到一个代币中 如果你有一个代币规模小、天然气费便宜的贸易链这些规则是成功翻转...

  • 100美元起 如何在Binance进行交易 赚多少钱?分享我的交易结果 供参考。

    100美元起 如何在Binance进行交易 赚多少钱?分享我的交易结果 供参考。

    2024-01-08 07:12:21

    真是难以预料啊!因此,我将从100美元开始仅在binance上进行交易并进行现货交易,并想了解在6个月和1年内我能赚多少钱。注意:这是为了测试现货交易的结果,它可以是0也可能是100。这不是财务建议,您必须自行承担风险。...

  • P2P USDT购买经验分享:币安成功解决我的问题

    P2P USDT购买经验分享:币安成功解决我的问题

    2024-01-19 21:59:22

    我下达了购买USDT的订单,在15分钟的时间范围内,我的订单被系统取消,同时我也根据该订单转出了付款。我拨打了他的联系电话,但他一直拒绝我的电话。然而,之后我联系了币安并向他们提供了交易证明,仅仅15分钟后他们就回复说他...

  • 这种行情下应该怎么操作?我的诚实策略分享。

    这种行情下应该怎么操作?我的诚实策略分享。

    2024-02-13 13:19:53

    因为每个人的资金量不同,收益预期不同,风险程度不同,所以这个策略只限于我的预期和风险。网格,选择第二梯队长期关注以及一些短期内交易量不会耗尽的币种进行操作。合约网格杠杆控制在10到12之间,测试一个月看看效果。...

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( zztaobao@vip.qq.com )