写点什么

采访:新浪微博架构师兼首席 PHP 技术顾问惠新宸谈 PHP 的架构与发展

  • 2012-06-29
  • 本文字数:2649 字

    阅读完需:约 9 分钟

惠新宸于 2011 年 8 月作为核心开发人员加入 PHP 语言官方开发组,目前是该组织的唯一一位国人,也是国内最具影响力的 PHP 技术专家之一。 惠新宸作为知名 PHP 技术博客“风雪之隅”( http://www.laruence.com/ ) 的博主, 一直专注与 PHP 底层原理的研究和分享。 其中《深入理解 PHP 原理》系列文章被广泛推荐, 成为国内 PHP 语言深度使用和定制的经典入门教材。他基于 PHP 扩展开发的 PHP 框架 Yaf, 被誉为最快的 PHP 开发框架。同时他还是 Lua,Taint 等 PHP 扩展的作者。在 PHP 5.4 开发过程中,他一共为 PHP 贡献了近 400 个交付。本次我们对惠新宸进行了一次采访,请他分享一下 PHP 框架和扩展的知识,以及 PHP 发展的情况。

InfoQ:请简单的介绍一下您自己,以及您目前所在团队的情况。

惠新宸:大家好,我是惠新宸,陕北人, PHP 圈很多朋友叫我鸟哥,趁着这个机会和大家解释下,我不是《Linux 私房菜》的鸟哥,我只是 IM 昵称叫”雪候鸟”,又因为在百度的时候,我在工程师中算年长,所以大家才开始这么叫。

目前我在新浪微博应用架构团队工作,我们应用架构团队主要致力于新浪微博 LAMP 的架构优化,以适应高性能和快速开发的需求。

微博每天 PV 数十亿,产生数 T 级别的数据, 处理过程中任何一个毫秒的优化,一个 byte 的减少,对我们都是意义重大,这个工作非常有意思也很有挑战, 到目前为止,我们团队已经通过一些不改动业务逻辑的优化方法,把微博首页的响应时间降低了 44%,TPS 提升了 78%。
另外,我们团队还负责技术提升和沉淀工作,这也是一项很有意思的工作,因为分享能让我们收获更多。

InfoQ:作为 PHP 语言官方开发组的唯一一位国人,请您谈谈加入这个组织之后的一些体会。

惠新宸:“唯一一位”这个称号肯定是暂时的,我相信未来会有更多国内开发者加入。我是去年 8 月份加入 PHP 开发组, 开发组是一个开源组织, 准确的说,我们应该被称为 Commiters(提交者),有很多不是开发组的同学为 PHP 提供 Patch。

加入以后我对如何运作一个开源项目有了一些新的体会, 其中让我感受最深的就是各种流程规范。大到发布一个版本的流程规范,小到一个新特性增加的流程规范,这些看似繁琐的规范,虽然一定程度上导致响应速度缓慢,但却保证了 PHP 在成长过程中,尽量不出大事故。

还有一个体会就是, 英语对于技术工作者来说真的很重要,我现在特别后悔本科时没好好学习英语, 虽然我阅读资料没什么问题,但是在日常交流的时候经常闹笑话,有个段子,就是开发组有个开发者说,要理解我说的话,需要像读正则表达式一样。

InfoQ:长期关注你博客的人都知道,你一直致力于 PHP 推广工作,你个人也在国内最大的几家互联网公司工作过,能谈谈 PHP 在国内的发展状况吗?

惠新宸:之前在我的博客上,我也分享过一个数字,就是全球前 100 万的站点中,有超过 70% 的站点是使用 PHP 开发的。在我看来,PHP 易学、易用、易扩展是它能如此流行的主要原因, 易学易用我就不多说,这里我想主要说一下 PHP 可扩展性。

PHP 提供了一套很强大的扩展构建系统, 使用这套扩展构建系统,我们可以很方便的扩展 PHP 功能,在 PECL 扩展库中,目前已经有超过 200 个标准扩展。

我在 2008 年开始做 PHP 扩展时,互联网上几乎没什么相关的中文资料,而现在我们看到,网上资料非常丰富。 越来越多的开发者尝试通过扩展 PHP 来解决他们遇到的问题,而 PHP 的开源精神,又或多或少影响开发者把这些扩展开源给社区,这些正是我认为 PHP 可以长期发展下去的主要动力。

InfoQ:您是开源框架 Yaf 的作者,请简单介绍一下开源框架 Yaf 的特点。

惠新宸:长久以来,关于 PHP 要不要使用框架有很多争论,比较常见的矛盾点是,使用框架后,开发速度变快但性能得不到保证。

Yaf 是为了解决这个矛盾点而开发的,它是一个用 PHP 扩展方式 (C 语言) 实现 PHP 的 MVC 框架,它最大特点是高性能 (相比于传统用 PHP 实现的框架),低资源消耗,同时又能保证快速开发。

Yaf 主要提供了路由,分发,自动加载,插件机制,以及一个简单高性能的视图引擎, 这些功能是每个 MVC 框架必备的,又具有一定不易变性, 所以适合用扩展来实现。

InfoQ:关于 Yaf 框架,您下一步有什么开发计划?

惠新宸:我的观点是,Yaf 未来应该朝做精做专的方向发展,比如 Yaf 2.0 与 Yaf 1.0 相比,并没有添加新功能,主要是架构重新设计和性能调优。 我不希望 Yaf 成为想要涵盖一切功能的”超大全”,我只希望它能为追求高性能的开发者提供一个简单高效及可扩展的工具,为”低碳”生活做做贡献。

另外,我想感谢喜欢 Yaf 的朋友们,Yaf 目前在社区有很多使用者,这点是我最初发布 Yaf 的时候没有想到的,一些很热心的朋友为 Yaf 提供 Windows 下的发布,建立了使用者交流论坛、QQ 群等,这些事情我有心但没有精力做,他们的热情是驱使我不断完善Yaf 的动力,非常感谢这些朋友。

InfoQ:能否对 Zend、Yii、CakePHP 这几个 PHP 框架进行简单的优劣势分析?

惠新宸:这几个框架都是很优秀的 PHP 框架,我在以前的项目中使用过 Zend 和 Yii, 但可惜没有机会用 CakePHP, 说说我个人的理解吧。

Zend Framework 是 Zend 公司开发的 PHP 开发框架,它设计精良,功能强大,有很广的使用者,文档齐全,社区也比较活跃。它的代码写得规范工整,非常适合 PHP 开发者去阅读和学习。缺点就是稍显臃肿,性能偏低。
我对 Yii 印象最深刻的是 AR,在实际开发中非常方便, 并且提供了系统的自动生成工具,我个人非常喜欢 Yii。 然而 AR 的缺点也很明显,资源占用很大,不适合大数据量应用。

InfoQ:请推荐三个您开发的 PHP 扩展,为什么您推荐这三个扩展?

惠新宸:我写扩展开源出来的就 4 个,按照时间顺序是 Yaf,Lua,Taint,Couchbase。它们各自要解决的问题不同, 我简单介绍一下这几个扩展吧。

Yaf 前面介绍过了,这里不再重复。

Lua 是在 PHP 扩展中对 Lua 引擎的封装,支持在 PHP 中运行 Lua 脚本,并能与 Lua 脚本交换数据。
Taint 是一个 XSS,Sql&Shell injection 检测扩展,它主要是为了弥补一些静态检测脚本不能覆盖到的点。

Couchbase 是一个对 Couchbase Client 的封装,Couchbase Server 是一个高性能高实时性的 K-V 数据库。
顺便提一下,我们新浪微博应用架构团队,还在为新浪微博开发一些扩展,这些扩展是为微博解决一些实际问题, 等这些扩展可用性和稳定性得到验证之后,我们会开源出来回馈社区的。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-06-29 23:4017285

评论

发布
暂无评论
发现更多内容

2020年中总结之----怎么挤进一线大厂?非软文!(1),Android面试题整理

android 程序员 移动开发

2020最新Android大厂高频面试题解析大全(BAT TMD JD 小米)

android 程序员 移动开发

2021 年 9 月美团 Android 面试总结,flutter屏幕旋转监听

android 程序员 移动开发

2021字节跳动,金三银四内幕Android中高级面试题合集-令人细思极恐!

android 程序员 移动开发

2021最新整理大厂Android面试高频知识点,阿里高级算法专家公开10份资料

android 程序员 移动开发

2020年中总结之----怎么挤进一线大厂?非软文!,2021Android面试心得

android 程序员 移动开发

2020年度整理国内一线互联网公司内部Android面试题库,androidstudio开发项目

android 程序员 移动开发

2021最新Android必备面试题,上海大厂Android面试经历

android 程序员 移动开发

2020年末知识大总结:Java程序员转Android开发必读经验一份

android 程序员 移动开发

2020我的-Android-年中面试复盘:怎么挤进一线大厂?需要掌握些什么

android 程序员 移动开发

2020我的坑爹Android面试经历,(百度,android路由器

android 程序员 移动开发

2020应届毕业生,Android春招总结,已入职小米,深入解析android核心组件和应用框架

android 程序员 移动开发

2020最新中高阶Android面试题总结-下(附解题思路),androidwifi开发框架

android 程序员 移动开发

2021想进阿里?送你一份 40000 字《阿里进阶指南,android音视频编解码

android 程序员 移动开发

2020这一年的Android面经汇总(百度、腾讯、滴滴,职场中的中年危机

android 程序员 移动开发

2021了,为什么说音视频技术是技术风口?Android音视频开发这么吃香

android 程序员 移动开发

2021年之Android面经分享(已获头条、顺丰,androidapp开发工具

android 程序员 移动开发

2021年最新Android开发岗面试笔试总结,android开发视频播放器

android 程序员 移动开发

2020年的大厂末班车!啃完这些资料,我拿到了字节跳动Android高级开发工程师的offer

android 程序员 移动开发

2020年,Android技术人如何实现自我成长?,带你碾压面试官

android 程序员 移动开发

2020最新Android大厂高频面试题解析大全(BAT TMD JD 小米)(1)

android 程序员 移动开发

模块二作业:微信朋友圈复杂度分析

赵先生

架构实战营

2021年3月份Android 面经总结!(OPPO和腾讯等大厂,android底层开发百度网盘

android 程序员 移动开发

2020年Android开发年终总结之如何挤进一线大厂?,android界面开发实验报告

android 程序员 移动开发

2020年Android高级面试题总结(附答案解析),面试突击版

android 程序员 移动开发

2020适合中高级工程师的面试题——java基础,移动网页开发框架

android 程序员 移动开发

2020非科班生的Android秋招,金九银十求职经历 (快手,android游戏开发实践指南

android 程序员 移动开发

2021Android性能优化总结最新、最全面、最完整的资料,大厂内部资料

android 程序员 移动开发

2020最新Android大厂面试真题大全(附答案),移动应用开发的前景

android 程序员 移动开发

2020阿里P8单写给Android程序员的建议:这样的offer不能要啊!注意避坑

android 程序员 移动开发

2021年Android开发的前景如何?,安卓面试题及答案

android 程序员 移动开发

采访:新浪微博架构师兼首席PHP技术顾问惠新宸谈PHP的架构与发展_PHP_sayhelen_InfoQ精选文章