V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
secretName
V2EX  ›  程序员

如何说服领导将管理系统代码从 PHP 重构成 Java

  •  
  •   secretName · 2020-05-15 13:07:29 +08:00 · 12520 次点击
    这是一个创建于 1414 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近我在思考一个问题,那就是如何说服领导将管理系统代码从 php 重构成 java 。

    原因就是现在我所在的公司用的是 php,但是用了几个月之后,感觉 php 的开发效率比感觉也没比 java 高,并且随着系统越来越复杂,维护越来越困难~

    所以想要怎么和领导说从 php 重构到 java 呢?领导和其他老同事都是写 c++的,都没有写过 java,只有几个新员工用过 java 。

    第 1 条附言  ·  2020-05-15 15:08:27 +08:00
    因为这个系统太老了,很多历史包袱,代码经历了很多人,已经到处是雷区了。就算不重构成 java,他们也打算换个 php 框架重构。

    不过看到大家的留言后还是觉得 没必要重构,php 是世界上最好的语言!!!
    114 条回复    2020-05-17 19:21:40 +08:00
    1  2  
    jowan
        1
    jowan  
       2020-05-15 13:14:11 +08:00
    把领导搞下台 你来当
    wangyanrui
        2
    wangyanrui  
       2020-05-15 13:14:53 +08:00   ❤️ 12
    如果重构失败了,你愿意承担全部责任吗?
    不能的话就不要尝试了,出力不讨好 ~~
    questionlin
        3
    questionlin  
       2020-05-15 13:16:56 +08:00   ❤️ 1
    觉得开发效率不高是你还不熟
    kaigong
        4
    kaigong  
       2020-05-15 13:17:12 +08:00 via Android   ❤️ 1
    Php 招不到人了
    maggch
        5
    maggch  
       2020-05-15 13:18:04 +08:00   ❤️ 2
    你有做过充分的调研吗,还是说你想凭着你的那点感觉说服领导?
    IGJacklove
        6
    IGJacklove  
       2020-05-15 13:19:31 +08:00   ❤️ 4
    这种东西最好别多管闲事...重构成功也没你啥功,重构失败锅可全在你身上
    wangyzj
        7
    wangyzj  
       2020-05-15 13:20:14 +08:00   ❤️ 3
    说开发效率不高我笑了
    而且作为成本中心的管理系统任何投入都是不值得的
    SlipStupig
        8
    SlipStupig  
       2020-05-15 13:22:13 +08:00   ❤️ 1
    汝等可知僭越之祸啊!
    zxc12300123
        9
    zxc12300123  
       2020-05-15 13:22:17 +08:00 via iPhone
    管理系统?能用就行。
    mandex
        10
    mandex  
       2020-05-15 13:23:54 +08:00
    你自己不说了原因吗?直接去跟领导讲啊。
    还是你自己都觉得这个理由不够充分。
    huntcool001
        11
    huntcool001  
       2020-05-15 13:28:20 +08:00   ❤️ 1
    这是多管闲事....
    ren2881971
        12
    ren2881971  
       2020-05-15 13:35:09 +08:00   ❤️ 4
    写个方案啊。 要有理有据。什么都没有光拿嘴说,谁会支持你。
    1.当前使用 php 的弊端
    2.替换成 java 的优势
    3.需要产生多少工作量
    4.针对当前的业务重构会不会产生风险。
    5.重构后会有那些收益:提高效率(降低成本)优化性能(提高产品的服务能力)等等等 巴拉巴拉
    sadfQED2
        13
    sadfQED2  
       2020-05-15 13:35:49 +08:00 via Android   ❤️ 5
    领导和其他老同事都是写 c++的,就这你也敢说重构成 java ?我猜楼主的目的是政治斗争吧,趁机赶走老员工,自己上台,重招一批新员工
    to2false
        14
    to2false  
       2020-05-15 13:38:56 +08:00
    管理系统还切换技术栈,真羡慕好闲啊
    littleylv
        15
    littleylv  
       2020-05-15 13:38:59 +08:00
    自己当上领导就可以了
    sagaxu
        16
    sagaxu  
       2020-05-15 13:40:01 +08:00 via Android   ❤️ 1
    1 no zuo no die
    2 维护困难是你的护城河
    EastLord
        17
    EastLord  
       2020-05-15 13:42:07 +08:00
    楼主问 [如何说服领导将管理系统代码从 PHP 重构成 Java] ,结果回复大多答非所问
    Symo
        18
    Symo  
       2020-05-15 13:42:27 +08:00
    至少先把现在系统的功能测试全部写完了, 保证重构之后还跑得通.
    EastLord
        19
    EastLord  
       2020-05-15 13:43:04 +08:00
    12 楼的哥们说的挺好
    wangkun025
        20
    wangkun025  
       2020-05-15 13:44:06 +08:00
    说服自己。
    vultr
        21
    vultr  
       2020-05-15 13:44:19 +08:00
    让领导看到 java 的好处,并且让他们看到你为了这个事情所做的准备工作,提前把领导担心的问题先解决掉,或者说能给出解决的方案。
    qq1340691923
        22
    qq1340691923  
       2020-05-15 13:44:19 +08:00   ❤️ 1
    没必要重构,php 是世界上最好的语言!!!
    ericgui
        23
    ericgui  
       2020-05-15 13:46:20 +08:00   ❤️ 3
    你自己不行,非要说是 PHP 的锅
    MengiNo
        24
    MengiNo  
       2020-05-15 13:46:58 +08:00   ❤️ 2
    老同事都是写 c++ 的 新同事写过 Java,那么怎么弄出来的这个 PHP 的后台呢? 如果是老同事之前自己琢磨琢磨就用 PHP 写出来了,那么在他们有成功经验的情况下,你有什么理由说服他们 Java 的开发效率能高于 PHP... 如果是新同事就是写 PHP 的并且一起维护这个后台, 你有什么理由说服他们放弃他们最拿手的方案转而选择 Java 。
    先抛开技术层面不谈,按照上面分析,你这个在实际操作上的难度和 “让一个 200 斤的肥宅去健身房办卡” 成本几乎一样,那么是个正常的销售都会觉得对方不是目标客户而放弃。所以不用纠结了。
    Rekkles
        25
    Rekkles  
       2020-05-15 13:51:59 +08:00   ❤️ 2
    “原因就是现在我所在的公司用的是 php,但是用了几个月之后,感觉 php 的开发效率比感觉也没比 java 高,并且随着系统越来越复杂,维护越来越困难~”

    就这么说吧 论开发效率还是往后稍稍 PHP 性能不行确实 但是暴露了你水平 8 太行也是事实
    kumasama
        26
    kumasama  
       2020-05-15 13:52:25 +08:00
    楼主属于想一出是一出的人吧。。。
    AngryPanda
        27
    AngryPanda  
       2020-05-15 13:54:25 +08:00
    自己不熟悉,怪语言
    charlie21
        28
    charlie21  
       2020-05-15 13:58:08 +08:00
    历史包袱 历史遗留问题

    其实你就算用 PHP 从老框架换新框架 人们都懒得换,更别提换语言了
    miao666
        29
    miao666  
       2020-05-15 13:59:09 +08:00 via Android
    被楼主逗笑了😂😂
    ByteCat
        30
    ByteCat  
       2020-05-15 14:03:32 +08:00
    为什么要换?又不是不能用
    lsls931011
        31
    lsls931011  
       2020-05-15 14:04:21 +08:00
    很简单,上位
    bugsnail
        32
    bugsnail  
       2020-05-15 14:06:31 +08:00
    你信不信,你用 java 还是会碰到下一个你这样想的人
    kejxp1993
        33
    kejxp1993  
       2020-05-15 14:28:41 +08:00 via Android   ❤️ 1
    剧本下一集,如何说服领导将管理系统代码从 Java 重构成 Go[dogo]
    DiverRD
        34
    DiverRD  
       2020-05-15 14:30:56 +08:00
    我们一般不重构 我们是重写 手动滑稽
    Szhi
        35
    Szhi  
       2020-05-15 14:35:06 +08:00
    出问题谁来负责呢?
    duanquanyong
        36
    duanquanyong  
       2020-05-15 14:39:54 +08:00
    如果说服领导将管理系统代码从 php 重构成 java...如果说服领导将管理系统代码从 java 重构成 php...如果说服领导将管理系统代码从 php 重构成 python...如果说服领导将管理系统代码从 python 重构成 ruby,...如果说服领导将管理系统代码从 ruby 重构成 nodejs......
    yunkchen
        37
    yunkchen  
       2020-05-15 14:45:44 +08:00
    重构是路径手段,你的目标是什么?如果是提升开发效率,开发效率如何衡量?需要出两者的具体对比指标
    xuanbg
        38
    xuanbg  
       2020-05-15 14:50:28 +08:00
    别想着重构了,投入产出比很低的,你领导除非脑子抽了才会支持你。但是,问题还是要解决的,微服务就是天然支持异构系统的。你可以建议领导潮流一把,搞个微服务,然后新项目都用 Java 就完了。
    FantaMole
        39
    FantaMole  
       2020-05-15 14:53:28 +08:00
    落泪了,我以前遇到的问题就是 PHP 限制太少,大家追求写得快然后很不规范
    fhyuncai
        40
    fhyuncai  
       2020-05-15 14:54:39 +08:00
    "感觉 php 的开发效率比感觉也没比 java 高" 感觉这两语言效率没多大差别吧。。
    "并且随着系统越来越复杂,维护越来越困难" 纯属你自己不熟悉 php 。
    你公司都没几个人会 java,先不谈开发问题,以后维护怎么办?维护效率不是更低下?老同事愿意再去学习 java ?
    sevenzhou1218
        41
    sevenzhou1218  
       2020-05-15 14:58:58 +08:00
    楼主还是小孩子,大家散了吧。
    jorneyr
        42
    jorneyr  
       2020-05-15 15:03:07 +08:00
    把你们领导简历给我
    syrupofplum
        43
    syrupofplum  
       2020-05-15 15:04:59 +08:00
    重构成功了有什么好处?谁受益?如果这点上不能和领导达成一致,还是不要做无用功了。
    azoon
        44
    azoon  
       2020-05-15 15:06:55 +08:00
    楼主想上位了吧
    wuxinling
        45
    wuxinling  
       2020-05-15 15:09:02 +08:00
    弄到一大坨钱丢去领导桌上做重构的经费
    JamesR
        46
    JamesR  
       2020-05-15 15:09:36 +08:00
    Erroad
        47
    Erroad  
       2020-05-15 15:33:13 +08:00   ❤️ 1
    你用 php 觉得不舒服了,就想换 java 让别人不舒服?换位思考下吧,看起来是技术问题,其实根本不是技术问题
    ggjjl1
        48
    ggjjl1  
       2020-05-15 15:40:50 +08:00
    为什么一定要用 Java 呢,PHP 也可以写出很好的代码呀...
    golden0125
        49
    golden0125  
       2020-05-15 15:47:46 +08:00
    看到"php 的开发效率比感觉也没比 java 高"就笑出声了, 开发效率是 PHP 引以为豪的优点了,如果这点都体会不到,就凭你这半吊子水平有啥理由去用更复杂的 JAVA?
    dilu
        50
    dilu  
       2020-05-15 16:00:33 +08:00   ❤️ 1
    有一说一,单论开发速度,php 比 java 乃至于大多数语言都快得多

    毕竟我写完了刷新一下就行,你 java 写完了还要编译一下,甚至重启 tomcat
    boyhailong
        51
    boyhailong  
       2020-05-15 16:03:57 +08:00
    @jowan +10086
    gyinbj
        52
    gyinbj  
       2020-05-15 16:05:15 +08:00
    。。。饱经风霜的代码并不一定需要重构, 可以根据项目自定义一个小框架,每个功能需要修复的时候,直接根据功能重新用自定义框架调整即可, 日复一日 水到渠成。
    毕竟 你也不能保证,若干年后,java 也可能会写的一塌糊涂。
    zengxs
        53
    zengxs  
       2020-05-15 16:05:22 +08:00
    任何语言开发的系统,随着复杂度的上升,都会越来越难维护
    chenmobuys
        54
    chenmobuys  
       2020-05-15 16:08:23 +08:00
    是用的没 java 熟练吧
    ajaxfunction
        55
    ajaxfunction  
       2020-05-15 16:08:43 +08:00
    你可以说 php 性能不行,但是非要说 php 开发效率低,那就是你水平太次了。
    众所周知 php 就是以开发效率著称的
    keepeye
        56
    keepeye  
       2020-05-15 16:11:20 +08:00   ❤️ 1
    领导:我看这个人是闲的没事找事干了
    Still4
        57
    Still4  
       2020-05-15 16:23:40 +08:00   ❤️ 1
    曾经用 java 替换过 php 的人告诉你,java 没那么好用
    如果后端吐模板,开发难度不比 php 低
    如果后端不吐模版,这就是所有弱类型语言和强类型语言的优劣势,php 的劣势在于 bug 不好找,java 的劣势在于内存管理,我们经常遇到占用内存很多的数据需要处理,动不动 1G 2G,如果内存溢出导致 java 进程被杀,所有正在访问的人都受影响,php 顶多是你自己访问挂了,其他人 99%的情况下是没影响的
    Cowhitewhite
        58
    Cowhitewhite  
       2020-05-15 16:26:51 +08:00
    那你肯定是个写 Java 的
    IllBeBack
        59
    IllBeBack  
       2020-05-15 16:27:12 +08:00
    亲,你这是重写,不是重构。换个语言还不如换个公司。

    又不是不能跑,为什么要换语言,服务中断你会背锅吗?
    wudalang123
        60
    wudalang123  
       2020-05-15 16:31:11 +08:00
    @jowan 不成功咋办?
    justrand
        61
    justrand  
       2020-05-15 16:41:31 +08:00
    首先你看到下面的回复后,你都没有找到问题的关键点。
    关键是在其位谋其政。
    真羡慕你,你这是真年轻啊!
    cbasil
        62
    cbasil  
       2020-05-15 17:41:37 +08:00
    说 PHP 开发效率不行,我笑了,PHP 开发再怎么慢也要比 JAVA 快吧。而且只是内部管理系统,如果是代码老旧,换新的框架,yii 或者 laravel 重构就好了,
    zaul
        63
    zaul  
       2020-05-15 17:42:19 +08:00
    你是吃多了没事做?
    wysnylc
        64
    wysnylc  
       2020-05-15 17:44:55 +08:00
    不仅仅是 PHP,其他弱类型语言都有前期开发快后期更新维护火葬场的问题
    你可以说服领导,新业务用 Java 避免出现现在 PHP 出现的维护成本高问题,但是要重写老业务确实不建议任何语言都不建议
    zhengjing
        65
    zhengjing  
       2020-05-15 17:48:13 +08:00
    重构这种事,一般很难的,领导不愿意担责
    zhengjing
        66
    zhengjing  
       2020-05-15 17:49:04 +08:00
    有时间搞点其他事情,任何系统,除非到了非重构不可,否则不要轻易重构
    colorfulberry
        67
    colorfulberry  
       2020-05-15 17:51:15 +08:00
    重构成本其实没有想的那么小,看起来不复杂。重构的时候估计要好久时间才能搞定。毕竟很长时间做一个东西,想着重新来 2-3 天那是不现实的。
    stevenkang
        68
    stevenkang  
       2020-05-15 17:51:40 +08:00
    建议重构公司,整个人员架构都得换,严重影响开发效率
    neptuno
        69
    neptuno  
       2020-05-15 17:51:52 +08:00   ❤️ 1
    “领导和其他老同事都是写 c++的,都没有写过 java”,就是全部你来重构的意思吗
    killerv
        70
    killerv  
       2020-05-15 17:55:43 +08:00
    PHP 的黑点在于性能( fastcgi )和弱类型。开发效率没得喷
    loading
        71
    loading  
       2020-05-15 17:58:29 +08:00 via Android
    楼主,你是要辞退所有人只留你?
    libook
        72
    libook  
       2020-05-15 18:00:15 +08:00
    任何系统发展到功能和规模比较大的程度都不能只靠一种技术栈。

    全盘从 PHP 换 Java 也不一定是明智的举措,建议是从最适合用 Java 开发的功能模块开始用 Java,其他的地方就先继续使用 PHP 开发,逐渐优化系统。
    janxin
        73
    janxin  
       2020-05-15 18:02:20 +08:00
    先尝试回答一下:

    重构是为了满足我们试试 XXX 技术的小心思吗?是有什么非换语言不可的理由吗?万一投入很高不成功怎么办?

    大家满意回答的话,事情就好推动了
    songsong
        74
    songsong  
       2020-05-15 18:14:00 +08:00
    管理系统这种换 java 有什么意义, PHP 完全胜任, 管理系统也不需要太考虑性能, 如果需要, 接入 swoole 用常驻内存方式运行, 性能问题也解决了
    love
        75
    love  
       2020-05-15 18:42:53 +08:00 via Android
    呆过两个 php 公司,没类型检查的语言就是不行,搞大了之后改些东西小心翼翼,特别是公共的文件,只能加不能改,否则等着不知道哪里爆雷
    string643
        76
    string643  
       2020-05-15 21:07:21 +08:00
    领导:这 b 崽子,想啥呢?净给我整事
    hantsy
        77
    hantsy  
       2020-05-15 21:22:23 +08:00
    蛋痛
    hantsy
        78
    hantsy  
       2020-05-15 21:23:53 +08:00
    @love 难道你写 10 几年 PHP ?我没记错的话,PHP5 就开始 OOP,可以 Strong Type 了。PHP5.6 以后基本与 Java,C#在 OOP 方面的设计可以平齐了。
    love
        79
    love  
       2020-05-15 21:26:55 +08:00
    @hantsy 很多年没碰 PHP 了,Strong type 是个啥可以和 Java 平齐?是静态检查吗?至少 PHP5 是不行的
    gravitybox
        80
    gravitybox  
       2020-05-15 21:58:26 +08:00
    对 PHP 没什么意见,不过开发效率确实挺高的,也好上手。
    CantSee
        81
    CantSee  
       2020-05-15 21:58:32 +08:00
    v 站的 php 程序员不得给你喷的头都得掉?手动 dog..
    iplayio2019
        82
    iplayio2019  
       2020-05-15 22:06:49 +08:00
    PHP 真惨
    ben1024
        83
    ben1024  
       2020-05-15 22:16:28 +08:00
    只是管理系统把 PHP 换成 Java 收益点不直观,不如重构当前 PHP 代码
    sugarkeek
        84
    sugarkeek  
       2020-05-15 22:22:14 +08:00
    告诉老板换 Java 可以创造的财富
    justin2018
        85
    justin2018  
       2020-05-15 23:18:12 +08:00
    不要随便开坑 填坑~
    jzmws
        86
    jzmws  
       2020-05-16 00:58:00 +08:00
    能用就行了 ,合并自己给自己找事 ,性能不行上硬件, 老子改过核心代码 最终还是该回去了 .
    xunxuntj
        87
    xunxuntj  
       2020-05-16 01:00:47 +08:00
    重构最容易吃力不讨好了,主要是投入了没回报或者回报看不出来,维护成本就是隐性的很难证明
    TypeError
        88
    TypeError  
       2020-05-16 01:05:29 +08:00 via Android
    渐进式替换吧,新功能用 Java,和老接口调用全走 HTTP RESTful 或者 RPC
    shellic
        89
    shellic  
       2020-05-16 07:15:55 +08:00 via Android
    等重构成 Java 后下个接手的人再来问“如何说服领导将管理系统代码从 Java 重构成 Go”
    levelworm
        90
    levelworm  
       2020-05-16 07:43:31 +08:00 via Android
    我倒觉得楼主可以试试看,这事情对公司未必有好处但是对个人肯定有好处。
    pengjay
        91
    pengjay  
       2020-05-16 08:03:41 +08:00
    翻译过来是:我用 java 更顺手,可以把公司的系统用 java 重构吗?
    woshinide300yuan
        92
    woshinide300yuan  
       2020-05-16 08:19:52 +08:00
    动不动就 XX 最好的语言。
    你说事就说事,扯这没边儿的屁干什么。 好像村口的怨妇一样,引战吗?

    锤子,你还是辞职吧,换个 JAVA 吧。
    msg7086
        93
    msg7086  
       2020-05-16 08:35:54 +08:00
    历史包袱多,那应该去还技术债,而不是换语言。你换了 Java,继续欠技术债,两三年以后又是一坨历史包袱,接下来你准备换啥?

    另外,要开发效率的话为什么不选 Rails 呢。选一个开发效率差不多的 Java 是几个意思……
    keelii
        94
    keelii  
       2020-05-16 09:10:59 +08:00
    就连我一个前端都在学 Java,PHP 有什么理由不学习: https://v2ex.com/t/670706
    danhahaha
        95
    danhahaha  
       2020-05-16 09:15:38 +08:00
    楼主用了几个月后!!

    1.楼主接触这套东西不到几个月
    2.这套东西前面经过好几个人的手
    3.很多历史包袱,说白了就是各种 bug 补丁。
    4.管理系统

    对一个东西没有完全熟悉之前就想去重构,八成是一时兴起。楼主重构的动力是感觉开发效率不如 java,但是当需要大量时间去重构时候,还有效率可言吗,改着遇到困难就必定丢一边了。而且经过好几人手,规范,习惯都不一样,改完必定更多 bug,管理系统几个人用?有 bug 都测不出来。
    angith
        96
    angith  
       2020-05-16 09:17:41 +08:00 via Android
    你变成他领导
    ArtIsPatrick
        97
    ArtIsPatrick  
       2020-05-16 09:36:29 +08:00 via iPhone
    这种事情就是提个建议表达下想法,然后还是听领导的,让你干了就干,不干也无所谓。
    namelosw
        98
    namelosw  
       2020-05-16 09:44:28 +08:00
    引用 Joe Armstrong 的建议:
    If you get a bad boss move immediately
    *Do not try to change your boss*
    richard1122
        99
    richard1122  
       2020-05-16 09:53:12 +08:00   ❤️ 1
    这跟用什么语言框架啥的都没关系,另外你这不叫重构叫重写
    zachlhb
        100
    zachlhb  
       2020-05-16 09:59:52 +08:00 via Android
    这就叫一朝天子一朝臣,改天来个写 go 的,是不是也劝老板从 Java 切换到 go,开发效率不高,就想办法提高开发效率,我一直不觉得开发效率和语言有什么关系
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2807 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:46 · PVG 19:46 · LAX 04:46 · JFK 07:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.