当前位置:首页 > 每日看点 > 正文内容

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

卡卷网9个月前 (02-19)每日看点136

这两天有一个新项目用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

分享给朋友:

相关文章

内存和硬盘的单位都是G,两者的功能是什么?谁能用简单通俗的方式来解读一下?

内存和硬盘的单位都是G,两者的功能是什么?谁能用简单通俗的方式来解读一下?

要弄清楚这个问题,首先要弄清楚什么是内存,什么是硬盘,在计算机的组成结构中有一个很重要的部分是存储器。它是用来存储程序和数据的部件。对于计算机来说,有了存储器,才有记忆功能,,才能保证正常工作。存储器的种类很多。按其用途可分为主存储器与辅助...

你是如何在不依靠工资收入的情况下赚到一万元的?

你是如何在不依靠工资收入的情况下赚到一万元的?

分享几个路子稳,门槛低,变现快,适合年轻人的靠谱的副业。绝对不是送外卖、滴滴、搬砖等等的苦力活,这几个副业都是能是性价比极高,还能让你快速成长的工作。想通过副业实现暴富、立马月入过万的同学,建议速速划走。今天撇哥就给大家分享100+个靠谱赚...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

MacOS真的比Windows流畅吗?

我现在公司配的机器,配置是绝对的大古董了惠普z230sff薄塔cpu只是个4770,没错不是4790k,4770全核睿频只有3.8g显卡更是古董,k600,已经结束驱动更新支持了,显存仅1g,跑分跑不过13代uhd核显内存是加到16g得,但...

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

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

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

有没有高手指点一下Google做SEO现在的技巧啊?心好累。

有没有高手指点一下Google做SEO现在的技巧啊?心好累。

搜索引擎优化 (SEO) 的目标是让 Google 在用户输入相关搜索查询时提供您的网页链接。虽然没有固定的蓝图可以保证您获得最高排名,但有几种 SEO 最佳实践(您可以将其视为 SEO 规则)可以增加您在非付费结果中获得良好排名的机会。谷...

发表评论

访客

看不清,换一张

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