go微服务开发工具箱

博主分享了使用Go语言进行业务开发的感受,包括内存效率、脚本能力、面向对象编程的挑战、依赖注入及包管理等问题,并列举了一些常用的Go类库,如参数校验、测试工具、序列化库等。尽管Go在云原生场景有优势,但对Java开发者来说,适应Go的成本较高,不适合所有团队。
摘要由CSDN通过智能技术生成

使用golang开发了一阵子业务代码,本文主要梳理一下自己的使用感受,并总结一下常用的类库,方便查阅。由于本人是java重度使用者,不免加以对比吐槽一下,请见谅。

go做业务开发?

对比java这里说说用go做业务开发的感受:

  • 优点

    • 云原生首选,省内存
    • 挺适合写脚本的,可替代python
  • 缺点

    • 没使用好会panic,线上服务直接进程退出还挺严重的
    • go没有maven的SNAPSHOT版本,基于commit hash加日期作为伪版本,很容易出现invalid version,体验非常不好,不像SNAPSHOT这么省事
    • 写面向对象比较费劲,每个方法都要写个receiver,不像java这么规整
    • ioc的支持不像java有ioc的标准,生态也不太行,比如uber/dig,都无法按name注入map结构
    • godoc太简陋了,没有javadoc那么规整
    • 没有注解和泛型(虽然新版支持了,但是要等周边生态支持了才能好好用上),语言表达力弱了很多
    • 至于协程,业务开发貌似这个派不上用场
    • 包的机制挺怪的,默认以最后一个为准,很容易冲突,也不容易辨识,若是加上别名,那更是灾难,非常不利于分析
    • 缺乏好用的test suite,不像java的juint,写几个注解就可以,挺费劲的

golang常见类库

总结

用go进行业务开发感觉成本还挺大,绝对不是省内存,云原生这么简单的事情,如果是大公司,可以用钱去砸,我没话说。中小公司如果自身团队不是go背景,想从零开始,感觉成本还挺大,个人愚见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值