Golang Go语言真的简单嘛

发布于 1周前 作者 itying888 来自 Go语言

Golang Go语言真的简单嘛
看了几天的 golang 基础语法,发现确实容易上手。但是当我用 golang 跟 mongodb 进行稍微复杂一点的 CRUD 的时候,我感到了痛苦。

官方的库文档对一些的查询,映射都要很困难的一点点找,google 、百度都是些过时的文章,或者都是相同的复制粘贴官方的示例。golang 出来这么久了,为啥感觉一些周边资料这么缺乏 。

相反用 java,springboot 集成 mongodb,都很快的能够开发完成。
学习 golang 主要是自己的服务器 java 部署程序麻烦、吃内存。

53 回复

https://go.dev/ 这一个不够用吗? 例子都给你准备好了

ps:springboot 就 springboot, 别带上 java 也别踩一捧一 🐩️

更多关于Golang Go语言真的简单嘛的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


简洁不简单😂

难的从来不是语法,再复杂的语言写简单的业务都不会太复杂。

有一说一,mongogodrive 确实有点毒……

我感觉 go 语言用来写中间件,云原生基础设置,没很重业务逻辑的组件还好。要是来重新票务这些很重业务逻辑的东西,可能就得多招点人了

反正需要写的逻辑就在那里,语法简单了,就要写更多代码。我写复杂项目的时候还是喜欢用 C++, Scala 之类的语言。

go 是给你写 infra 的,你非要拿去写 crud,肯定别扭

brainf*ck……

语法简洁 自由 随性

我也感觉到了,这可能是语言本身的简洁,并不能掩盖现实世界逻辑的复杂。

所以好的生态,会有人根据实际的需求,提炼约定和框架,而 GO 还在生态建设阶段。

总之,也不是不能用,生态还在艰难建设中就很容易陷入啥都得自己来搭脚手架和不时踩两个坑的窘境。

go 就不是用来写业务的

我写了一年多了,感觉到要学的太多。只是 go 的语法特性很多都不会用,更别说那些硬性知识了,楼上说的对,难得从来都不是语法本身。

jb 统计 go 语言开发者中,36% 在做网站开发,31% 在做各类中间件小型程序,26% 在做 infra 。
当然这个百分有重叠的部分。

又有人说 Go 不适合写业务,我倒看到 ent 的 issue 里有人问能不能把它移植到 Java 。

前段时间阮一峰推荐了一篇文章比较 rust 和 go 的,其实把 go 的优劣势讲得很清楚了

1. 标准库很强
2. 因此自己实现一个轮子很简单( trivial )
3. 因此现成的别人分享的轮子很少,因为这个轮子放出来也太简单了,警惕 npm 一行代码一个包

前段时间不是有人问 Web 框架么,结果好几个推荐直接用标准库撸的……

golang 语法简单,库也简单,所以开发起来比较麻烦,要什么没什么。
spring 要什么有什么,因为复杂,所以难。
难的层面不一样

简约而不简单。
没那么多套路,直接用起。

面向 c 出身的应该简单,对其他语言或入门选这个有点困惑

嵌入式 Linux 程序员学了一下 Go,感觉像找到了组织

看看这个: https://github.com/webpkg/api

你要的基本上都有了。

搞错了,你用 mongodb,上一条发的用的是 mysql.

唉,go 写 crud 确实很恶心

go 写 http 程序是真的爽几行代码就能处理 request 了,换做是 C++搭个框架一天过去了

借坑,求一个练手的项目
感觉最近有关注到好几个语言,最后都是语法会了,不知道拿什么项目练手

当然除了 web 框架外哈,感觉 go 的 web 框架只是冰山一角,应该还有很多东西可以学,有点摸不着头脑

确实,有些时候很方便,写些简单的命令行工具。

go 简单但是有些时候开发起来烦,但我还挺喜欢的。我不喜欢 java 生态里,很多包封装连亲妈都不认识了。比如你引入 readis 的 client,你看 redis 的官网文档是没有什么用处,你的看 client 的文档才会用。永远都蒙着一层纱的感觉,换个 client 可能一切都要重来。

多了不少库和语法糖的 C

只说写代码而言,这个时候就想到了 PHP 的好

Go 的简单在于一种功能往往只有一种实现方式,可以将更多的经历放在业务上,而不是思考各种实现方案上,团队中有技术很烂的人也不至于写出太烂的代码。所以目前看来是比较适合企业团队生产的。

Go 出来这么多年,初期几年人们大多都在喊口号,说 Go 怎么怎么好,但真正学了、用起来的很少,也就是最近三年才有越来越的的企业项目用起来。新语言肯定不如老语言资料和轮子那么多、全,这方面 Java 几乎是无敌的,毕竟沉淀了二十多年了。用新技术你就只能多看官方文档、多提问、多看源码。

具体遇到了什么问题可以发出来让大家帮忙解决,只是抱怨的话不会有任何积极意义。

话说回来,用了很多年 Node.js ,因为都是 JS 技术栈的,所以对接前端、对接 MongoDB 都很顺滑,性能多数情况下表现也不错。现在微服务大行其道,一个项目也不一定完全使用一种语言来开发。

Java 项目部署普遍比较麻烦,容器是解决这方面问题的一个有效方案(简直为 Java 栈量身打造)。

mongogodirver 确实难用,用 mgo 吧

你这种需求用 .net core 不是很好吗~

我倒是讨厌 Java 老的那一堆
什么 ee 、xml

Go 的简单在于多线程开发的控制方便…

go 的库文档看起来很详细,但是有很多都没有细致的说明,很多的 interface,有时候感觉在看 js

坚持,多写多练习,多看别人的代码怎么组织的,使用 2 年已经感觉渐入佳境。

不仅仅是命令行工具,我司的整套推荐系统都是 go 的

java 不是一个 jar 包 就搞定?
而且 jvm 本身就是虚拟机了, 为什么外面在套一层容器? 我一直百思不得其解。

看项目情况吧,能打成 1 个仅依赖 JRE 的 Jar 部署就很简单;但是如果因为某些需求不能打成一个 Jar,以及涉及到复杂的环境配置,部署难度就有可能比较高。
传统的运维架构能满足需求的话可以不用容器,如果希望使用云原生带来一些好处的话(比如时效和成本),就可能得用容器。

比如 Go 完全可以编译成一个可执行文件,但如果希望使用云原生的方案来满足集群访问控制、优雅升降级、容灾等需求就还是得套个容器,因为云原生设施管理服务的最小单位就是容器。

如果对容器没有需求的话,就没必要用。

路过吐槽下,ls 一堆人不看帖子就强答也是醉了

lz 吐槽的分明是 go 语言里一堆包不好好写文档,想完成一个功能查文档查到怀疑人生。功能用法写得不详细,该写的功能不写到文档里,文档里没多少有用信息,一些用法功能不去搜项目的 issue 你根本就不会知道

这个真是 go 语言很多包的一大问题,一批评就动不动说你不会去看源码?

好的文档是昂贵的,Golang 生态和用户体量没法跟 Java 比,换你自己是 mongodb 的老板,你会在 golang 上投入跟 java 等量的资源吗?
而且 mongodb golang 的 driver 我也用过,没有你说的那么不堪,如果你能熟练看懂英文文档的话。
https://godoc.org/go.mongodb.org/mongo-driver/mongo
大部分方法都有 example

问我问我,我用 mongogodriver 好长时间了,基本的坑也踩过了

countDocument()这个方法怎么用才不会卡,用聚合实现 count,真的难受

有些没文档,但是有写测试。。。也能从里面找到实例

不要一上来就问简不简单。。。。。

如果你喜欢 C,你一定会喜欢 Go

不清楚你说的卡是指什么.可以给个例子吗

确实是很方便的,我们团队内部基于 go-zero 开发,基本上可以专注于业务代码开发,而无需关注服务治理和缓存等

这,我觉得 c 不错,但是我对 go 不感冒啊

可以写个内网穿透的小工具

数据库和语言选择也有一定的关系,mongo 还是适合配 node

复杂的环境配置可否举一个例子?配置是否可以打包到 jar 里?

这个不同项目都会有不同的情况,比如需要热插拔一些 Jar 依赖包,或者依赖一些系统动态链接库,再者就是需要特殊的定制的 JVM 和启动参数来运行 Jar 包,还有日志采集、性能监控、持续部署工具……不清楚是否都能打包到一个 Jar 里。

容器是一个工具,工具是为需求服务的,有需求就可以考虑用,没有需求就没必要用。

关于Golang(Go语言)是否真的简单,这是一个相对主观的问题,但可以从几个维度来探讨。

从语法层面看,Go语言的设计确实力求简洁明了。它没有复杂的继承和多态机制,而是采用了结构体嵌套和接口组合的方式来实现代码的复用和扩展,这使得初学者能够更快地掌握其核心概念。此外,Go语言的语法规则清晰,减少了不必要的复杂性,如自动类型推断、简洁的错误处理机制等,都使得编码过程更加流畅。

然而,简单并不意味着容易掌握所有方面。Go语言的并发模型是其一大亮点,通过goroutine和channel,开发者可以轻松地编写出高效的并发程序。但这一特性也要求开发者对并发编程有一定的理解和实践,否则可能会遇到诸如竞态条件、死锁等问题。

此外,Go语言的生态系统虽然日益丰富,但相对于一些更成熟的编程语言,其社区和第三方库的支持可能还在不断完善中。这意味着在某些特定领域,开发者可能需要花费更多时间去寻找合适的工具或库。

综上所述,Go语言在语法层面确实相对简单,但其并发编程模型和生态系统的完善程度则可能需要开发者投入更多的时间和精力去学习和掌握。因此,是否觉得Go语言简单,很大程度上取决于个人的背景、经验和学习方法。

回到顶部