转 go 半年,初期痛不欲生,难以想象 go 的 web 开发生态如此简陋
写了半年感觉慢慢适应了,虽然很多东西都要手写(之前写 java 的)但感觉好像写啥都是一把梭,很快都能写完了。。。
难道这就是「大道至简」,我悟了。。。
(纯调侃)

我第一份工作就是用 go 写 web 服务,之前也没系统的学习过别的语言写法,反正觉得挺舒服。
但是遇到几个 Java 转 go 的同事写出来确实很啰嗦。。没错,,开战吧!

萌新不懂就问。web 不是 php 的活么?
不是很懂 ruby go python 的 web 后端代码是如何维持一个庞大的体量后还能维持更新的。
java 都感觉比较麻烦了。
虽然我也用过 django 之类的。但是感觉没什么先进性?

写的痛快舒服不一定钱多,比如 Python web 。

工作中同时用 spring boot 和 asp.net core 前一个库多 写起来啰嗦,后一个库没前面多,写起来舒服 。每次自己想用 go 做点东西,ide 啥的弄好开始写,非常痛苦跟难受,然后不了了之。。。

前几天接了个 php 的小活,啥都没有$一把梭是真的快乐啊

啥?写 Java 都成幸福的事了?
用 Ruby 你不是爽到飞上天。

是的写 api 舒服,但如果要写 web 比如 html 模板啥的,痛苦的一 p ,最后还是换成 php

#3 Python 重构的时候, ...

需要什么 ,就造什么 ,多好啊, 有时候越复杂不一定好

别和我说大道至简,真的过敏。

老 Django 项目,FBV 写法,几乎不用什么第三方生态库,

甚至操作数据库都不用 Django ORM ,够大道至简了吧?

然后一堆类似功能复制来复制去的,就算是 Flask 也不会写成这样啊。

那是人的问题

#11 换个大神来,把通用功能抽取出来,层次分清,代码通用,不又是一个新轮子(框架)吗,功能越强大,免不了就越重。

月经贴

不太懂 go; go 能用来开发 web?
web 不是前端吗? 前端不是 JS, vue, react 这些吗?
后端不是写接口的吗?

我是从 java 转 go 的,我感觉写 web 应用 go 和 java 都差不多。主要再写业务架构上面有很大的区别,我们团队的搭建架构都是模仿 java 写的,导致上层基于这个架构写的人很难受。

例如用 go 写 ddd 的架构代码,不复杂的项目还行。复杂的项目,你会发现真的要写死人。

我以为“层次分清,代码通用 ”是一个好项目的基本标准呢

web 前端,web 后端,你说的前端就是 web 前端,写接口的后端就是 web 后端

#16 我的意思是,简不简是由需求复杂度决定的,靠换个语言起不了大作用。但是把项目搞繁芜却很容易,选个足够复杂的框架轮子就行。所以总结下来,这和人有关系,和语言没啥关系。

我是 java 转 go ,这两年效率翻倍(感觉吐嘈 go 的基本都是玩梗,什么 err != nil 这种

嗯,我的意思也是,语言再 NB 用的人没用好也白搭

go 写 web 的服务是挺好的,适合前后端分离的项目,路由跳转也别管,就接个参数返回个 json 省心的很。配合 copilot 写写注释按按 tab ,编程体验还是很愉快的。

我似乎也有过这样的感受,不过现在又开始嫌弃了。
我也是 Java 转 Go ,快 4 年了,准备转 Rust 了

java 整体配合好却不尽兴,可在善解人意这方面没得说
net 与 java 相反挺尽兴的,不过有时候太过于主动很累
js 类似 java 但时间一久就腻了,只能凑合着过
ruby 属于平平淡淡类型
go 它的一切你都可以掌控,就是太过青涩
rust 太超前了,大多人坚持不住
python 非常恐怖,所有人通杀,时间久了就出不来了
c++永远的存在,没有一个人能掌握它之心
与 php 美好的时光,是甜蜜的糖

我想咨询一下,有什么东西是 java 不需要手写,golang 需要手写的?

也许这就是为了优化工程复杂度而诞生的语言吧 //狗头
统一的 fmt 带来一种奇妙的体验,看别人的库就像逛自己家一样,里面在干嘛都很直白.

指的是第三方依赖很多 不用自己造轮子

新东西肯定要造轮子

java 的三层架构太深入人心了,以至于写 java 的在切到其他语言以后免不了总是会有意无意的弄出这种分层模型。

go 里面 map/reduce/filter 都得写 for 循环让我不能接受。。。

这个时候就可以去想为什么存在三层架构,有什么作用,什么时候才用到。部分的人不去深究而是照搬去做或者吐槽 Java 垃圾

别说写的爽不爽
光 go 的:

  1. 开发环境配置
  2. 编译速度
  3. 启动速度
    就让我爽的嗷嗷叫的,以前配置 php\java\python 的环境,安装依赖那些真的烦

    #29 想回复点错成感谢了……1.18 后可以用 github.com/samber/lo

我作为一个初学者感觉两个不舒服的地方:

  1. if err != nill return err
  2. 找数组下标(没有范型的时候,很烦)

    java 需要安装什么配置?

idea 自带 jdk 下载

自己无非就得配置一个 maven 而已

如果是 mac 的话 brew install maven + 复制别人一个 settings.xml 的事

我是不知道 Java 有啥麻烦的

#31 go 的包管理我觉得不如 maven 好用

#35
确实 只是够用

#34
java 我更多的吐槽是:

  1. 启动速度
  2. 资源占用
  3. 下个 java8 还要注册(我知道可以去其他镜像下,只是不满 oracle 的态度)

我非常喜欢一个二进制就可以运行的感觉

所以 rust 在这里就没有生存空间吗?

用 go 写 web 的都是背离了 go 的设计初衷的,自找麻烦

有没有 show case 可以对比一下?

Spring Boot Boy ,接触 Go 的第一天就爱上了!

连个像样的枚举都没有,真的是语法糖太少,味道特苦

rust 写 web 有什么特别的优势?

感觉 go/rust 更能考验一个 coder 的代码组织能力和思考能力

一个不小心就一大坨冗余代码。再一看标准库的各种封装。io 、net 等接口的配合就想说鹅妹嘤。

做 java 开发的现在转向 go ,感觉除了少了一些轮子但其他还是很爽的。

写其他语言的时候,有一种心理负担就是”这个方法用的对不对?这个方法性能怎么样“,但是到 Golang 这里就没这么多逼事,循环一把梭

go 语言还挺好的,有点麻烦

go 很多都要造轮子吧,可能是我的错觉

说的是接口吧,写网页还得是术业有专攻,一个语言可能什么都能干,但在一些方面可能就比不过其他语言了

啥? 装 jdk 比装 go 编译器 慢很多很多? 你别骗我,我读书少。
编译速度? 启动速度? 那不是 spring 太大了导致的吗? 要不要换个 框架? 这个锅 java 不背。

相信我,一个 jar 就可以运行的感觉 是一模一样的。 jdk 是一次性安装,不麻烦的。 而且 linux 基本上自带 openjdk 。

这只能说,go 的规范少,你写 java 不管规范 也是一把梭。 语言的锅 , 规范的锅,框架的锅,你好像一点都分不清楚啊。

雀实 环境是真的方便

#51

  • " 装 jdk 比装 go 编译器"
  • 这个我没有理解
  • "那不是 spring 太大了导致的吗? 要不要换个 框架? 这个锅 java 不背"
  • 确实是框架,但是现在我们所说的 java 多少能摆脱 spring,主流市场说 java 等于 spring 有点太过分,说个约等于我觉得也没很离谱

我们以前花大力气把一项目从 Java 迁移 go ,结果代码多了,时间成本多了,性能只比老项目阻塞 Servlet 那种快。和新项目 spring webflux,vert.X ,netty 那种的反应式项目比相差无几,有时 go 还不如。 个人观点:go 比较适合大厂造轮子,写底层中间件,不适合写业务。唯一 go 优点是云原生这块领先 Java 。 但要是云原生过渡,我估计会选 asp net core,java 程序员好上手。

请教一下 Golang 中大型 Web 应用的资源占用如何,比个 "Hello ,world" 就没意义了。

比生态就要绑定 Spring ,比轻量又甩锅给框架,这不是双标吗?