CTO 拒绝 golang,坚持 PHP , v 友怎么看

2019-12-29 16:17:30 +08:00
 uxff

背景:

公司原有项目是 php,业务量也不小,每日 100W+订单。

前部门负责人想在公司内部推广 golang,希望用 go+服务化改造业务,而且推荐内部从 php 转岗,还招了几个 golang 工程师带队。

一段时间内公司已经改造和上线了 10 多个服务,结合 codepipeline,k8s,ingress 等已经很接近 devops 了。

但是由于需求变化快,PHP 岗位缺人,大量人力被调去做业务层开发等多种原因,服务化进度其实很慢。

后来部门负责人走了。

新来的 CTO 说 golang 产出慢,golang 招不到人,golang 招人成本高,golang 项目不好维护等理由,突然决定公司停用 golang。坚持用 PHP 开发。对业务优化提供了升级 PHP 版本,使用依赖倒置等设计模型,对于业务服务化设计没给出具体指导方案。

对于升级 PHP 等措施我们是支持的,但是对于拒绝 golang,我们是有些心凉的。

对此 v 友怎么看。

26572 次点击
所在节点    程序员
175 条回复
mengzhuo
2019-12-29 22:30:09 +08:00
大部分是 PHP 就 PHP 呗

大厂才有空换语言
MeteorCat
2019-12-29 22:43:53 +08:00
@uxff 你这个理由太空泛,我感觉没什么说服力,比如你们有什么业务瓶颈啥的?
MeteorCat
2019-12-29 22:53:57 +08:00
@uxff 比如像我以前公司一样,当年我们公司有个类似一元云购项目使用 php+redis 实施抢购队列,但是后续并发流量上来之后,常常出现 php-fpm 池卡死的问题,后续我们用了 java-spring 实施的功能队列有效降低抢购时出现的卡顿,所以你得考虑业务情况来具体分析
janxin
2019-12-29 23:03:01 +08:00
谁说了算听谁的
lolizeppelin
2019-12-29 23:08:27 +08:00
php 死于 fast cgi,真正的“脚本”思维语言

现在都开始依赖常驻进程了,那么多年来没有任何常驻进程相关的库积累,以前的框架都不是照常驻进程设计的,导致大量 php 程序员都没有相关知识

脚本语言里也就 php 有这个缺点

如果用 php 这个缺陷不是大问题的确没必要换
blless
2019-12-29 23:19:52 +08:00
我们当时装 go 就很直接,什么开发效率慢,维护差都没有在点上。Go 最大的优势是工程性,go tool 的单元测试,覆盖率,性能测试,go fmt 自带的格式化,别的语言也不是说没有工程性,但是都是社区或者自行整理的规范。还有什么难招人?我们从来都是招别的语言的人来转,一星期上手真的不是梦。还有,搞软件工程,想要好维护,动态语言就不要拿出来说了,动态一时爽,重构 XXX。除非 100%代码审查,谁知道哪里用了 eval 之类的查个鬼。
tailf
2019-12-29 23:20:23 +08:00
@manami PHP 天生就是微服务,PHP 的优势有相当一部分就是来自于微服务的特性。当然这个微服务不是 java 对微服务的具体实现,而是微服务本身的概念。你品味一下。
tailf
2019-12-29 23:21:46 +08:00
golang 就是 C with Net,我实在是想不出它被大规模应用的理由。
tailf
2019-12-29 23:22:16 +08:00
对了,大家可能不知道,golang 全球 90% 的用户在中国。
mitu9527
2019-12-29 23:26:36 +08:00
根据你的描述,本身 PHP 是可以满足业务需求的,这时候首先应考虑把 PHP 做的更好一点,其次才是更换技术栈。没有绝对把握就换技术栈,说明前负责人考虑问题不成熟,本来问题说不定还简单,经过一番折腾,进退两难,你那前部门负责人不走就怪了。针对 Web 项目后端来说,目前就 PHP 和 Java 两门编程语言是主流,其他的编程语言的影响力都可以忽略,PHP 这两年性能提升了好几倍,工程化虽然比不上 Java,但也算完善,现在完全可以胜任大型项目了。所以说么不换,要换也是换成 Java。
说点个人猜测:你那前负责人估计 PHP 不怎么样,这两年传出 PHP 前景堪忧后,听说 Go 比较火,学了一下 Go,就想换 Go,估计现在 Go 也不怎么样吧。如果他 PHP 和 Go 其中之一可以,不至于到现在的局面。
tailf
2019-12-29 23:27:10 +08:00
六年多前我开源的第一个库就是 golang 写的一个静态化工具,在线上运行六年了,golang 确实是一个好技术,但却不是一个可以像 Java 那样大规模应用的技术,就像 PHP 就有自己明确的使用场景,golang 的优势应用场景也是在高性能网络领域。
mitu9527
2019-12-29 23:37:52 +08:00
@lolizeppelin 这个确实是 PHP 一个问题,不过 PHP 编程语言从来都是开发者要什么,它就加什么,所以语言特性该有的慢慢都会跟上。我觉得 PHP 最大的问题是行业编程水平不行,说直白点最大的问题就是很多人都不懂面向对象编程思想,用着面向对象技术却写着面向过程的代码,微型、小型项目可以过得去,中型和大型项目这么做往往都会失败,更别说超大型项目了。
arden
2019-12-29 23:38:12 +08:00
能用 go 就使用 go,说 go 不好维护,这是什么理由? php 代码才是真的难维护,用 swoole 为啥不直接用 go。
wangyzj
2019-12-29 23:50:36 +08:00
@tailf 90%哈哈哈
CEBBCAT
2019-12-30 00:22:03 +08:00
@dandycheung
@hheedat 有招聘帖吗?在找一份实习或年后正式工作
fansangg
2019-12-30 00:39:41 +08:00
屁股决定脑袋,CTO 能摸到这个位置想的东西肯定都和你不是一个层面的,从 PHP 换 go 是有代价的,时间和金钱。公司首要的目标是盈利,环境不会停下来等你们重构。
no1xsyzy
2019-12-30 01:45:48 +08:00
1. 问:这是否牵涉内部 zz 因素?(新官上任三把火,可以理解但需要谈,避免意外烧掉粮仓)
2. 开发速度不凭主观,而且这东西主观偏差还是挺常见的,拿出具体数据,证明其确实是更好的选项
3. 除了 Lisp,其他不过五十笑百,没有圣战的必要吧?

@fansangg 重构的目的不是就是不等环境停下持续重写部分代码吗?改语言那叫重写。
2kCS5c0b0ITXE5k2
2019-12-30 01:52:08 +08:00
@arden 问题是现在系统是稳定的 盲目换技术栈代价太大了
no1xsyzy
2019-12-30 01:52:24 +08:00
@blless 你这些优点,直接一个 Racket 都给你整齐了,而且 Racket 到 Typed Racket 平滑过渡,甚至可以先动态写好然后随时转静态。
那为什么不用 Racket 呢?
ericgui
2019-12-30 07:40:39 +08:00
用什么语言是郑智问题,不是技术问题

你想明白这个就好了

再说了,PHP+ Cpp 也照样可以支撑你们的业务,没问题。

总之,这不是哪个技术更好的问题

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

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

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

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

© 2021 V2EX