go 是个好语言

2019-04-08 00:38:09 +08:00
 baojiwei

最近在学 go。

去年 Qcon 听了下 go 语言介绍,很多特性当时听怕了,还是让我觉得有点不习惯。不过实际看了下,其实也还好。 如果能够像 python 一样简单明了,少一些约定,就更好用了。(当然 python 的约定也不少,设计理念也要画不少脑力去想,比如鸭子方法)

感觉很多操作都很需要技巧(这点 py 也是,不过 py 的技巧用的很舒服),需要技巧就需要对语言很熟悉的了解,不像 Java、C#一看看上去就很稳重,不搞事情。

  1. 轮子稍显有点少。不知道看哪些主流轮子。求各位大佬推荐。
  2. 想加入一个 go 的社团。python 的社团很强大(至少在国外是很强大,去年国内的 pycon 开成那个样子,和 python 语言的热度形成鲜明对比)。不知道有没有大佬引进圈子。
  3. 各位大佬有没有好的项目或者轮子推荐一下,我想看着代码学 go。最好是能体现语言特性和设计思路,但是入门难度也不要太大的项目。比如,python 下我就会去看 sentry 或者 celery 或 flask 的源码(吐槽下 celery 的源码,:-()。最好是类似于这种类型的项目,能看到语言本身的特性。

谢谢各位大佬推荐。

9829 次点击
所在节点    Go 编程语言
49 条回复
Vegetable
2019-04-08 09:53:05 +08:00
@trys1 我觉得 sanic 这个姿势没问题.python3 已经发布这么多年了还不是一大票人用 py2?async/await 出来之后大家觉得很棒,但是并不会马上切过去而已.同时 sanic 现在也并不成熟,3.6 和 3.7 下的代码都不能通用.

python web 这么多年下来,能生存就意味着协程不是必要的.说协程不是 web 最佳实践我是认同的.没那么大必要.uvloop 提供的所谓 blazing fast 更多是一种炫技
no1xsyzy
2019-04-08 10:27:29 +08:00
@love Linux 内核的代码规范甚至是 8 宽 tab
https://www.kernel.org/doc/html/v4.17/process/coding-style.html#indentation
也别看了。
jojopro
2019-04-08 14:32:44 +08:00
首先一些被墙的包会让你抓狂 虽然可以使用代理
baojiwei
2019-04-08 14:38:53 +08:00
@jojopro 嘿嘿嘿,路由器自带 ss,在办公室写代码感觉还是很舒服的
LifStge
2019-04-08 15:11:48 +08:00
so let ’ s go
blacklee
2019-04-08 15:28:02 +08:00
那么到底用哪个包管理工具呢?
secondwtq
2019-04-08 18:48:42 +08:00
@baojiweicn2 我只是专门挑坏处说的
onlyhuiyi
2019-04-08 22:33:02 +08:00
@blacklee 可以用 go mod
ManjusakaL
2019-04-08 22:36:27 +08:00
可以吐槽下去年的 pycon (我是北京和成都场的负责人。。

欢迎黑&提建议。。

今年继续改进。。
ManjusakaL
2019-04-08 22:40:59 +08:00
@baojiweicn2 实际上目前的协程库都没法规避 GIL。没法规避 GIL 带来的副作用也很多。。典型的一个 block,全局 block。

而且 asyncio 就不说了,17 年的爆出来的 SSL 链接泄露问题到现在都没修,官方直接劝退

可以参看我之前的吐槽

https://www.zhihu.com/question/266094857/answer/304655007

和官方的 BPO

https://bugs.python.org/issue29406

所以 Python 的协程路还长。。
baojiwei
2019-04-08 22:52:56 +08:00
@ManjusakaL 有种背后说坏话被抓到的赶脚。[给大佬跪了]
ligyxy
2019-04-08 23:22:51 +08:00
b00tyhunt3r
2019-04-09 02:19:16 +08:00
可惜我们做大型游戏开发 go 完全不能用
SlipStupig
2019-04-09 07:00:15 +08:00
go 没有 sklearn、gensim 和 pandas 这种生态,如果有了,果断放弃 python
yesono
2019-04-09 08:09:41 +08:00
对运维来说,go 太方便了。就一个二进制 平台通用。在 k8s 跑起来简单,镜像小,性能等等特点。现在很大公司后端微服务等底层基础架构用 go 开发的多。
kios
2019-04-09 08:11:23 +08:00
@jojopro golang.org 的包在 github 有 mirror
thet
2019-04-09 08:52:50 +08:00
@love 有 go fmt 你慌啥,go 格式都是统一的
baojiweicn2
2019-04-09 09:33:38 +08:00
@yesono 编译后是方便,但是 docker+k8s 对很多语言和框架都很友好了,运维难度都大大降低
baojiweicn2
2019-04-09 09:34:48 +08:00
@SlipStupig go 还是有一些不方便的,而且 go 作为工程化数学语言还是要比 r 和 python 弱一些
dabaibai
2019-04-09 09:42:24 +08:00
go 很好玩 对于我这种写了 10 年的 C/C++的来讲 简直不要太舒服

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

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

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

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

© 2021 V2EX