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

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

  •  
  •   tanteng · 2016-07-31 15:55:29 +08:00 · 5897 次点击
    这是一个创建于 2824 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    技术分享

    技术分享

    技术分享

    分享背景

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

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

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

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

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

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

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

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

    不管怎样,楼主加油
    tanteng
        57
    tanteng  
    OP
       2016-08-01 09:49:15 +08:00
    @kiwi95 对,这本书就是讲现代化 PHP 开发的,再结合 Laravel 框架具体讲
    whahuzhihao
        58
    whahuzhihao  
       2016-08-01 11:20:57 +08:00
    楼主内部分享完可否在 v 站共享下 ppt 呢
    tanteng
        59
    tanteng  
    OP
       2016-08-01 11:23:58 +08:00
    @whahuzhihao 好的,没问题
    iVanilla
        60
    iVanilla  
       2016-08-01 12:29:42 +08:00
    @tanteng 同求分享 keynote
    nightspirit
        61
    nightspirit  
       2016-08-01 15:50:17 +08:00
    @tanteng 不过 php 只能做前端么?性能真的不行么?
    tanteng
        62
    tanteng  
    OP
       2016-08-01 16:26:06 +08:00
    @nightspirit 从性能角度说, C , C++, JAVA 编译型语言,肯定比 PHP 快得多,而 WEB 开发本身不需要太高的性能,注重性能的用其他技术做,比如 Redis ,调服务接口等等, PHP 注重业务逻辑处理,开发效率快。
    treycheng
        63
    treycheng  
       2016-08-01 19:40:41 +08:00
    @wh1012023498 点赞。。 那个臭 sb
    nightspirit
        64
    nightspirit  
       2016-08-02 09:36:02 +08:00
    @tanteng 那为何, php 只做前端呢?做后端不行么?
    iVanilla
        65
    iVanilla  
       2016-08-02 23:11:20 +08:00
    @nightspirit 你可以用 PHP 的 swoole 扩展。
    nightspirit
        66
    nightspirit  
       2016-08-03 09:15:39 +08:00
    @iVanilla 已经在用了,就是做数据库接口, qps 比起不用的要高 3-5 倍, swoole 确实一个好东西,只不过现在生产环境还没上线,实际运行会不会有坑
    iVanilla
        67
    iVanilla  
       2016-08-03 10:04:14 +08:00
    @nightspirit swoole 经过很多大型项目的验证了,相当稳定高效。
    nightspirit
        68
    nightspirit  
       2016-08-03 10:21:21 +08:00
    @iVanilla 恩,原来如此,我刚刚接触的项目用这个,所以我还不确定这个东西有没有坑。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5937 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 02:22 · PVG 10:22 · LAX 19:22 · JFK 22:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.