V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
tanteng
V2EX  ›  PHP

做一次关于现代化 PHP 的技术分享,大家有没有好的建议

  •  
  •   tanteng · Jul 31, 2016 · 6504 views
  •   You need to sign in to view this topic
    This topic created in 3558 days ago, the information mentioned may be changed or developed.

    近期我要做一次主题是《现代化高性能 PHP 开发的》的技术分享,大家有没有好的建议,欢迎提出来,重点应该讲哪些内容,如果你做技术分享,你觉得应该怎么讲比较好,谢谢!

    技术分享

    技术分享

    技术分享

    分享背景

    因为 PHP 是一门“古老”的语言,而且相当长一段时间没有规范,没有包管理的概念,而且入门简单,加上没有约束, PHP 的程序参差不齐,以至于让很多人产生误解和偏见,但是 PHP 正在重生,命名空间,组件的概念,设计模式, psr 规范等等,让 PHP 变成一门现代化的语言,但是历史原因,很多新的概念和特性,到现在还没有很好的推广,所以做这么一次技术分享。

    68 replies    2016-08-03 10:21:21 +08:00
    tanteng
        1
    tanteng  
    OP
       Jul 31, 2016
    幻灯片只做了几张,内容还在敲定中,准备工作不好做啊!
    iVanilla
        2
    iVanilla  
       Jul 31, 2016
    感觉第三张太乱了。破坏了整体性。还有那个迅雷是?你在迅雷的公司上班?
    tanteng
        3
    tanteng  
    OP
       Jul 31, 2016
    @iVanilla 是有点乱,但想列举这些 logo 出来,怎么排比较好
    msg7086
        4
    msg7086  
       Jul 31, 2016
    看到迅雷两字,先双-5 为敬。想法不错,加油。
    iVanilla
        5
    iVanilla  
       Jul 31, 2016
    @tanteng 尽量别给人一种凌乱的感觉,而且用这个主题的话,要注意上下边字体的颜色。第三个幻灯片下面几个图片的字不容易看清楚。
    tanteng
        6
    tanteng  
    OP
       Jul 31, 2016
    @msg7086 为啥双-5
    tanteng
        7
    tanteng  
    OP
       Jul 31, 2016
    @iVanilla 恩,这些 logo 都是 png 的背景透明的,也不需要 logo 太清楚,大家熟悉的标志了。
    genffy
        8
    genffy  
       Jul 31, 2016 via iPhone
    连 5.5 升级到 5.6 问题一堆,还有什么好说的。
    likezun
        9
    likezun  
       Jul 31, 2016
    其实学 symfony , 大部分的特性就接触的差不多了
    leakeung
        10
    leakeung  
       Jul 31, 2016
    楼主是湖北哪里人?
    tanteng
        11
    tanteng  
    OP
       Jul 31, 2016
    @likezun Laravel 也是用到了 symfony 的很多组件,学习现代化的 PHP 框架也是一个学习现代化 PHP 的最好方式
    tanteng
        12
    tanteng  
    OP
       Jul 31, 2016
    @leakeung 黄石大冶
    zdkmygod
        13
    zdkmygod  
       Jul 31, 2016 via iPhone   ❤️ 1
    用更现代的框架是了解这些内容的更佳手段,比如 laravel , slim 。
    tanteng
        14
    tanteng  
    OP
       Jul 31, 2016
    @zdkmygod 那我可以这样讲,先讲讲这些新特性和概念,然后就给大家讲 Laravel 框架,请求响应,中间件,依赖注入,控制反转,设计模式等等
    Light3
        15
    Light3  
       Jul 31, 2016
    感觉最后两个可以删除。
    1 现在还是没多少人用
    2 现在还是没个讲座都会讲
    3 我们又不用 听了也没啥用。
    strwei
        16
    strwei  
       Jul 31, 2016
    问下这是啥
    iyaozhen
        17
    iyaozhen  
       Jul 31, 2016 via Android
    @strwei fildder windows 下的 http 抓包工具,非常好用。
    strwei
        18
    strwei  
       Jul 31, 2016
    @iyaozhen
    说 fildder 我就知道了
    strwei
        19
    strwei  
       Jul 31, 2016
    @tanteng HHVM 算现代科技吗,至少在 p7 出来前是(手动滑稽
    lianghudou
        20
    lianghudou  
       Jul 31, 2016   ❤️ 2
    就 php 那比凤姐还丑的语法,永远跟性感二字无缘。
    hoythan
        21
    hoythan  
       Jul 31, 2016
    @lianghudou 爱用不用.神经病
    lianghudou
        22
    lianghudou  
       Jul 31, 2016
    @hoythan 我说要用了吗?找不到工作的 loser
    eoo
        23
    eoo  
       Jul 31, 2016
    @lianghudou 然而人家不跟你比性感 比开发效率
    hantsy
        24
    hantsy  
       Jul 31, 2016
    直接与 Java , C#的 OOP 比较一下。
    hantsy
        25
    hantsy  
       Jul 31, 2016
    @tanteng symfony 改变了 PHP 世界。
    466934322
        26
    466934322  
       Jul 31, 2016 via Android
    php 是世界上最好的语言
    tanteng
        27
    tanteng  
    OP
       Jul 31, 2016
    @lianghudou @hoythan 代码写的好不好,重要的还是在于人, PHP 现在要求更加规范。说话有没有品味,也是因人而异,你不喜欢 PHP 的语法不用就好了。
    tanteng
        28
    tanteng  
    OP
       Jul 31, 2016
    @strwei Fiddler ,抓包工具
    tanteng
        29
    tanteng  
    OP
       Jul 31, 2016
    @strwei 也可以在讲 PHP 7 性能的时候提一下
    wh1012023498
        30
    wh1012023498  
       Jul 31, 2016   ❤️ 1
    = = 按照我的思路
    1.PSR 规范
    曾经的乱象:什么.inc.php,class.php,大驼峰小驼峰等语法规范上的乱象
    出现后解决了什么问题
    PS:可以在讲 PSR4 的时候讲下 PSR0 ,然后一笔带过命名空间
    2.组件化
    解决了什么问题
    然后引入包管理器
    3.包管理器 Composer
    与 PEAR 的区别
    与其它语言的包管理,例如 pip,gem,npm 的比较,可以借鉴什么
    4.PHP 语法新特性
    语法糖
    面向对象特性上(trait)
    性能上(yield)
    5.现代框架的出现
    Yii,symfony,Laravel 为 phper 们带来了开发速度上的提升
    - -Ioc 容器?
    Swoole 在性能上的突破
    6.PHP7 以及对 PHP 未来的展望
    yxzblue
        31
    yxzblue  
       Jul 31, 2016
    感觉这是给非 PHP 程序员做的分享,那我就没什么好说的了
    lianghudou
        32
    lianghudou  
       Jul 31, 2016
    @hantsy
    @wh1012023498
    @tanteng
    什么框架,什么规范,都解决不了 in_array , array_key_exists , array_map , array_filter 这些混乱的命名,混乱的参数位置。然而用什么框架, php 内置的这些函数还是躲不过的,否则也失去了 php 快糙猛的优势。
    更不用说满屏的->和$符号。
    php 对于企业是最好不过的选择,但对于程序员,特别是对美感有追求的程序员,是价值观上的虐待。

    用 php 写程序,就像跟一个语无伦次的人谈话,他摧毁你的逻辑,把你本来清晰的思维往阴沟里带。
    Patrick95
        33
    Patrick95  
       Jul 31, 2016   ❤️ 2
    如果现实中,同事向你征求 PHP 演讲的建议时,不知道你会不会:任何建议也不提,光是满嘴跑火车地将 PHP 贬低一番。
    我觉得网络上发表言论,应该和现实中是差不多的,最起码尊重一下你的说话对象。
    别人向你征求建议,如果你实在没有,就婉拒。
    纵使你的观点、言论再有道理,若是不分场合的说,都是垃圾话。
    wh1012023498
        34
    wh1012023498  
       Jul 31, 2016
    @lianghudou 然而你不用就是了,我用了那么多时间 PHP ,也用过 Python 跟 Java 。也没发现用 PHP 多丢人。
    = = 而且我们是谈论 PHP 的发展,这是主题,你在这边喋喋不休的说 PHP 垃圾,我觉得你的出现就跟一锅粥里面的老鼠屎一样。
    而且很抱歉,从你以上的言论,我能感受到得你本身的人品也不咋样。
    wh1012023498
        35
    wh1012023498  
       Jul 31, 2016
    @Patrick95 其实就是人品差,不会提出任何建设性意见,只会乱喷。
    des
        36
    des  
       Jul 31, 2016
    @lianghudou 凤姐曰,我貌丑,你心丑
    xi4oh4o
        37
    xi4oh4o  
       Jul 31, 2016
    Modern PHP
    xiaoshangmin
        38
    xiaoshangmin  
       Jul 31, 2016 via iPhone
    @lianghudou 以其昏昏 使人昭昭
    9
        39
    9  
       Jul 31, 2016
    我说怎么看不到 @lianghudou 的回复,原来之前已经 block 了,特别赞同 @Patrick95 说的,不分场合地喷,除了能满足自己,没留下一点价值
    AbrahamGreyson
        40
    AbrahamGreyson  
       Jul 31, 2016
    @lianghudou 小弟不才,想看看哥哥“逻辑没被摧毁,思维清晰”的代码学习下可以么? (可以是任意语言)
    bullettrain1433
        41
    bullettrain1433  
       Jul 31, 2016
    这成了引战贴了,我来发一个 java 是最好的语言,没有之一
    AbrahamGreyson
        42
    AbrahamGreyson  
       Jul 31, 2016
    @bullettrain1433 666 投赞成票!
    aitaii
        43
    aitaii  
       Jul 31, 2016
    likezun
        44
    likezun  
       Jul 31, 2016   ❤️ 1
    @lianghudou 耍大刀的笑话舞剑的,国人就喜欢贬低别人,以其抬高自己啊~
    我等只是用这些工具来挣钱的,能说起子不如扳手吗! 我们更没有什么贡献,大多数的贡献是国外友人, 我自觉没有什么脸面说这个或者哪个不好。
    Lucups
        45
    Lucups  
       Jul 31, 2016
    @lianghudou 拙匠怪刀钝
    anewg
        46
    anewg  
       Jul 31, 2016   ❤️ 2
    tanteng
        47
    tanteng  
    OP
       Jul 31, 2016
    @wh1012023498 我可以先讲讲 PHP 哪些现代化的模式和概念,接着就以 Laravel 框架为例子,讲讲其中用到的新技术
    tanteng
        48
    tanteng  
    OP
       Jul 31, 2016
    @wh1012023498 谢谢你的建议,很好!
    tanteng
        49
    tanteng  
    OP
       Jul 31, 2016
    @yxzblue 这怎么是给非 PHP 程序员做的分享呢,这些都是 PHP 要用到的
    tanteng
        50
    tanteng  
    OP
       Jul 31, 2016
    @xi4oh4o 有本书叫《 Modern PHP 》,可以很好的借鉴!
    tanteng
        51
    tanteng  
    OP
       Jul 31, 2016
    @iVanilla 那张看上去很乱的幻灯片,我改成用表格的形式了,看上去好多了。 http://cdn.tanteng.me/uploads/2016/07/php-table.png
    3dwelcome
        52
    3dwelcome  
       Jul 31, 2016 via Android   ❤️ 1
    存在就是理由、 php 没什么不好的。

    喷之前、先想想自己贡献了多少代码、思考了多少。任何语言都有软肋、你可以改进、就如 typescript,一味的指责是没有任何意义的。

    这行业尊重有所贡献的人。
    tanteng
        53
    tanteng  
    OP
       Jul 31, 2016
    现在还在说什么语言好什么语言不好的,我认为都是初学者水平,每个语言都有他适用的场景,你喜欢哪门语言是你自己的自由,你没有资格去评判别人或者鄙视其他语言。

    在一个大型应用中,往往要用到好多种语言,就拿 PHP 来说,前期项目用它作为后端服务都没问题,但是随着并发量大了,可能部分需要 java 来实现,做成服务化接口, PHP 来调用, PHP 的灵活和开发效率是他的优势,而很多情况,一个完整的系统还包含 python 的脚本在运行, Redis 做缓存,我们的项目还用到 lua ,数据库一般都是 MySQL ,后端服务是 java ,还可能是 C++,前端还有 js 工程师支持,这才是一个完整的项目它包含各种语言。

    在大的互联网公司, PHP 是属于前端,这个前端就是广义的前端了,比如页面,还有后台系统,都是 PHP 做,后端指的是服务接口,可能是 python ,或者 lua ,总之是 HTTP 协议的,给 PHP 调用实现功能。

    你说你去讨论哪个语言好,哪个语言不好,是一个没有意义的事情,发挥各自的所长,而且 PHP 不只是 PHP 一门语言而已,一个高级的 PHP ,他需要掌握的东西远远不止 PHP 本身。
    killerv
        54
    killerv  
       Aug 1, 2016
    @9 哈哈,我也是看不到,原来也是 block 了
    kiwi95
        55
    kiwi95  
       Aug 1, 2016 via Android   ❤️ 1
    过一遍 modern php ,找几章有意思的内容讲一下
    tairan2006
        56
    tairan2006  
       Aug 1, 2016
    不知道为啥看到迅雷两个字就不想看正帖了。。

    不管怎样,楼主加油
    tanteng
        57
    tanteng  
    OP
       Aug 1, 2016
    @kiwi95 对,这本书就是讲现代化 PHP 开发的,再结合 Laravel 框架具体讲
    whahugao
        58
    whahugao  
       Aug 1, 2016
    楼主内部分享完可否在 v 站共享下 ppt 呢
    tanteng
        59
    tanteng  
    OP
       Aug 1, 2016
    @whahuzhihao 好的,没问题
    iVanilla
        60
    iVanilla  
       Aug 1, 2016
    @tanteng 同求分享 keynote
    nightspirit
        61
    nightspirit  
       Aug 1, 2016
    @tanteng 不过 php 只能做前端么?性能真的不行么?
    tanteng
        62
    tanteng  
    OP
       Aug 1, 2016
    @nightspirit 从性能角度说, C , C++, JAVA 编译型语言,肯定比 PHP 快得多,而 WEB 开发本身不需要太高的性能,注重性能的用其他技术做,比如 Redis ,调服务接口等等, PHP 注重业务逻辑处理,开发效率快。
    treycheng
        63
    treycheng  
       Aug 1, 2016
    @wh1012023498 点赞。。 那个臭 sb
    nightspirit
        64
    nightspirit  
       Aug 2, 2016
    @tanteng 那为何, php 只做前端呢?做后端不行么?
    iVanilla
        65
    iVanilla  
       Aug 2, 2016
    @nightspirit 你可以用 PHP 的 swoole 扩展。
    nightspirit
        66
    nightspirit  
       Aug 3, 2016
    @iVanilla 已经在用了,就是做数据库接口, qps 比起不用的要高 3-5 倍, swoole 确实一个好东西,只不过现在生产环境还没上线,实际运行会不会有坑
    iVanilla
        67
    iVanilla  
       Aug 3, 2016
    @nightspirit swoole 经过很多大型项目的验证了,相当稳定高效。
    nightspirit
        68
    nightspirit  
       Aug 3, 2016
    @iVanilla 恩,原来如此,我刚刚接触的项目用这个,所以我还不确定这个东西有没有坑。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2581 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 146ms · UTC 16:07 · PVG 00:07 · LAX 09:07 · JFK 12:07
    ♥ Do have faith in what you're doing.