最近开始用 Go 拆分原有的单体应用。单体应用是用 Python 写的。
感受:写惯了 Python 真的不想写 Go 了。。。。Java ?更不想写了
Go 写 proxy 这类与具体业务无关的还是挺爽的。
1
l1093178 2018-03-13 19:05:15 +08:00
毕竟 Golang 渣渣抽象能力,就没几个好用的轮子
|
2
orangeade 2018-03-13 19:13:20 +08:00 via Android
写 Kotlin ?
|
3
gs139 2018-03-13 19:16:54 +08:00
Golang 把残缺说成精炼
|
5
gamexg 2018-03-13 19:37:36 +08:00
python 怎么解决重构的问题?
项目比较大的时候改一个结构真的不知道会影响多少地方... 之后就觉得还是编译型的比较舒服,至少编译时就会报错,而不是运行时挂掉。 当然测试只覆盖了主要流程,一些非重要的没覆盖。 |
7
amaranthf 2018-03-13 20:01:31 +08:00 3
写 python,写的时候确实比 go 要舒服。
但是……写 go,可能写 300 行,然后运行,一遍过;写 python,写 100 行,可能要调 3 次,有 2 次运行异常,1 次运行结果不正确…… |
8
gs139 2018-03-13 20:03:17 +08:00
@gamexg 编译型写起来是比较有安全感,但同时失去了灵活性,动态语言两三行代码就完成的事,编译型的可能得写好几个类。 鱼与熊掌不可兼得吧。
|
9
huclengyue 2018-03-13 20:03:25 +08:00 via Android
@ostholz 不能同意更多。。
|
10
qfdk 2018-03-13 20:24:33 +08:00 via iPhone
python 全是坑 版本各种不兼容 极力鄙视 非科班最爱; go 那玩意儿编译出来错都不知道咋错的 语法不喜欢....; js 还好 明白了原理 npm 还是好用
|
12
qfdk 2018-03-13 20:48:47 +08:00 via iPhone
@chenqh #11 macos 现在自带就是 3 了…… 我同事为了改版本 居然把系统库删了换 结果悲剧了…… node 只要不是 ubuntu 源的 0.10 几乎没啥压力 npm i n -g ; n latest 不解释
|
15
lhx2008 2018-03-13 22:12:29 +08:00
感觉还是写静态语言舒服,按接口写实现就好了,IDE 直接把文档糊你脸上,也不用操心各种神奇的返回值。
|
17
qfdk 2018-03-13 22:40:58 +08:00
@shiroming 这玩意倒是知道。。好像还有个 virtualenv 啥玩意儿的。 但是也是够恶心的。
还有的问题就是 linux server 上面 没有 LC_ALL 设置也会报错 摊手。 作为一个普通的用户来说 我不需要这么复杂的玩意儿。 日常看到 有 python 写的开源项目宁可造轮子也不拿来折腾自己 |
18
lightening 2018-03-13 22:54:26 +08:00
要不楼主试试 Ruby ?
|
19
Osk 2018-03-13 22:57:36 +08:00 via Android
动态一时爽。。。
我现在写 python 都尽量把 type hints 加上,然而,python 3.5 以下的居然不支持,2333 |
22
likuku 2018-03-13 23:07:35 +08:00
@qfdk pyenv + virtualenv 不要太方便了,py3 已经自带了 virtualenv 功能,没必要为了个版本问题就动用 docker
|
23
kikyous 2018-03-13 23:12:19 +08:00 2
python 的依赖管理真的屎一样
|
24
Paddington 2018-03-13 23:16:11 +08:00
@kikyous 也没那么烂啦。有哪点是很想吐槽的么,我帮你看看现有的方案?
|
25
shiroming 2018-03-13 23:27:18 +08:00 via Android
@qfdk 没觉的有啥恶心,pyenv 管理 python 版本,virtualenv 创建虚环境隔离系统已安装的包,妥妥的
|
26
kikyous 2018-03-13 23:32:27 +08:00 via Android 1
@Paddington 你用过 ruby 的 bundler 吗?我感觉 ruby 处处都体现优雅
python 的包管理据我所知都是基于虚拟环境的,把解释器和包放在一个指定的地方,先不说包和解释器不能共享的问题,就是每次都要激活一下虚拟环境就很烦 而且一大堆工具 virtualenv, virtualenvwrapper, pipenv 但没一个真正好用的,python 在很多方面都是如此,解决方案一大堆,没一个顶用的,就像 web 框架一大堆,没一个能和 rails 有一战之力的 |
27
justfortest 2018-03-13 23:32:50 +08:00
要不试试 ruby ?噫?传进来的是什么东西?这个第三方库文档怎么没有提到这个方法?看源码是,ctrl+鼠标.....你是跳转到定义啊?黑人问号。。。
|
29
gs139 2018-03-13 23:33:09 +08:00
曾经为了用 C#解析一个结构复杂的 json,写了一大堆类,差点累到吐血。然而用 php 只需要一个 json_decode 函数。😌
各有各的好处,不能光看到静态语言的好,却看不到动态语言的好。至于重构?我接的私活有重构的需求吗? |
30
ZoomQuiet 2018-03-13 23:37:48 +08:00
是也乎,( ̄▽ ̄)
PHP 是最好的语言... 这时, 写点儿 PHP ,你就会从内心愿意写 go 了 |
31
cuebyte 2018-03-13 23:44:02 +08:00
go 的抽象力都不如 java,樓主你真的寫過 java?
|
33
Paddington 2018-03-13 23:47:48 +08:00
@kikyous 好吧,对于你的回复我保持沉默,纯为喷而喷。
|
35
l1093178 2018-03-14 00:14:58 +08:00
|
37
popbones 2018-03-14 02:41:44 +08:00
取决于你想花更多时间写代码还是跟多时间修 BUG🤣
|
39
parkcg 2018-03-14 07:29:56 +08:00 via iPhone
有没有强静态解释型开发语言,谁知道的话推荐下
|
40
BlockBlockBlock 2018-03-14 08:20:08 +08:00 via iPhone 3
没人提 typescript 嘛?
动态语言搭配强类型,继承 js 所有动态特性,有强类型重构不会火葬场,还有软爹支持。 |
41
araraloren 2018-03-14 08:21:19 +08:00
@parkcg Perl6 ? gradual typing system
|
42
tylerdurden 2018-03-14 08:22:26 +08:00
作为安全工程师想进来洋洋洒洒的发表的观点,一件来才发现自己需要提高下语文水平。
|
44
anubiskong 2018-03-14 08:47:41 +08:00
有没有试过 JS 啊~?
|
46
sagaxu 2018-03-14 08:56:48 +08:00 via Android 1
php 才是醉猴的语言
|
47
archknight 2018-03-14 08:58:47 +08:00 1
又是一轮语言大战。。。
|
48
parkcg 2018-03-14 09:04:13 +08:00
@araraloren perl6 有点古老,目前主要使用 c# 和 php。
|
49
gouchaoer 2018-03-14 09:14:22 +08:00 via Android
php 最近也 tm 开始不兼容了,神烦
|
51
gouchaoer 2018-03-14 09:26:31 +08:00 via Android
|
52
araraloren 2018-03-14 09:29:02 +08:00
@parkcg ... but the first stable release of Perl6 is at 2015 , and I like it
sub foo($a) { } // accept any type sub foo(Str $a) { } // type constraint, will do static type checking sub foo($a where { * ~~ Int | Str }) { } // type constraint block |
53
JerseyCafe 2018-03-14 09:43:05 +08:00
静观其变-.-
|
54
CommandZi 2018-03-14 09:54:16 +08:00
我投 Swift 一票,只是哀其不争(至少目前是的)。
|
55
toyuanx 2018-03-14 09:58:09 +08:00
我是 Python,别爱我,你是得不到我的,哼
|
56
wellsc 2018-03-14 10:01:50 +08:00 via iPhone
单体应用有多大?超过 20 万行代码了嘛
|
57
est 2018-03-14 10:14:49 +08:00 1
本来不想水这个帖子的看到 zq 大妈都来水了那我也赶紧水一发。
用静态强类型语言没遇到运行时错误的,那是因为你的项目还不足够复杂。Golang 就只写个 RPC API 还能出错? 任何足够复杂的项目都隐藏了一个 lisp 解释器实现——鲁迅。 |
58
jhdxr 2018-03-14 10:16:42 +08:00
@gouchaoer 你举的这个例子好像正好是 rfc 投票时全票通过的。。。我个人也很好奇
``` count(5); count(null); $a=new StdClass; count($a); ``` 这几种 count 的用法有什么含义。。。 |
61
SuperMild 2018-03-14 10:35:38 +08:00
Python 环境管理用 miniconda 就很好,既可以多个项目共用一个环境,有特别需要的项目又可以独立一个环境,使用方法又很简单直观。
|
62
wupher 2018-03-14 10:47:49 +08:00
最近也开始写 Kotlin,确实太像 Swift 了,虽然没有 guard,不过也可以自己封装一个。
可能骨子里还是最喜欢 Ruby,我还是更喜欢 Ruby 与 groovy。 之前的代码大多以 groovy 编写,Java 是不想再碰了。 |
63
tairan2006 2018-03-14 10:49:47 +08:00
pipenv 很好用啊,我不太喜欢 go,kotlin 和 swift 都很棒
|
67
l1093178 2018-03-14 11:11:32 +08:00
@est Rust 的话,不用 unsafe 不用 unwrap panic 应该基本上能够避免运行时错误了(当然逻辑错误免不了
|
68
Henry001 2018-03-14 11:40:11 +08:00
PHP 是最好的语言...
|
69
ray1888 2018-03-14 11:49:37 +08:00
现在是根据需求去写各种语言,还是感觉这样比较好
|
70
hbin 2018-03-14 16:49:13 +08:00
|
71
mornlight 2018-03-14 18:19:31 +08:00
和你相反,现在更愿意写 Go 不愿意写 Python 了
|