Golang Go语言提高 web 生产力

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

Golang Go语言提高 web 生产力
试了下 go 语言

- 开发代码简洁
- 编译部署简单
- 心智负担较轻

慢慢写一写工具,深入下

73 回复

跟 java 比代码简洁,跟 rust 比编译速度,跟 c++比心智负担

更多关于Golang Go语言提高 web 生产力的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


if err 和 json 加字段别名,可比 Java 啰嗦多了

哈哈哈,哥们一语道破

别闹,go 真的不能提高生产力,尤其是业务系统的生产力

go 能提高 web 生产了 😅

公司之前是 PHP ,现在切到 Go 了,写业务代码,真不觉得 Go 有什么生产力。

go 写一些网络组件工具挺好,用来写 web/业务系统怕不是脑子进水了吧,还生产力。。

b 格有了,kpi 长了,领导升了,项目烂了

借楼求个开源目录结构合理的 web 项目,参考下别人的优秀代码,现在的代码,都让我怀疑 go 到底哪里高效好用了。

年纪轻轻不去论资排辈,动不动还生产力,你把 Java 往哪放?退休前还有这么多年怎么办?

跟楼上一样

go 的高效在于写微服务的时候一键打包,多服务器部署简易。

为啥没人提 kotlin (服务端)

看破不说破

开发代码简洁???

不如 php 一根毛(狗头)


我们在用,总体而言比较舒适,
但和 spring 结合还是稍微有一点小坑,比如 springboot 必须要 2.4+才支持 dataclass 的 rowmapper ,在需要用到的地方需要手写一下从 resultSet 构造 dataclass 的 lambda
然后 spring data jpa 的 entity 所有字段都要为 var ,因为底层也是用空构造器构造然后一个一个 set

web 生产力?我大 spring 不同意

#2 这不都 IDE 自动生成的吗。。。

Ktorm 了解一下?

了解过 但是技术选型不是我做主。。

喂你们最近是要黑 go 吗 怎么这么多这种😄

哈哈,我感觉 jpa 很不舒服

我倒觉得动不动说人脑子进水的人脑子进水了

我就是不明白,所谓的业务代码是都是指什么?不就是 curd 、还有业务逻辑么?难不成还有那些高深的业务代码

不过只能说 go 或者真的戳到某些人的痛点
像我们这边的,毕业 1-2 年的原先做 c++/java 或前端的同事,拿本书 1-2 周过一下,就可以用 go 写业务代码

我是真的很想知道,楼上诸位说的业务代码,都是些什么业务代码?
不就是数据库表 model crud 、api 设计实现;业务处理逻辑;第三方系统对接?

难不成还有别的什么不成

就算是用 go 写 CRUD, 我也觉得比用 java 写的爽.适合自己的,就是最好的 :)

我非常喜欢 Go ,但我只用来写小项目。

小项目,Go 的优势比较明显,但是大项目就没办法吹得太狠了,实事求是才能避免无谓的争论。

比如代码简洁:小项目 Go 可以几个 struct 加几个函数直接开干,不用像 Java 那样考虑层层抽象。但项目大了还是需要层层抽象,需求经过几轮疯狂添加之后代码也很难说有多简洁了。

又比如编译部署,小项目直接扔一个二进制可执行文件出去就行,当然方便。但是大项目的基础设施都搭建好了,一切都自动化滚动更新,此时 Go 的优势又不明显了。

Go 写个能用的东西很快。甚至得益于 goroutine 的强大性能,写个能支持高并发的东西也挺快。但是要想写一个对开发者友好,具有一定通用性,方便扩展,易于维护的东西,就需要比较高的设计能力与品味了,而且很多时候必须要依赖代码生成,又进一步提高了门槛。另外个人感觉 Go 写测试的难度也比其他语言大些,国内用 Go 的公司写单元测试的比例估计很低

感觉没问题啊,优点很多

用 go 写 erp (狗头

在线人数小于 100 ,建议 PHP
在线人数小于 1000 ,建议 Java
最后考虑 go ,避免以下尴尬,一顿操作猛如虎,在线人数二十五


> 另外个人感觉 Go 写测试的难度也比其他语言大些

求解释

你看下 go 跟 mongodb 的交互代码说不定就要放弃了,我就是

从我的角度来看对比 Python/Ruby 肯定难写很多,很多时候非常难 mock 。举个例子 goroutine, 别人的代码里有一部分逻辑是 goroutine 完成的,而你的测试在 goroutine 没完成之前就结束了,线上这个东西没问题,但你的测试结果就是不对。而且测试轮子不多,比如类似 factoryboy/factorybot 的轮子就没看到让我满意的。

  • 心智负担较轻
    这是认真的么…范型和异常都没有这负担还不重?

CSharp 写 Web 最爽

json 字段别名, java 不也是得加吗? 不加 json tag 也是可以的, 默认都是 camelCase

go 语言有啥好的 库肯定没 java 丰富

库都是 github 的,我第一感觉就是会不会不稳定

第 n 届 v 站不定周期性语言大战开始!🍉

你可能不知道心智负担的意思,没有泛型和异常只能说体力上更累,但心智负担确实是减轻了。

大多数情况下,越是抽象,心智负担越高,越是 verbose 则心智负担越低。

日常 因为语言吵闹 好无聊 真的

目前入坑,感觉实现一个 web api 框架好 easy 。看起来好透明,😋。真到实际业务的各种封装,还没体会到。

go 的导出成员首字母要大写,跟大多数公司的 API 规范不一样,只能挨个字段备注别名。Java 没有首字母大写的习惯,且可以在 class 级别或者 json 库全局级别设置不同的命名规则,大部分情况下不需要挨个字段指定。

没必要,要开发效率就选 Java ,而且还可以本地化。

node 天下无敌

试过一段时间,简陋的语言,要啥没啥,写起来好累。

all-in golang 的国内公司也不少了, 他们选择的理由够直白的了, 比如说

go 堪称完美

go 在 web 方面比 php 性能好,但是在 web 方面还是没有 laravel 这种专业 web 框架有生产力。个人见解

之前公司还真写过,并没有什么问题,不是很懂有什么方面的业务对特定编程语言有难度

网站可以没有那么多访问人数,但一定要有百万级并发的架构。/doge

用 go 写业务代码真滴痛苦

go 写复杂的业务逻辑不如 Java ,生态差,也就是云原生和运维的优势。很多框架都是造 Java 重复的轮子

那这样的话还不如用 C sharp 写,有 Java 优写业务点,云原生支持好。全球范围看 asp.net core 的 web 框架比 sping 都多。

为什么一定要用 oo 思想写 java 然后怪 java 太繁琐???

别炒了,做业务用 C#,JAVA 最合适

  • 开发代码简洁?其实远不如动态语言
    - 编译部署简单?编译不挂代理试试,死的心都有。现在大多是 docker 了吧,一个命令的事情
    - 心智负担较轻?不一定

事实上大部分 web 业务都不是大流量高并发的,上 php 足以。

感觉它就是为了更快出货而存在

这贴我渐渐品出当年 PHP 的味道了啊

以后就是 “Go 是最好的语言”,然后两边互喷了吧?

docker 也得挂代理,装个什么包先要改源。。。麻烦程度一点不少。

如果有人已通过 goproxy 拉取了某一版本的 package ,除非作者向 goproxy 提出删除 package 的要求,否则这个版本的 package 会一直被缓存在 goproxy 中(即使作者删除 GitHub 仓库),也就是说:这个版本的 package 会一直可用。

我可能有点怀疑您有没有写过业务
go 在 web 业务上根本谈不上生产力,甚至说是拖后腿的那个

说得好!我用 python

所以讨论了半天,还是最熟悉的才是最有生产力的

个人愚见,go 会让简单的东西便得更简单,复杂的东西变得更复杂。

你说这种生产力,java 有啊,很多年前就有了。 那会儿叫 servlet 。

go 更适合跟 C 作比较,跟 java 比 web 还是差点意思

这几天遇到很多槽点:

1. 反射 必须事先指定类型,无法做到像 java 那样 仅凭一个字符串就能把方法给调用了
2. json 无法转化成 map ,因为 interface{} 无法像 java 的 Object 那样 拆箱成任意类型
3. 没有动态代理,没有泛型

这些问题 衍生出了一个更大的问题,就是开发一些 通用的 工具包,框架 会非常难。 必须退而求其次

这是个很严重的问题,会直接导致三方生态的薄弱

针对“Golang Go语言提高Web生产力”的话题,以下是一些专业建议:

  1. 充分利用并发处理:Golang天生支持并发编程,通过goroutines和channel,可以高效地处理大量并发请求,从而显著提高Web应用的吞吐量和响应速度。
  2. 优化数据库操作:使用数据库连接池、批量操作数据,以及选择高性能的数据库(如TiDB、CockroachDB)来满足高并发、大数据量的需求。此外,预编译SQL语句也能减少服务器对数据库的负担,提高响应速度。
  3. 利用缓存技术:在内存中缓存经常访问的数据,可以减少对数据库的访问次数,加快数据读取速度。Redis、Memcached等成熟的缓存库,以及Golang内置的sync.Map、cache.Cache等,都是不错的选择。
  4. 选择合适的框架和库:Gin、Echo等高性能的Web框架,以及GORM、sqlx等优化数据库操作的第三方库,都能帮助开发者更高效地构建Web应用。
  5. 使用标准库和工具:Golang的标准库提供了很多高效的工具和方法,如HTTP和JSON包,以及调试工具pprof等,这些都能帮助开发者提高开发效率和Web应用的性能。

综上所述,通过充分利用Golang的并发特性、优化数据库操作、利用缓存技术、选择合适的框架和库以及使用标准库和工具等方法,可以显著提高Go语言在Web开发中的生产力。

回到顶部