`
arksea
  • 浏览: 63853 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Facebook是用PHP构建的大型系统吗?

 
阅读更多
    想要构筑一个大型系统,如果你不像Facebook那么有钱、任性还能折腾,如果你的团队规模有限,如果你想要节约成本,如果你想要降低人员流动带来的影响,如果你要减小HR的压力,如果你希望员工可以在工作告一段落后可以在不同的项目/团队间进行转岗,那么尽量让团队使用少的技术/语言是一个很好的选择,PHP会是这个不二之选吗?
    我们来看看号称“一直”使用PHP做为“主要”开发语言的Facebook这些年都折腾出了什么:
  • HipHop   将PHP代码转换为C++代码,之后由C++编译器进行编译,代码不再运行在PHP虚拟机上。2010年Facebook性能问题开始凸显时,已经拥有数百万行的PHP代码,上千名PHP工程师,如果改用其他语言(非不想实不能!)根本不现实,所以成立了一个小组花费18个月开发了HipHop,这种事情显然不是什么公司都能干的。  
  • HHVM :  准备替代HipHop的PHP虚拟机技术,为了纪念早先的PHP代码转换工具HipHop ,命名为HipHop Virtual Machine   
  • Hack:  可以在HHVM虚拟机上运行的PHP改进语言,实现了一些静态语言特性
  • Cassandra:  分布式存储系统     Java   已开源
  • Scribe:  日志系统  C/C++  已开源
  • Haystack/F4:  高性能图片存储与检索系统  C/C++  闭源
  • Thrift:  Facebook为了PHP可以调用后端服务开发的跨语言RPC框架,事实上只有Java版本的实现最完整,PHP使用的是C++的版本做了个简单的API引入功能有限,想要进行扩展难免要使用C++进行开发,Thrift编译器为C++实现  已开源
    Facebook使用的其他不是自己开发的开源技术就不多说了,至少如果需要在Hadoop下用MapReduce进行大数据统计处理,就不要指望可以用PHP了。
    最后引用文章《看三名工程师如何重建Facebook基础》的最后几段:
    在有了“HipHop虚拟机”以后,Facebook能以大多数开发者永远都想象不到的速度运行PHP代码。但是,仍旧有人质疑为何这家公司要这么走极端。长期开发者、编程权威人士大卫·波拉克(David Pollack)就不认同Facebook坚持使用PHP语言的作法。“PHP语言用来构建一个应急网站是最好的。对我来说,Facebook能利用这种语言构建像Facebook网站那样强大而灵活的网站确实令人印象深刻,但我不认为PHP是构建一个网站的最好方法,这就像是住在新泽西州的人非要把这个州称作‘花园州’一样。”
    就连亚当斯也承认,虽然他曾宣称动态语言能让开发者更具生产力,但这种说法在某些情况下也值得商榷。埃文斯也承认,虽然PHP这样的语言或许能在短期内提高生产力,但从长期来看则会带来更多困难。
    当然,Facebook之所以还在坚持使用PHP语言,在很大程度上是因为用另一种语言来重新编写整个网站的代码是一项更加庞大的任务。Facebook将此称为“遗留问题”(The Legacy Problem)。“到最后,总有一天网站的规模会大到不重写不行的地步。”帕洛斯基说道。
 
 
 
分享到:
评论

相关推荐

    facebook用c语言写的核心源码

    6. **动态代码加载与热更新**:为了在不中断服务的情况下进行更新,Facebook可能使用C语言实现了动态代码加载和热更新机制,这在大型系统的维护中十分常见。 7. **编译器技术**:HipHop PHP项目中可能包含了自定义...

    Facebook早期架构设计以及缓存系统

    Facebook作为全球最大的社交网络平台,其早期...这些技术和经验对于任何希望构建大型分布式系统的IT从业者来说都是宝贵的知识财富。通过不断优化和创新,Facebook成功地构建了一个稳定、高效且具有高度可扩展性的系统。

    Facebook推出的PHP改进项目XHP

    总的来说,Facebook的XHP项目是PHP开发领域的一大创新,它为Web开发带来了更加严谨和安全的编程模式,特别是在构建大型、复杂应用时,XHP能够显著提升代码质量并降低维护成本。对于那些关注代码质量和安全性,尤其是...

    大型并发系统整理版

    ### 大型并发系统的关键架构和技术 #### 一、引言 随着互联网技术的发展和用户需求的增长,构建能够处理高并发请求...通过了解Facebook等公司的技术实践,我们可以学到很多关于如何构建稳定高效的大型系统的宝贵经验。

    facebook技术架构.pdf

    为了维持高效的分享和通信能力,Facebook构建了一个复杂的系统来应对难以想象的访问量和数据规模。2007年11月7日,Lucas Nealan在DCPHP Conference上的演讲中提到了Facebook的技术架构,以及Facebook性能优化中不可...

    facebook 架构

    - **挑战**: 难以大规模代码库扩展,弱类型系统,静态分析和代码优化有限,不适合大型网站特定场景(例如动态文件重载问题)。 为了克服这些挑战,Facebook进行了以下定制化改进: - Op-code优化:提升执行效率。 -...

    校内、猫扑、facebook大型互动网站架构预览

    在构建大型互动网站时,可扩展性、性能、高可用性、性价比和可管理性是必须关注的核心要点。只有通过精心设计和不断优化,才能确保这些社区网站在面对海量数据和用户时依然能保持稳定、快速的运行。

    基于PHP的YiiPiN社会化电商分享系统php版源码.zip

    【标题】"基于PHP的YiiPiN社会化电商分享系统php版源码.zip" 提供的是一款使用PHP语言开发的社会化电商分享系统,该系统利用Yii框架构建,旨在增强电商平台的社交功能,帮助商家提高产品的曝光度和用户互动性。...

    facebook thrift

    ### Facebook Thrift:可扩展的跨语言服务实现 #### 概述 Facebook Thrift是一种软件库及一组代码生成工具,由Facebook开发,旨在加速高效、可...Thrift已经成为许多大型组织和服务提供商在构建可扩展服务时的选择。

    Facebook 的代码开发工具.pdf

    **远程开发**:Nuclide支持远程开发,这对于Facebook这样的大型分布式团队至关重要,允许开发者在不同的系统和环境中进行协作。\n3. **源码控制集成**:集成Git和Mercurial等版本控制系统,使得代码管理更加便捷。\...

    PHP语言--Web 2.0开发的利器

    ### PHP语言——Web 2.0开发的利器 #### PHP语言概述 PHP是一种广泛使用的开源脚本语言,特别适用于Web开发并可嵌入HTML中。...无论是对于个人开发者还是大型企业,PHP都是构建现代Web应用程序的理想选择之一。

    大型网站并发整理资料

    ### 大型网站并发整理资料 #### 一、并发与大型网站设计的关键点 大型网站在设计时需要解决的关键问题是高并发访问下如何保持稳定性和...无论是PHP、Ruby还是Java,关键在于如何构建一个可扩展、高性能的系统架构。

    PHP实例开发源码-ThinkSNS 开源社交系统正式版.zip

    通过对这个压缩包中的源代码进行学习和研究,开发者可以深入了解PHP的Web开发实践,尤其是如何构建大型社交网络系统。同时,对于想要提升自己PHP技能或开发类似应用的人来说,ThinkSNS是一个宝贵的实例资源。在实际...

    php5.6.38+Windows+VC11+x64

    这个版本是为Windows操作系统设计的,并且是基于Visual C++ Compiler 11(即VC11)构建的,这意味着它依赖于Microsoft的VC11运行库来执行。"x64"表示这是针对64位架构的版本,能够充分利用64位系统的内存和计算能力...

    php 开发十大项目

    8. **RESTful API开发**:构建一个提供JSON格式数据的API,学习如何设计RESTful接口,使用OAuth进行身份验证。 9. **任务调度系统**:例如使用Cron Job,实现定时任务,如定期备份数据库、发送邮件提醒等,理解异步...

    PHP和Java,哪个更有前途?共1页.pdf.zip

    PHP与MySQL的组合是搭建动态网站的常见选择,许多知名的网站如Facebook早期就是基于PHP构建的。然而,PHP在性能和大型项目管理上相比Java稍显不足,代码组织不够严谨,可能导致维护困难。 Java,作为“一次编写,...

    php-5.6.22.tar.gz

    3. **解压过程**:要访问`php-5.6.22.tar.gz`的内容,需要先使用`gunzip`命令解压,然后用`tar`命令提取出原始的tar文件,最后再通过`tar -xvf`解包,得到php-5.6.22目录及其内容。 三、安装与配置PHP 5.6.22 在...

    国外PHP动态第四期

    《CREATEAFACEBOOKAPPLICATIONWITHPHP》这篇文章指导开发者如何使用PHP构建Facebook应用程序。主要内容包括: 1. **注册Facebook应用程序**:介绍如何在Facebook Developer Portal中注册新的应用程序,并获取应用...

    PHP语言的发展前景.docx

    在这个社区中,不仅有众多知名的网站和系统是基于PHP构建的,比如Facebook,还有大量的开源库和框架,如Laravel、Symfony等,这些资源极大地丰富了PHP的生态系统,为开发者提供了构建复杂Web应用程序的强大工具。...

Global site tag (gtag.js) - Google Analytics