Golang Go语言中写代码真的好爽
自己也没搞清楚为什么写 Go 就会特别爽
有可能是规范和提示,这点动态语言不太完善
(但是不知道为什么 TS 就不爱用)
即使给程序来个大改也比较轻松不容易出错
还有代码是真的容易看懂
自己写的也好别人写的也好从来没想过能这么容易懂
Golang Go语言中写代码真的好爽
有可能是因为功能越多,写得越花哨,就越难懂
更多关于Golang Go语言中写代码真的好爽的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
因为 go 最初设计就是,尽量抹平新手和老手之间的理解与认知 gap ,让一个团队里不同水平的工程师都可以互相合作。
简单点说就是下限和上限差别很大。这点在框架开发上其实蛮牢的,你要么接受设计者的哲学,要么就自己另起炉灶。
这可能也是 go 在社区口碑两极分化的原因,喜好的人很喜好,不喜欢的人就是不喜欢。
心智负担低啊,一切都清清楚楚明明白白。
缺点是罗嗦、不够简洁,但优点也很明显,全透明,感觉很轻。
比如 Python 或 Java 里的类和对象,给人的感觉就很“重”,总感觉背着一大坨行李,也不透明,有时夹带魔法。
go 是世界上最好的语言
我支持 go ,你们可以打我了
我觉得最爽的是直接生成可执行文件,方便部署。docker 镜像也不到 50MB
用上 AI 后啰嗦也不是缺点了,就一按 Tab 的功夫
#7 然后变成了 tab 工程师(狗头保命
老实说,写 go 也五六年了,除了业务代码 AI 有点用以外,大多数情况我体感是 AI 只能帮倒忙。
尤其在写一些很底层的部分时,由于变量名称省略较多,经常都是 1-2 个字母的变量名,然后 AI 给你写的代码光给它 debug 就要费劲很多,还容易看错。
写过 go,还是觉得 c#舒服
我自己的观点,写 go 爽一个是因为并发模型,如果之前没用过这方面做的比较好的语言(比如 java ),就能体会到比较大的进步
另一个是 go 的多态实现,之前用的是传统 oo 语言,就会觉得很简单直接
最后是非常简洁,就比如 if 语句不带括号,还是非常舒服的,写 python 也挺爽的
但是 go 也会有很不爽的时候,比如错误处理,比如缺少模式匹配,比如难用的泛型和 lambda ,比如只有 interfaces 而没有 traits
另外 go 项目大了也是挺难看懂的,go 的一个风格特点是命名非常简单,项目大了以后,一些名字使用的地方和定义的地方就会隔得比较远,到时候满眼都是 ch, g, m ,就难懂了
我也觉得,心智负担低到甚至可以用记事本一遍写出可以通过编译的代码
那可能是因为你用的不是 cursor 吧,我用下来在补全方面非常精准,和其他补全有很大差距。
基本简单的东西都不需要自己写了,比如最基础的 err!=nil 再也不用手动写了
经常点来点去的 比较像自然语言 会好懂点
写 go ,有啥不懂直接点进去看源码,清清楚楚、明明白白。我写 python 时候那真是噩梦,标准库点进去只看到一个定义,想看参数用法只能找文档,还生怕用错了。被 *args 和 **kwargs 支配的恐惧,就像 go 写函数传参是 func test(arg map[string]any) 一样蛋疼。
我翻了自己几年前写的 Python oo 屎山直呼什么玩意看不懂
还好 Go 没 this ,self
简短的变量名官方规范好像是用在局部变量
像 for 里临时变量里,适用范围小应该还算可以吧
- ai 敲 tab 出来的业务逻辑大多数不能用,排查费劲。
2. go 如果加个 fea 能控制 goroutine 的生命周期就好了。我最近在写 python+django ,那报错信息云里雾里,好几行误导。python mysql client 还依赖底层文件。在一些老系统里装底层依赖真是要了老命;要 java 的话各种 o ,命名还贼长。
我的理解同一个逻辑需求大概率只有一种写法,不是很在意是否为最佳实践,其他语言在这方面包袱很重。
同时还有 Gofmt 自动格式化比较舒适,所有人的代码是一个格式,没有多余的无效引用和灰色的无用代码。
业务逻辑肯定不能交给 tab ,我觉得他适合当作 snippets ,一个自动选择的,超大 snippets 集
Build 后一个可执行文件可太爽了
一般的业务就是业务逻辑问题,复杂的业务如果不把架构图画好再下手,你就知道 ch 里面的消息飞来飞去有多痛苦了
#10
我先入门的 C#,现在我基本上看不上其他语言了。
go 是世界上最好的语言!!!
别说了。新出的仓颉也是一大箩筐。很烦杂,性能还没 go 好。
感觉不如 rust. 理解概念之后写起来也很爽。
有人会不喜欢 go 吗? 除了没学过没用过的喷子
写了几年 Go 之后你再让我回去写 Java 或者什么 SpringBoot ,我都不想写。
Python 、PHP 等框架比如 Django 、Laraval 很多人都夸很好,其实这类框架非常抽象,而且很多状态在运行时改变,导致很难自定义,尤其是需要改它源码的时候。尤其是那种多重继承、getattr(self, ‘<I am string>’) 这种满天飞,非常难以阅读,同时 IDE 分析也无能为力。当你使用它超出了它本身的功能范围,这类框架就是地狱。这个从我入行以来就非常厌恶 Django 这类框架,更别说 Laravel ,之前都是一直 Flask 为主。
Go 不仅在于非常简单,而是它设计时刻意排除掉了一些可能被滥用的大坑(继承->组合,goroutine 解决并发,gofmt 避免风格之争,和 Python 一样做什么都一种方式等等),从而促进整体开发效率、可靠性很高。这也是被人攻击的点,但我觉得 feature 很足的主流语言很多,但 Go 是少有专门做减法的。虽然语言说不上设计优美,有些甚至丑陋,但功能上没有什么大的硬伤,导致开发体验良好。
难道写个代码还能高潮不成
go 写了 5 年
前不久有些业务使用 python,一边写一边骂,代码追踪能追踪出几十个实现,写变量要跳转回去看看变量类型
go 的强关联虽然麻烦,但代码读起来真的是很方便,代码追踪也很准确
最初 php 换为 go,用了几周才习惯,毕竟 php 弱关联真的想怎么写怎么写,go 的什么都要先定义类型,
配合上 AI ,go 真的是 tab 工程师了
Go 应该不用过多考虑上下文吧?
go 强制统一了风格,没有那么多的语法糖,看别人代码感觉就是自己写的一样~~
go 的痛点在于反射 然而你要偷懒非得用反射
python 用上 typing 也挺好
丑陋的语法 + 高效的编译 + 紧凑的运行时
请问 go 可以写客户端吗
可以 你桌面端 web 端都可以写 但动态性必须得依靠反射
不太了解 C#,但经常听他的好评
局外人请问 他的爽点是在哪里?
印象里需要额外安装 runtime 比较麻烦
原来是些啥语言的/
go 最大的缺点就是语法太丑陋,其他方面都还不错
额外安装 runtime 是啥意思?不是所有语言都需要 runtime 吗?你是指部署时吗? C#部署也可以打包成一个文件。
至于说爽点,太多了,一时不知道从哪说起,不过别人再怎么说都没用,还是要自己试一试
写了几年 go 写业务逻辑的时候语法糖少会显得很啰嗦
现在写 ts 了 还是感觉 ts 更适合出活儿 代码写起来更行云流水
比如 go 是内置 runtime ,编译好后丢哪里都是直接运行
C#好像需要安装.Net 或 mono 才能运行吧
爽的是生成文件比较小的二进制,不爽的是感觉像是在写 01 不了解生态,从 0 写如果找库比如 web 和 orm 主流的比如 gorm 感觉用着不是很舒服,感觉不如不用的感觉脱裤子放屁并没有帮助我解决快速开发反而需要因为了解框架导致不熟悉, 我觉得框架不如更进一步就像有些代码生成器一样做个插件,直接生成 crud 得了
C# 也不需要了
现在 Go 的错误处理方便了么?
还是得写满屏幕的 if err != nil 么? 主要就是这个难受
是不是像打包 Python 那样把整个运行时和依赖完整塞进可执行文件
把整个.Net 运行时塞进可执行文件内感觉还不如安装一下好。。。
#10
世另我。背景:unity 全栈。
写业务 c# 起飞,比 go 不知道高到哪去了
#23
先入门的 go ,后面逐渐用 c#。c# 确实强大,写业务比 go 强太多
有 cursor 后现在方便了,err 不用再自己写,它根据项目函数自动精准生成合适的,去掉写时麻烦这个缺点后显式错误处理我觉得只有优点,对错误管理一目了然
#45
这么说吧,你要是写自己的东西,go 确实很爽,云原生。
但是像我日常都是在公司写业务,工具链什么的又不需要我关心。写业务怎么快怎么来,光是 linq 这一点 c# 就强很多了。
另外 go 写前端我也折腾过,只能说停留在爱好者的圈子,上不了台面。
所以是强在他的标准库是吗?
Go 确实没什么特别优秀的 orm
说说我,本来以 java 为生。
冲着内存占用低学了 golang ,写了点生产上的东西,
后面冲着无 gc 又转向了 Rust ,他现在是我最爱的语言。
今年跳槽,现在以 golang 为生了。我从不贬低我赖以谋生的语言,就像没人会砸自己的饭碗,除非蠢。我承认 golang 有很多独特的优点,但我也要说,golang 不是我认为的优秀的语言。
最后,作为一个多语言玩家,我不会对任何语言产生非此即彼的偏执偏激的评论。所以我很讨厌论坛里出现什么 java 味太浓的评论。
但是,就跟审美一样,我不会说服谁改变自己想法。您是对的,不要攻击我。
年纪大了,争论没有意义
#54
已经不是 orm 能解决的问题,只能说是设计思想不同吧。
go 加泛型这件事都有很多大佬反对呢,但是对于我们这种 crud boy 来说,泛型还是挺有用的。
#48
想啥呢,毕竟是 errlang /doge
如果没有 err 就不是 go 了
errlang 大大的好,希望不要引入 try catch
还好官方明确表态不会引入
#58
这点我同意,改了真就不伦不类了
#50 go 没用过,一路都是 C#,用过 DELPHI 和 PHP 语法没得和 C#比。
go 的少即是多
其实是
语言 特性少了
我们 编译器 开发工作量少了
听取社区意见少了
你写 go 的时候 工作量 多了
运行时耗时 多了
准确的说目前大部分 c#应用是需要安装运行时的, 也可以把运行时打包进应用里面自包含运行. 另外.net 8 之后在发力 AOT, 也就是不需要运行时了, 目前还不够成熟, 只能跑一些简单的应用
php 是世界上最好的语言!谁赞成,谁反对
go 没有那么多语法糖,学习难度低。虽然啰嗦,代码量大,但是理解起来简单。
Python ,TS ,JS ,语法糖太多了,特别是那种,一行代码实现多行操作的那些功能、语法糖,看着这行代码我都要想半天,它到底在干嘛。
例如:一行代码,循环一个数组,对数组内的值做 xxx ,把结果在提取出来放到变量。
会不会是两个屏幕,一个写 go ,另一个在放毛片?
几年前刚刚学习的时候一个方法里面差不多一半都是 defer 。
can’t agree more
#64 赞成
其实还好 如果你会用反射 但它的反射需要考虑该 type 是否为指标 这个做好其实还好 对代码掌控度变"多"了 被埋在地底的雷炸到变"少"了
深有同感
#72 为了避免反射使用泛型, 然后在泛型里面使用反射;使用反射的时候无法在编译时发现潜在的空指针问题, 那跟写 unsafe 有什么区别. 是因为我掌控变多了我才能这样写而不是这样写会让我掌控变多
学完了 rust ,golang ,java ,python ,node 不下 20 种吧。。。回顾了下,现在自己让最赚钱效率最高的还是 c++和 python 。。。
请问用的啥 ide 啊
之前用 vscode ,最近换成了 cursor
当然没办法发现 你要自己写好 这在哪个语言反射都一样 你要先用 Kind()判断它的类型 指针就是 reflect.Ptr 不是则是其它的 判断是否空用其它函数如 IsNil() 判断空值 IsZero() 没有一直用 unsafe 需求 我指的是因为有指标反射变的麻烦
一开始学编程就是学的 C#,写过的语言里面 C# 是最舒服的,Java 也能写但是十分不爽,也可能是我菜
Go 也写过,也非常喜欢,但是写业务还是束手束脚的,没有 C# 爽
我已经看到 go 、rust 、kotlin 了。然而都在说爽,没有一个说明白为啥爽。
不是啊,aot 原生编译,不想要运行时…
别混为一谈,我可说了为什么 go 爽,规范和简单
跳转快查 bug 简单
之前写的 python ,js 这样的动态语言,一些参数类型的修改其他地方根本不会提示,所以换到 go 后就觉得很爽,修改一处另一处直接红
类型系统也(个人)感觉比 TS 好,这点说不清为什么,TS 类型不太会写,Go 简单明了
还因为不是面向对象少了很多心理负担
还有我说用 AI 辅助强不是像其他贴那样直接把业务逻辑交给 AI ,让 AI 直接搞定整个函数
用过的人都清楚,复杂业务交给 Tab 模型简直可笑
我对 AI 辅助感到的爽是因为他解决了 Go 的“啰嗦”
Go 很简单,语法很明确,易懂
但同时这点造就了啰嗦
很多地方逻辑很少,就只是固定写法
AI 辅助很好解决这点,像是个超大 snippets 集
同时因为 Go 语言的简单,有需要 AI 解决方案的时候也能轻松理解逻辑,避免盲目使用 AI 给的函数埋下大雷
对于那堆量产贴,刚开始一两还好,现在越来越多,还只写个标题毫无内容真心感觉恶心
使用编译型语言相当于自带了一个简单的测试系统。
因为有类型系统,配合各种 AI 助手后,生成的 CRUD 代码,比解释型语言体验好不少
怎么突然间多了好多写 XX 好爽的帖子,哈哈。
c# rust ts
太对了,写点小玩意很方便。用别的还要安装环境。
怎么感觉这么多写 XX 好爽的帖子
直接跨平台编译生成二进制,语法简单,生态也还可以,要是错误处理像 rust 一样就更好了
也有可能正因为 Go 类型系统更简约让我更喜欢吧,之前主力 JS ,没怎么学就上手 TS 虽然好处是很多,但有些类型写的真的很累,开 strict 的时候很多错误根本看不懂为什么
同样没怎么学的 Go (基本只看了官方 tour of go )就能写完整的项目,看懂别人的项目,类型也完全无压力
用 C 比较多,也用 C++。
相比 Python ,Go 性能更高,开发效率比 C/C++快不少。C/C++对我也没啥难度,只是开发效率不高。
Rust 语法太恶心了,坚决不用;用 Rust 还不如用 C/C++。
Go 的整体开发体验是好的,就是最初接触的时候总是能感到一种其设计者将他们认为好的哲学强加给开发者的感觉。但不算缺点。
标题对抄啊,刚看到一个写 rust 爽的,😂,,
写码快乐还有人发钱。比高潮快乐多了。
爽归爽,编译不通过啊。
从 C++、Python 、Java 转到 Go ,感觉很爽,语法简单够用,没有华丽的辞藻,Less is more
确实,很多开发者在接触Go语言(Golang)后,都会被其简洁、高效和强大的特性所吸引,感觉写代码变得异常爽快。
Go语言的设计哲学强调“简洁即终极的复杂”,这种理念贯穿在语言的方方面面。它的语法清晰明了,没有多余的修饰,使得代码更加易读、易写。同时,Go语言提供了强大的标准库和工具链,大大简化了开发过程中的很多繁琐操作,让开发者能够更加专注于业务逻辑的实现。
此外,Go语言还具备出色的并发处理能力。通过内置的goroutine和channel机制,开发者可以轻松地实现高效的并发编程,而无需担心复杂的线程管理和同步问题。这种特性使得Go语言在处理高并发、高性能的场景时游刃有余。
当然,Go语言的爽快还体现在其社区和生态系统的繁荣上。作为一个开源项目,Go语言拥有庞大的开发者社区和丰富的第三方库。这些资源不仅为开发者提供了更多的选择和便利,还促进了技术的交流和进步。
总之,Go语言以其简洁、高效、强大的特性以及繁荣的社区和生态系统,为开发者带来了前所未有的编程体验。如果你还没有尝试过Go语言,不妨现在就开始学习吧!相信在不久的将来,你也会像我一样,感受到在Go语言中写代码的爽快和乐趣。