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

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

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

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

分享给朋友:

相关文章

为什么工资五千的人会一下花八九千买手机呢?

这其实是一个何不食肉糜的问题,这个问题其实很现实,越是月薪5000越需要高档手机。 前段时间看了一个纪录片,讲外卖小哥都用什么手机,结果发现绝大多数外卖小哥用的手机都是旗舰机型,有的时候宁可买二手也要买旗舰。 因为 1外卖小哥对ip68等手…

为什么 IPv6 突然不火了?

为什么 IPv6 突然不火了?

我国从政策层面推广IPv6,其本意是从国家竞争的层面打破美国对IPv4地址的垄断,但实际上却受阻于国内ISP和云服务商这类“IPv4地主”,实际分配到用户的,是功能打了折扣的“瘸腿IPv6”,IPv6直接寻址、点对点连接的优势很多时候都难以…

电视家停运了,目前有没有免费的电视直播软件?

电视家停运了,目前有没有免费的电视直播软件?

内部消息已经出现电视家5.0版 电视家是会停运的衍生品 这里有2个不停运的直接品 一、电视盒子 二、电视机本身 一、关于电视盒子的故事:电视家刚停运几天之后,我家首次花210块买了一年的电视会员。 88岁的亲爷爷喜欢,虽然看不懂电视剧情,架…

百度网盘、阿里网盘、OneDrive,三个个人网盘怎么选?

百度网盘、阿里网盘、OneDrive,三个个人网盘怎么选?

前言本文主要介绍如何在Linux Ubuntu系统使用Docker本地部署ZFile文件管理系统,并结合cpolar内网穿透工具实现远程访问本地服务器上的ZFile传输与备份文件,轻松搭建个人网盘,无需公网IP也不用购买域名和云服务器。 在…

领导微信发“辛苦了”,作为员工应该怎么回答?

千万别说“没事,不辛苦” 你这样回答 抹掉了自己的辛苦付出 还让领导没法接话 也不要说“领导,您更辛苦” 因为领导辛不辛苦 不是由你来评判的 是由他的上级来评判的 那到底该如何高情商的回应呢?分情况讨论 1、情景:领导让你帮了一个小忙,跟你…

高德地图靠什么赚钱?

高德地图靠什么赚钱?

10年前,马云不惜花了88亿把高德地图收入囊中,其实他根本就不想买,因为觉得自己根本用不到,考虑到互联网电商离不开地图导航,犹豫再三还是买下了!业内的很多人觉得他就是一个接盘侠,等着看他笑话。 如今,高德日活跃用户数远超1亿,成为大家出行必…

发表评论

访客

看不清,换一张

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