用golang做开发是一种怎样的体验?

用golang做开发是一种怎样的体验?插图1

我是一个着迷于产品和运营的技术人,乐于跨界的终身学习者。欢迎关注我哟~

每周五12点 按时送达~

我的第「215」篇原创敬上

大家好,我是Z哥。

最近还是一如既往得忙,我估计至少得到明年1月中下旬才能稍微喘口气。所以今天就不整了,简单和大家分享一些收获。

这段时间在新团队用golang做开发,摸滚打爬完成了项目的搭建、并完成了4个用户故事的开发,对于golang的使用算是勉强达到了较为熟练的状态。

简单聊聊感受吧。目前感受到golang的几个明显优点:

  1. 部署简单。特别是部署为一个web服务,2行代码就能搞定,这感觉真的爽。

  2. 很轻松就能使用协程模式进行编程,程序性能有追求的小伙伴来说这点就很香了。

  3. 可以在方法体内的任意位置使用defer关键字来释放资源,简洁明了,不像很多语言要包一个try- finally。

  4. 天然支持多返回值,可以避免像别的语言一样使用一些奇技淫巧。

但是也有很让人难受的地方,就是golang的官方库不像java、.net那种提供了封装比较厚的库,甚至是更便捷的语法糖,导致整体的编码量其实大了不少。不过说实话,这样具有了更大的编程乐趣,不会显得自己更像个搬砖的。(虽然实际还是搬砖的)

总体来说,golang还不错,如果没接触过的小伙伴可以去玩玩看,可以拓宽自己的编程视野。况且,现在行业中golang岗位的供需比更友好,如果不想继续在java里和大家比谁更的话,强烈推荐。

最后再分享一些目前用到的,觉得还不错的框架,你可以收藏一下。如果未来你打算玩golang的话,可以翻出来看看,可以帮助你更快地上手开始一个项目。

01github.com/ahmetb/go-linq/

一个模仿.net中linq的库,因为golang不支持lambda表达式,所以用起来有些变扭,但是可以节约你不少处理array、slice、map等集合的代码。Linq到底有多香,相信.net开发者们都体会过。

如果为了让项目快速run起来的话,这个库可以用。但是如果你对性能要求特别严苛的话,那估计还是自己手写for循环,毕竟这个库里面用到了不少反射机制,不过相比手写的性能差异有多大我倒是没测试过,有测试过的小伙伴可以在评论区分享一下。

02github.com/streadway/amqp

从名字也可以看出,一个基于amqp协议封装的库,可以用来调用RabbitMQ之类的消息队列中间件。

03https://github.com/zeromicro/go-zero

这个就比较厉害了,一个包含web和rpc的框架,内置了很多微服务中常用的能力,直接贴一些官方描述的优势:

  • 轻松获得支撑千万日活服务的稳定性

  • 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码

  • 微服务治理中间件可无缝集成到其它现有使用

  • 极简的 API 描述,一键生成各端代码

  • 自动校验客户端请求参数

  • 大量微服务治理和并发工具包

04gorm.io/gorm

这个也是我想偷懒才用的,从名字也能看出,一个orm库。因为golang里还没有泛型,所以目前这个库的使用上不像有泛型支持的语言那么舒服,但是相似度大概80%吧。的确可以让你少写不少与数据库操作的代码。

好了,今天就分享这么多吧,文章短了点,但是实在挤不出太多时间,大家谅解哈~

推荐阅读:

也可以「关注」我,带你以技术思维看世界~

内容包括:架构设计丨分布式系统丨产品丨运营丨个人深度思考。

举报/反馈

原创文章 用golang做开发是一种怎样的体验?,版权所有
如若转载,请注明出处:https://www.itxiaozhan.cn/202210005.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注