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

PHP 大神? GO 大神?

  •  
  •   Ashore · 2022-02-16 10:07:04 +08:00 · 5918 次点击
    这是一个创建于 772 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    javascript 同理。如果严格按新格式,新语法写,js 也很优美。
    james122333
        32
    james122333  
       2022-02-16 19:02:38 +08:00 via Android
    @sagaxu

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

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

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

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

    最近十几年新创造的语言,能报的出名的,几乎都是静态类型的。
    james122333
        36
    james122333  
       2022-02-16 20:13:35 +08:00 via Android
    @sagaxu

    本来就是种取舍 然而这种方式还是比都是类别好多了 你不是总是 array. 如果你会写 multilevel array 一样一目了然 不用一直往下追类别
    Wenco
        37
    Wenco  
       2022-02-17 00:21:00 +08:00
    @flowerpiggy 但这是人的问题
    coolmenu
        38
    coolmenu  
       2022-02-17 07:11:54 +08:00
    只听说过 91 大神!
    encro
        39
    encro  
       2022-02-17 08:45:37 +08:00
    @sagaxu

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

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

    你如果偏向 php ,又是小团队快速开发,不反对用 php ,但这些不是不用 go 的理由。
    daoqiongsi1101
        48
    daoqiongsi1101  
       2022-02-17 16:28:46 +08:00
    整个生态都是越来越摒弃 php 的,要跟随时代潮流了。
    xieyuheng
        49
    xieyuheng  
       2022-02-17 16:34:35 +08:00
    PHP 越來越好了。

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

    https://laravel.com/
    markgor
        50
    markgor  
       2022-02-18 09:05:29 +08:00   ❤️ 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  
       2022-02-18 09:48:39 +08:00
    @markgor PHP 是世界上最好的语言!
    bugfan
        52
    bugfan  
       2022-02-23 10:44:54 +08:00
    go 写个框架,开发业务很流畅啊,,,,, 但是还是推荐用 php 写业务,哈哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5290 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:16 · PVG 15:16 · LAX 00:16 · JFK 03:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.