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

PHP 大神? GO 大神?

  •  
  •   Ashore · 233 天前 · 5176 次点击
    这是一个创建于 233 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以为是什么高大上的理由转 go ,点开一看就是什么大厂秘籍啥的。恶心心 HWIorQ.png

    52 条回复    2022-02-23 10:44:54 +08:00
    yxx1993
        1
    yxx1993  
       233 天前   ❤️ 15
    如果自己做项目,或者自己创业,我觉得用 php laravel 还是首选,大部分项目根本撑不到考虑性能的时候
    Ashore
        2
    Ashore  
    OP
       233 天前
    @yxx1993 哈哈哈 真实
    to2false
        3
    to2false  
       233 天前
    毕竟是个自媒体,夸大其词的屌样需要沿袭
    RickyC
        4
    RickyC  
       233 天前   ❤️ 2
    不存在的。一看就是小白。
    westoy
        5
    westoy  
       233 天前
    就是卖课的吧

    哪个语言自带流量, 哪个语言容易学让客户更容易觉得自己学会了什么, 搞卖课培训的就会往哪边转的
    ChrisFreeMan
        6
    ChrisFreeMan  
       233 天前   ❤️ 9
    我从来没有见过大神叫自己大神,大神都是有羞耻感的
    wmwmajie
        7
    wmwmajie  
       233 天前
    我倒是希望大家都用 go ,然后我偷偷用 php 。
    justrand
        8
    justrand  
       233 天前
    @yxx1993 等到性能撑不下去了,应该也赚到钱再招人转其他语言好了。
    R18
        9
    R18  
       233 天前
    我就是先用 PHP 实现功能,哪里的性能不够了,再 Go 重做一遍然后 nginx 反代过去。
    RickyC
        10
    RickyC  
       233 天前
    @wmwmajie php 不支持常驻内存,执行定时任务比较难
    pytth
        11
    pytth  
       233 天前
    php 高效又简单,不用 php 我还能用什么
    janxin
        12
    janxin  
       233 天前
    没事,过两天就发 PHP 转 Java 了
    sciel
        13
    sciel  
       233 天前
    如何屏蔽这种语言比较的帖子?
    sagaxu
        14
    sagaxu  
       233 天前 via Android   ❤️ 3
    php 的开发效率,靠的是 array ,不定义类型,array 套 array ,长期维护简直是灾难。如果定义好类型,开发效率恐怕要崩。
    zengzizhao
        15
    zengzizhao  
       233 天前
    @RickyC workerman 、swoole 了解一下
    jarvanluo
        16
    jarvanluo  
       233 天前
    @yxx1993 哈哈,好有道理,也真实
    ksoeasyxiaosi
        17
    ksoeasyxiaosi  
       233 天前
    @RickyC #10 2022 年了 稍微搜索一下都有很多解决办法
    LeeReamond
        18
    LeeReamond  
       233 天前   ❤️ 1
    @yxx1993 php 的灾难性来源于它的维护复杂度,性能是很次要的问题
    Wenco
        19
    Wenco  
       233 天前
    @RickyC 如果只是定时任务的话,crontab 不好用吗?
    Wenco
        20
    Wenco  
       233 天前
    @LeeReamond 说 php 难维护,举个例子啊
    Wenco
        21
    Wenco  
       233 天前
    @sagaxu Symfony 就是这么搞的,开发效率并没崩
    cocong
        22
    cocong  
       233 天前
    @sagaxu 这种多加几台机器就能解决,一句话,能用钱解决的问题都不是问题。
    ccandcc
        23
    ccandcc  
       233 天前 via Android
    @ChrisFreeMan 懂得越多越觉得自己不懂
    markgor
        24
    markgor  
       233 天前   ❤️ 7
    你们都是有多大的项目等着你去上啊....
    我自身经历而言:
    80%性能问题出在 mysql 身上,php 都是在等 mysql 的结果导致挂死,大量并发下问题更能复现。除了优化 mysql 语句和增加缓存机制,还能在 php 身上找问题?
    15%性能问题是出在带宽上,真的自己做过压测就知道了,别说 10k 并发,5k 并发所需的带宽是多少?而现在云服务器都是 5M~10M 居多吧?这个带宽下能支持多大流量?机器转包率能达到多少?
    5%性能问题是 phpfpm 机制导致的,比如无法有效实现连接池和常驻还有协程....但连接池 /常驻 一直有个叫 workman 的框架在支持,而协程则有 swoole 提供框架。

    所以我觉得大多数场景下,遇到的瓶颈并不是“语言”导致的。
    mrgeneral
        25
    mrgeneral  
       233 天前
    还在纠结语言的,也不是啥大神
    wangnimabenma
        26
    wangnimabenma  
       233 天前
    昨天韩教主在 swoole 群分享了一个 GO 的开源工具 XMM 我就在想,PHP 是不是。。。
    Yolver
        27
    Yolver  
       233 天前
    我记得这个公众号日常卖课吧。。。。没啥干货
    wmwmajie
        28
    wmwmajie  
       233 天前
    @RickyC 常驻进程问题的解决方法太多了,你随便搜一下就行。
    keepeye
        29
    keepeye  
       233 天前
    纯 CRUD 项目 PHP 那一堆框架弄起来是很快,但也快的有限
    bilberry
        30
    bilberry  
       233 天前
    取关
    flowerpiggy
        31
    flowerpiggy  
       233 天前
    @Wenco

    难维护的原因主要在于像 php 这样的老语言,版本多,向下兼容,老代码多,同一项目里有按 php 4 写的,有按 php7 写的,有按 php 8 写的。

    javascript 同理。如果严格按新格式,新语法写,js 也很优美。
    james122333
        32
    james122333  
       233 天前 via Android
    @sagaxu

    可以定义函数专门用来产生某个 array
    可维护性是人搞出来的 一个语言不会因为本身限制多就写不出屎山 只要它为了完成複杂需求
    james122333
        33
    james122333  
       233 天前 via Android
    这样做还有个好处 当你需要改数据结构的时后会产生非常惊人的效果
    james122333
        34
    james122333  
       233 天前 via Android
    外面套个类给个命名空间都可以
    sagaxu
        35
    sagaxu  
       233 天前 via Android   ❤️ 1
    @james122333 #32

    定义函数专门用来产生某个 array ,没有用的,接手项目的人,或者几个月后的自己,看到这个函数,并不能一眼看出这个 array 有哪些字段以及每个字段的类型。你这个函数里,可能又调用了别的函数往这个 array 里写东西,那么你要继续读别的函数,层层追下去,你要读很多个专门产生 array 的函数,才能了解全貌。

    我见过各种办法试图解决这个问题,比如在每个函数的注释里,写明返回值的 example ,也有在注释里挨个字段写说明。这些做法会显著降低开发效率,还不如明确定义好类型清晰可读,还能自动生成接口文档。

    最近十年 PHP 一直朝着明确类型定义的方向努力,比如类的成员可以指定类型,甚至可以指定是不是允许为 null ,参数和返回值也是如此。有了类型约束,静态检查工具和重构工具也更强大,能把很多错误消灭在写代码阶段。

    最近十几年新创造的语言,能报的出名的,几乎都是静态类型的。
    james122333
        36
    james122333  
       232 天前 via Android
    @sagaxu

    本来就是种取舍 然而这种方式还是比都是类别好多了 你不是总是 array. 如果你会写 multilevel array 一样一目了然 不用一直往下追类别
    Wenco
        37
    Wenco  
       232 天前
    @flowerpiggy 但这是人的问题
    coolmenu
        38
    coolmenu  
       232 天前
    只听说过 91 大神!
    encro
        39
    encro  
       232 天前
    @sagaxu

    完全可以用 Collection 和 Object[]啊,PHP8.1 之后,基本类型都完善了。
    Gav1n1995
        40
    Gav1n1995  
       232 天前
    就是个卖课的
    yogogo
        41
    yogogo  
       232 天前
    @RickyC
    #10 可以试试 laravel 框架
    daoqiongsi1101
        42
    daoqiongsi1101  
       232 天前
    @markgor 有一定道理。但语言的性能差异也是很明显的,你用 go 重构的 php 接口,逻辑一样,查询一样,go 接口用时明显少很多,压测更有优势。
    markgor
        43
    markgor  
       232 天前
    @daoqiongsi1101 #42
    这个确实存在,和 C++框架对比性能相差更厉害。
    问题是现实业务中,有多少业务能达到压测时的量,且外网带宽能支撑到这么大的量?

    大厂不缺钱没有这方面顾虑,所以他们可以根据本地压测来选择性能更高的语言进行开发。
    abccccabc
        44
    abccccabc  
       232 天前
    动不动就  laravel 框架,这玩意在 alpine 上出了一个问题,整得我是没法吐曹它了。
    xjqxz2
        45
    xjqxz2  
       232 天前
    无所谓~反正业务起来了比用什么语言更重要
    SillyChenBrother
        46
    SillyChenBrother  
       232 天前
    PHP 是最好的语言。
    daoqiongsi1101
        47
    daoqiongsi1101  
       232 天前
    @markgor 那你这就是明知道另一个性能更好,但是你就是不用。那就随便了。没达到这么高性能要求,不是理由,缺钱更应该考虑高性能语言,节省服务器成本。

    你如果偏向 php ,又是小团队快速开发,不反对用 php ,但这些不是不用 go 的理由。
    daoqiongsi1101
        48
    daoqiongsi1101  
       232 天前
    整个生态都是越来越摒弃 php 的,要跟随时代潮流了。
    xieyuheng
        49
    xieyuheng  
       232 天前
    PHP 越來越好了。

    Laravel PHP 取代 Rails 成为 Web Framework 之王的感觉。

    https://laravel.com/
    markgor
        50
    markgor  
       231 天前   ❤️ 1
    @daoqiongsi1101 #47
    >明知道另一个性能更好,但是就是不用
    你先去看看别人压测结果


    除了新冒出的 just-js 我不太清楚,但之前大多数都是 C++名列前茅,
    至此按你所说的, 为何你明知道一个性能更好的但你还用 go 呢?

    >没达到这么高性能要求,不是理由,缺钱更应该考虑高性能语言,节省服务器成本。
    在 5M 的带宽下进行压测,你真觉得 php 、go 、c++的结果会很大吗?
    建议你自己去试试,我之前测试过 nginx 和 webman 的性能对比(基于 5M 带宽下,2C4G ,不带数据库)。
    你如果自己真的有做测试,压测打下去的时候,带宽一个被打满,CPU 利用率基本在 20 以下所谓的 “节省服务器成本”从何而来?

    >你如果偏向 php ,又是小团队快速开发,不反对用 php ,但这些不是不用 go 的理由。
    我确实用 PHP 比较多,然后就到 nodeJS/PY/C#,因为部分项目无法单用 PHP 去解决,不同场景下选取不同的。





    @daoqiongsi1101 #48
    老实说,语言只是我赚钱的一个工具,谁被谁摒弃,谁又取代了谁,这个和我关系不大,而且无论 php 和 go ,两者都不是我开发的也不是我米饭班主,所以吧,我没你们那么上心今天谁又打败谁,谁又取代谁,但反观历史,哪怕 asp 被取代那么多年,我依然能看到 asp 的身影,所以你提到的“潮流”,"生态",“摒弃” 有实质意义吗?
    daoqiongsi1101
        51
    daoqiongsi1101  
       231 天前
    @markgor PHP 是世界上最好的语言!
    bugfan
        52
    bugfan  
       226 天前
    go 写个框架,开发业务很流畅啊,,,,, 但是还是推荐用 php 写业务,哈哈哈哈
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2470 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 12:08 · PVG 20:08 · LAX 05:08 · JFK 08:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.