当前位置:首页 > 每日看点

写业务的话,go是不是垃圾?

卡卷网2年前 (2025-02-19)每日看点268

这两天有一个新项目用C#写了一点,想尝试一下用go重写一下看看效果,然后写了大概2天就放弃了

C#这边是ASP.NET Core+EFCore+SqlServer微软官方全家桶

换成go之后用的是gin+sqlx,数据库不变

技术选型这块go web框架看过好几个,比如goframe,echo,go-zero,感觉都太封装过度了内部全是黑魔法,不如gin简洁,而且star最多

不得不吐槽一下go的web框架真是多如牛毛,可以想象的到go工程师的工作现状,这家公司可能用gin,换一家可能用goframe,再换一家用go-zero,这就导致要进阶的话必须每个项目的源码都得大概看一遍,用Java的可能99%都是springboot,用C#的都是aspnetcore,学一个就够干活了

orm这块gorm和ent都看了一下文档,只能说对比efcore来说都是弟弟,所以我选择直接用sqlx手撸sql

技术选型完之后就开始从头搭建项目,然后就被恶心了两天

第一个点,swagger每个接口的请求参数,接口地址,接口分组都得在注释里面标注出来,巨麻烦,还没有语法提示,还好有gpt,不然我都不敢想象其他人是怎么写的

第二个点,time不能自定义format,官方默认就是utc格式,想换成yyyy-MM-dd HH:mm:ss格式的特别麻烦,gin绑定日期格式的字段也会有问题,仓库上面好几个相关issue从4,5年前到现在都还是打开状态的,难道干go的人做的crud系统,日期格式都是按utc或者时间戳返回吗

第三点,干活效率变慢了,一个正常的crud接口,请求参数得自己绑定,每一步还要判断err错误,加上从orm退化成原始的sql写法,再加上自己还要写swagger文档,干活效率至少降低为用C#开发的1/5

第四点,生态太拉了,java就不说了,连C#的生态都比不过,easycaching这种支持二级缓存的缓存框架没找到,fastreport这种报表框架也没有,分布式锁DistributedLock这样的没有,只有单纯支持redis的,orm也全是半残废,大公司的话有基础设施团队的话还好可以自己弄,小公司的话业务代码都写不完,还要自己写基础库,纯纯折磨自己

唯一的优点就是打包产物很香,编译后就是一个30多MB的可执行文件,复制就可以运行,启动到可接受请求不超过200ms(目测),对比一下.NET 9打包的成品,安装各种常见的库之后,应该要100MB起步了,外带服务器要装运行时,启动到可接收请求应该要1s(目测)以上了,这点确实秒杀C#


补充一下 time format的json自定义格式化功能在17年就提了,现在还没加上,就离谱

proposal: encoding/json: support struct tag for time.Format in JSON Marshaller/Unmarshaller · Issue #21990 · golang/go

以上问题导致我要别扭的自定义一个type MyTime time.Time,然后自定义json序列化反序列化,gin绑定query参数还得再实现一个接口(feat(binding): Support custom BindUnmarshaler for binding. by dkkb · Pull Request #3933 · gin-gonic/gin gin 1.11版本才加上的,2024年了都),传到数据库的时候又得转一遍类型到time.Time,绑定form表单里的时间我还没试过有没有问题

一个时间格式化的问题感觉搞得乱套了都

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/02/10894.html

分享给朋友:

相关文章

有哪些正规的兼职平台?

1.阿里巴巴云客服:工作优点是时间自由,可自主选择班次,不需要去公司坐班,多做多得 2.蚂蚁云客服:同样是阿里巴巴旗下的兼职平台,工作优点是时间自由,可自主选择班次,不需要去公司坐班,多做多得。 3.菜鸟优加云客服:工作优点是时间自由,可自…

为什么我感受不到 1500 元的手机比四五千的差?

我长期使用两千元左右的安卓机,一天接近8小时的重度手机使用者。 某天我突然想试试看传说中非常赛艇的苹果。狠了心,砸了钱。七千大样买了爱疯。 就这?什么辣鸡玩意。而且因为我一直更新软件,用了两年爱疯就卡了。并没有传说中的用四五年不卡。 用了这…

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在讨论服务网格之前,先理解一下为什么我们需要它。现代微服务架构意味着将应用拆分为多个小型、独立的服务,这些服务可以独立开发、部署和扩展。然而,服务之间的通信和管理成了巨大的挑战,例如如何保证安全的通信、负载均衡、监控与可观测性等。服务网格…

为什么这次 Mac mini 的 M4 版本价格这么低?

为什么这次 Mac mini 的 M4 版本价格这么低?

扫了一眼这里的回答,目测没几个人真买过 Macbook、Mac mini且真正当主力工作机用过。 这个初始(丐版)版本的机器实际谈不上多便宜,备受热捧有几个原因。 它这代产品整体做了重新设计,大幅缩减了尺寸,真正称得上 Mini 了。…

腾讯云为何在云服务市场败给了阿里云?

IDC领域,2010年以前,万网、新网互联、新网,三家公司瓜分天下,其中万网市场份额最高,排名第一。当时,万网的域名是 http://www.net.cn ,通过该域名就可以判断万网的地位。2010年阿里云成立,直接收购了万网,大量用户直接…

抖音上有一些账号搬运别人的视频,几乎一模一样,也没判搬运,他们是怎么做到的??

对于任何短视频平台来说,如何用最低的成本快速实现伪原创搬运都是需要解决的问题。 所有的短视频平台,包括抖音、快手、tiktok、视频号、小红书、B站,甚至是FB、推特、INS、YouTube,它们的查重技术都是类似的,只要你在网络环境设置得…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。