不懂就问系列:后台类 web 开发,团队技术该怎么做? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gsgtzq
V2EX    问与答

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

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

    背景

    • 公司团队有大量后台业务工具开发工作,数据大屏和报表类据多,重数据分析和计算逻辑。
    • 原本技术栈是 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
    最好公司统一技术栈 招人舒服点。
    itechify
        12
    itechify  
    PRO
       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     Solana     1258 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 17:26 PVG 01:26 LAX 10:26 JFK 13:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86