Go 到底优势是在哪里?

2019-10-17 17:24:00 +08:00
 upday7

我们现在的项目是用的 django+restful 做接口,最近接触到很多 go 的内容,被网络上的讨论有点弄晕了。如果做接口后端,为什么 go 比 python 有优势,除了速度这些还有什么?

22179 次点击
所在节点    Go 编程语言
153 条回复
dhssingle
2019-10-17 22:48:28 +08:00
@okampfer #53 .net core 3.0 可以打包成单文件,2.0 就可以不用单独安装运行时了。
TangMonk
2019-10-17 22:55:25 +08:00
@okampfer 3.0 开始就可以了,和 go 一样跨平台编译。
stevenbipt
2019-10-17 22:58:08 +08:00
我是来泼冷水的~
1. 并发很容易,但是你确定团队里面的每个初级程序员都能够写好并发代码?不会出现数据竞争,死锁这些问题?就算有 go race 辅助检查,一旦出现幺蛾子这玩意儿调试起来也够呛的
2. 静态编译单文件执行,只要改动一点硬编码东西就得重新交叉编译上传启动,服务器多了就算使用 ansible 上传和跑起来也是够麻烦的,有时候觉得热部署也挺香的~
guonaihong
2019-10-17 23:05:14 +08:00
看目标人群,如果以前用 c 不停 malloc, free 内存。用了 go 之后感觉真爽。。。很多函数名和系统调用相同, 也会有一种新切感。
okampfer
2019-10-17 23:06:42 +08:00
@TangMonk @dhssingle 想问一下两位平时开发.NET Core 都是用的什么 IDE 呢?
dodo2012
2019-10-17 23:15:25 +08:00
@Leigg valng 不就是 c 的语法糖么?现在改进了?最开始看的时候就是转成 c,还有用字符 串替换的方法转,
back0893
2019-10-17 23:15:26 +08:00
反正都是写网页考虑下 php?
反正加个 nginx 就能跑
第三方库也多,写法看个人意愿
从原生到复杂的框架都能写
(其实 go 的工资高,反正都是面向工资编程为啥不用)
jessun1990
2019-10-17 23:17:30 +08:00
我觉得这么一个道理: 使用相同的时间成本和学习成本, Go 的收益更大.
jessun1990
2019-10-17 23:18:13 +08:00
热烈欢迎 LZ 把我的慕课网课程买走学习, 贼好的课程.
okwork
2019-10-17 23:22:04 +08:00
@upday7 裸跑 gunicorn,static 静态文件放哪里的?都走 cdn 吗?

--------

Python 项目部署也是可以递进的。最原始就是直接纯裸跑,高级一点套个 uwsgi/gunicorn,再高级一点前面套 nginx,再高级一点前面套负载均衡,后面分布式数据库。这四层套下来,什么并发都不是事啦
pipi32167
2019-10-17 23:25:25 +08:00
@zzlettle 说的对,用 python 太简单了,不利于增加码农的薪资水平
AmrtaShiva
2019-10-17 23:27:23 +08:00
@okampfer 有 IDE ?
mamahaha
2019-10-17 23:44:07 +08:00
大企业用 go 是为了省钱;小企业用 go 是为了起哄。
hu8245
2019-10-17 23:44:14 +08:00
为什么不问 Rust 有什么优势? 不配有姓名吗
Pythondr
2019-10-18 00:55:11 +08:00
开发不仅仅只有 web 开发,多扩展知识面吧。
多了解了解基础设施的设计开发,不要将眼光和思维局限在接口开发
index90
2019-10-18 01:15:51 +08:00
@stevenbipt #63
1. 水平不足就不写并发代码了?水平不足就可以不解决性能了?不止一次见到有人以水平不足去怪一项技术垃圾了。
2. 即使 Java 的热部署也是有要求的,不是所有更新都能够热部署,以前巨石架构用热部署还情有可原。都 9102 年了,微服务都快淘汰了,还不知道蓝绿部署,滚动发布。go 编写服务,配合容器化+k8s 编排,发布是很轻松的事情。
dreampuf
2019-10-18 02:34:02 +08:00
- 强类型
- 并发便捷且轻量
- 部署方便,依赖管理


ORM 不是全部工作内容,倾向于手写语句。Docker 引入一个更大的问题,容器化不比换语言简单。正如 Python 在科学计算届的火热,Golang 在容器化和 K8s 的背景下也得到长足发展。

> 做接口后端
取决于开发者本人,熟悉什么用什么。两边差距达不到质变。
qqxx520
2019-10-18 03:03:35 +08:00
脚本语言和编译语言,各有千秋,脚本语言要不是开发效率快,要他何用,编译语言要不是运行性能高,要他何用!
用编译语言来和脚本语言比开发效率,天生不足,反之亦然。
等到将来那一天 python 等那些脚本语言都绝迹了,
cnnblike
2019-10-18 06:47:01 +08:00
部署真的很烦人
charlie21
2019-10-18 06:53:29 +08:00
省钱

以前要堆机器(物质资源)才能解决的事,现在换个会某编程语言的人(劳力资源) 就解决了。便宜资源 换 贵资源,达到同样效果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/610366

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX