6

go微服务开发工具箱

 2 years ago
source link: https://segmentfault.com/a/1190000041433688
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用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背景,想从零开始,感觉成本还挺大,个人愚见。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK