V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gsgtzq
V2EX  ›  问与答

不懂就问系列:后台类 web 开发,团队技术该怎么做?

  •  
  •   gsgtzq · 2019-10-22 10:35:17 +08:00 · 4040 次点击
    这是一个创建于 1620 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    • 公司团队有大量后台业务工具开发工作,数据大屏和报表类据多,重数据分析和计算逻辑。
    • 原本技术栈是 PHP 大法,有一定积累,原本是靠后端模板渲染。
    • 前端功能这块始终是短板,后引入前端开发同学,前后分离,界面实现逐渐丰富强悍起来。
    • 大量与大数据工具集有交集,目前有很多计算逻辑躺在 PHP 里,维护难度大,逐渐累积的逻辑也让性能有些堪忧,希望计算逻辑能进一步下沉,充分利用大数据工具集的计算优势。

    问题

    • PHP 开发人才市场萎缩快,19 年招人感受明显,加之公司的招聘对软素质这块要求不低,招人这块捉襟见肘。
    • 专业前端组建时间不长,人力&能力上尚有短板,暂时不能直接 node 接下来,PHP 们原不愿意转 node 也是个问题,毕竟 PHP 这么多年 web 开发界大哥,还是有些心气的(不黑 PHP,只陈述事实)。
    • 由于与大数据工具集交集多,考虑过慢慢转向 java,碍于自己还没有经历过这种大换血,心里其实没有任何底,很慌。
    • HR 一遍遍跟我讲以前是不好招,现在连简历都少了很多,很是头大。

    来这里与 v 友们讨论一下,希望有朋友能给我支一下招。

    45 条回复    2019-10-23 00:33:16 +08:00
    crella
        1
    crella  
       2019-10-22 11:17:53 +08:00 via Android
    非专业,去隔壁 c#版招招学 dotnet core 的
    Caballarii
        2
    Caballarii  
       2019-10-22 11:36:34 +08:00
    果断 java 啊,还想啥
    gsgtzq
        3
    gsgtzq  
    OP
       2019-10-22 11:46:15 +08:00
    @Caballarii 谢谢回复。团队不像个人,如果是我个人真的果断转,
    Rekkles
        4
    Rekkles  
       2019-10-22 11:49:27 +08:00
    为啥我周围的 PHP 都说找不到工作 公司都说招不到人
    好吧 其实是双方互相满意的少,你开 10K 指望别人 996 给你干可能么,反过来说,你一个 curd boy 开 25k 天天摸鱼可能么
    sheeta
        5
    sheeta  
       2019-10-22 11:55:17 +08:00
    php 一般是转 go 吧
    surfire91
        6
    surfire91  
       2019-10-22 11:56:29 +08:00
    你先解决人的问题,想上大数据有人吗,(因为你提到不好招人),有人就上,而且 php 也不是不能对接大数据工具,java 人好招就转 java 呗,php 不愿意转就请走。
    gsgtzq
        7
    gsgtzq  
    OP
       2019-10-22 12:05:29 +08:00
    @surfire91
    谢谢回复,大数据有人。只有合适的工具没有最好的语言,跟你想法差不多。
    gsgtzq
        8
    gsgtzq  
    OP
       2019-10-22 12:06:25 +08:00
    @surfire91 但是,下这个决定注定有些艰难,希望能听听大家声音……
    gsgtzq
        9
    gsgtzq  
    OP
       2019-10-22 12:07:52 +08:00
    @sheeta 个人转的话自己挑就好,但是团队不一样,船大难掉头。
    gsgtzq
        10
    gsgtzq  
    OP
       2019-10-22 12:09:37 +08:00
    @Rekkles 瞎说什么大实话!(狗头)。
    PS:客观事实,市面上 PHP 人才质量确实在下滑,无论质还是量……
    qing0304
        11
    qing0304  
       2019-10-22 12:15:48 +08:00
    哈, 我们已经转变完毕了
    jquery + php 变成 vue + go
    最好公司统一技术栈 招人舒服点。
    oneisall8955
        12
    oneisall8955  
       2019-10-22 12:37:04 +08:00 via Android
    今天 go 大热的节奏,JAVA 的话,体系相对更成熟。两个都行吧,go 没具体了解,就说一下而已
    sadfQED2
        13
    sadfQED2  
       2019-10-22 12:46:11 +08:00 via Android
    我们也是 php,现在在往 java 转,但不是一步到位,而且一点一点的换,java 跟 php 通过 rpc 调用,逐步把 php 都换掉。预计这个过程要好多年吧,我们以前项目已经迭代 10 多年了
    gsgtzq
        14
    gsgtzq  
    OP
       2019-10-22 12:59:47 +08:00
    @qing0304 可以,有魄力。
    gsgtzq
        15
    gsgtzq  
    OP
       2019-10-22 13:02:19 +08:00
    @oneisall8955 我个人其实没什么特别大偏好,但这事放团队上,感觉就变重了。golang 还比较年轻,要想制定一套高效的开发模式和规范,能参考的资料就少了。
    gsgtzq
        16
    gsgtzq  
    OP
       2019-10-22 13:02:43 +08:00
    @sadfQED2 厉害,既然决定了,就加油吧。
    sagaxu
        17
    sagaxu  
       2019-10-22 13:19:07 +08:00 via Android
    个人建议,保持 PHP 不要换语言,先做到前后端完全分离,按模块拆分,各个逐步实施。稳定几个月之后,再挑个小模块用 JAVA 重写,评估一下收益,是不是值得全部重写,还是只重写部分 API。
    Creabine
        18
    Creabine  
       2019-10-22 13:29:50 +08:00
    招个会 node 的,egg+mongoDB,前端 react+antd pro 全家桶,让前端转 node 就完了,一把梭。
    gsgtzq
        19
    gsgtzq  
    OP
       2019-10-22 14:02:53 +08:00
    @Creabine 谢谢,mongo 还是不考虑引入,业务上需要事务的逻辑有点多。
    gsgtzq
        20
    gsgtzq  
    OP
       2019-10-22 14:06:14 +08:00
    @sagaxu 谢谢。基本符合你说的,系统已经拆开了,前后端也完成了完全分离,目前是在下沉一些计算逻辑,在为未来考虑中。
    Ritr
        21
    Ritr  
       2019-10-22 14:23:27 +08:00
    node 吹的有点过了啊,java 或.NET 都不错
    gsgtzq
        22
    gsgtzq  
    OP
       2019-10-22 14:31:00 +08:00
    @Ritr 几个月前闲来无事自己写 node,表示其实并不是特别喜欢 node……
    assad
        23
    assad  
       2019-10-22 14:32:15 +08:00
    换啥。看看人家腾信微信支付的后台: https://pay.weixin.qq.com/index.php/core/cert/api_cert
    gsgtzq
        24
    gsgtzq  
    OP
       2019-10-22 14:37:09 +08:00
    @assad 人才在流动,为未来考虑,毕竟不是腾讯这种巨无霸。
    Ritr
        25
    Ritr  
       2019-10-22 15:04:19 +08:00
    @gsgtzq 我感觉还不如.NET ,node 做点小项目倒还挺快的
    gsgtzq
        26
    gsgtzq  
    OP
       2019-10-22 15:10:09 +08:00
    @Ritr 自己做小项目,或者公司体系已经非常健全了,可以随便折腾,用 node 确实不错。
    阿里前向工程已经几乎全部转向 node,足以证明 node 的实力,但还是要在合适的地方去用。
    wizzer
        27
    wizzer  
       2019-10-22 15:10:26 +08:00
    会 C#(vm/wpf/winform/.NET)、ASP、JSP、PHP、Node.js 、Java、Python、Android、VB 等多种语言的过来人说:

    建议你选用我的 Java 微服务分布式开发框架 ~~

    github.com/Wizzercn/NutzWk
    gsgtzq
        28
    gsgtzq  
    OP
       2019-10-22 15:41:56 +08:00
    @wizzer 爆栈工程师你好(滑稽),如果想好了方向,我会考虑你的框架的!
    Erroad
        29
    Erroad  
       2019-10-22 15:46:52 +08:00   ❤️ 1
    大数据服务化,和 php 业务层分离,交给专门的人
    ibugeek
        30
    ibugeek  
       2019-10-22 15:55:31 +08:00
    前后端分离 api 也可以继续用 php 啊,计算逻辑还能够复用掉,你重写的话,得看你的 PHP 们愿不愿转了。
    你都说你是后台类的人,估计也不考虑并发。
    sadfQED2
        31
    sadfQED2  
       2019-10-22 16:23:43 +08:00
    @gsgtzq #16 厉不厉害跟我没半毛钱关系,公司 cto 决定的
    lifeintools
        32
    lifeintools  
       2019-10-22 16:32:36 +08:00
    没事别换技术栈~ 其他语言一样也不好招人。。
    gsgtzq
        33
    gsgtzq  
    OP
       2019-10-22 16:35:10 +08:00
    @Erroad 你的想法应该跟我们在做的一致。
    gsgtzq
        34
    gsgtzq  
    OP
       2019-10-22 16:36:13 +08:00
    @lifeintools 我也这么觉得。
    gsgtzq
        35
    gsgtzq  
    OP
       2019-10-22 16:48:10 +08:00
    @ibugeek 目前已经在逐步剥离这些逻辑了,用 java 和大数据工具在做,PHP 层已经被我们削减的很薄了。
    haloha
        36
    haloha  
       2019-10-22 17:26:41 +08:00
    java 或者 go 吧 都不错的
    love
        37
    love  
       2019-10-22 17:29:46 +08:00 via Android
    node 写起来真是太舒服了,我以前 php/python,舒适性上完全比不过 node。

    当然 node 必须要搭配 ts 才完整,不过现在 ts 本来就是前端标配了
    gsgtzq
        38
    gsgtzq  
    OP
       2019-10-22 17:47:10 +08:00
    @love 个人观点,node 乃至 js/ts 社区,花哨东西真的多
    fengbjhqs
        39
    fengbjhqs  
       2019-10-22 17:49:10 +08:00
    @gsgtzq #26 大佬,前向工程是什么?

    个人觉得应该抛开语言,来看这个问题,虽然现在 java,go 很流行,但也说不准你们以后要求用上其他语言,来开发某个功能,不可能再把已经成型的东西都换个语言重构一遍吧,

    拆分最小功能模块,功能模块之间用某种方式联系起来运行,
    ynohoahc
        40
    ynohoahc  
       2019-10-22 17:54:58 +08:00
    @love node 的话你们会用什么 orm 框架 我自己尝试用过 sequelize 但并不觉得好用
    gsgtzq
        41
    gsgtzq  
    OP
       2019-10-22 18:11:03 +08:00
    @fengbjhqs

    emmm,可能我记错名词了。

    之前听分享,90%与界面有关的程序(非纯前端),都改用了 node。

    你说的没错,就该抛开语言来看,但是放在一整个团队,技术栈太杂,债务越多。
    Erroad
        42
    Erroad  
       2019-10-22 18:16:09 +08:00
    @gsgtzq #33 我感觉 php 现在可以不跳槽换栈还是比较赚的,如果我是 php 团队的人,我会选择学习新技术把业务接过来。但是很多人确实不太喜欢变化,学习是有成本的。
    magiclz233
        43
    magiclz233  
       2019-10-22 21:10:20 +08:00
    Java node 呗 招人肯定 Java 最多 现在 web 后端 springboot 又好搞。
    fengbjhqs
        44
    fengbjhqs  
       2019-10-22 23:38:03 +08:00
    @gsgtzq #41 技术栈只能尽力控制了,

    如果我遇到这样的情况,会和现在公司 php 开发人员说明下情况,保持 php 维护人员,不愿意多学的人,要么等合同满了不续签,要么转岗(有些公司会签署这个),要么就开了,看成本而定。

    现有的 php 进行拆分,文档为转其他语言准备。(这一步相信他们会有很大的压力),

    我觉得 php 转 nodejs 难度最小,可以让 php 转做前端,毕竟 php 哪个年代很可能都会点前端方面东西,比较容易接受,

    但不建议 nodejs 做后端,据我观察和了解,直接做后端的大公司并不多,更多的是中间件和前端开发工具, 懂点技术的初创公司可能会比较喜欢,毕竟找个懂 js 的真的可以一把梭,全端+全栈,而且速度还快,等赚钱了再换技术。

    先招克制的招 java 真大牛,不是吹牛的牛哈(我遇见好几个在老板面前特别能吹,能力一言难尽),用能力证明,这个方向是公司以后的方向,也是现在市场以后的方向,

    哈哈,我是这样觉得,不过终归没有遇见你的难题,加油
    charlie21
        45
    charlie21  
       2019-10-23 00:33:16 +08:00 via Android
    @ibugeek 为什么后台类的不考虑并发呢,是指 admin 界面所以不是直接面向公网用户的吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2725 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 12:43 · PVG 20:43 · LAX 05:43 · JFK 08:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.