golang使用3周总结

我是一个着迷于产品和运营的技术人,乐于跨界的终身学习者。欢迎关注我的个人公众号「跨界架构师」

每周五11:45 按时送达~

我的第「215」篇原创敬上


大家好,我是Z哥。

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

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

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

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

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

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

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

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

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

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

01 github.com/ahmetb/go-linq/

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

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

02 github.com/streadway/amqp

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

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

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

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

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

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

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

自动校验客户端请求参数合法性

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


04  gorm.io/gorm

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

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


推荐阅读:

   ■ 高强度工作后的思考

   ■ 总是想得太简单?试试我的方法


如果你喜欢这篇文章,可以点一下右下角的「爱心」,支持我的创作~

定期发表原创内容:架构设计丨分布式系统丨产品丨运营丨一些深度思考。

你可能感兴趣的:(golang使用3周总结)