雅虎中国技术研发部总监谭晓生讲演
非常荣幸今天能够作为一个用户谈一谈我们对LAMP的使用。雅虎是全球着名的互联网公司,产品非常多,雅虎中国只是雅虎.COM产品的一个子级,真正在北美这边生活的话,你可以看到雅虎网站关系到生活的方方面面,从看新闻到财经的信息到开车怎么走,到找一些本地的餐饮、购物等信息,在雅虎的网站都可以做得到。我介绍雅虎Web服务器的体系结构。从最左边看起,前端用IE或者其它浏览器上来,经过一个标准的负载均衡设备,可能会是一个简单的DNS装置也可能是专用的 VIP的设备,标准是跑apache(Unix平台最流行的WEB服务器平台),编程语言是php(做为现在的主流开发语言),下面写到基于内存数据库的系统MDBM,右边可以看到后端存储有甲骨文、MySQL(和PHP搭配之最佳组合)数据库,UDB服务器专门存用户的认证信息以及邮件存在什么地方AD服务器,做广告投放,AD是里面非常重要的。除了专有数据库和标准的数据库获得信息之外,还可以通过其它各种各样的渠道,通过合作伙伴可以把数据Feeds进来。中间云图叫Proxyio,为了解决网络通信的问题,随着用户数量的增加,用户使用量的增加,单台服务器满足不了要求,每一个模块都可能是由多台服务器跑的,模块之间的通讯演化N乘M层级的问题,可以有效地简化,这是非常概要的图,这张图里面没有体现操作系统,WEB站线的语言用php(做为现在的主流开发语言),数据库有MySQL(和PHP搭配之最佳组合)和甲骨文。
下面可以看到HP的服务器,为什么只写了HP,并不是HP赞助了这个会,雅虎有若干万台的服务器,都选择不同的供应商,在全球的支持变成非常困难的一件事情,所有东西经过验证,在某一个版本下面、某一种型号、某一种版本能运行不错,全球尽可能统一,HP服务器用得最多,在国内也开始使用戴尔。
在此之前操作系统有两个标准的操作系统,用得最多的是BSD,上面之前跑apache(Unix平台最流行的WEB服务器平台),至此之上有php(做为现在的主流开发语言)Base和雅虎自己的Exts和php(做为现在的主流开发语言)的语言,Y Mods是雅虎内部攻击预防的系统,经常会起作用。red更多像Linux偏一些,雅虎中国几千台操作系统在一个月切换,最核心像索引器全部用64位的机器,操作系统也是64位,应用也是64位的。
Yapache(Unix平台最流行的WEB服务器平台)和apache(Unix平台最流行的WEB服务器平台)的区别,雅虎从操作系统开始到apache(Unix平台最流行的WEB服务器平台)做过一些改造,第一个是性能方面的优化,第二安全性方面的提升,第三是可管理性方面的提升,轮转方式改变了,GZIP编码有改变,最后这一行非常有帮助,可以帮助定位在哪一台服务器产生。
雅虎为什么要采用php(做为现在的主流开发语言)?
雅虎在使用php(做为现在的主流开发语言)之前都用过什么东西,我到雅虎之后这些东西都已经是历史了,HF2K、CS/HDF。像雅虎以前邮件的页面,有HF2K、HTMIForm的东西,但是先都退出历史舞台。
展现层分成五部分,第一个页面框架,这部分95%的HTML、50% php(做为现在的主流开发语言)解决这方面的问题。在显示组件HTML和php(做为现在的主流开发语言)是对半的,在业务逻辑部分90%用php(做为现在的主流开发语言)做业务逻辑,在Ceneric百分之百用php(做为现在的主流开发语言),在库部分大部分用php(做为现在的主流开发语言),只要满足性能要求都可以用php(做为现在的主流开发语言),如果php(做为现在的主流开发语言)实在干不了,可以用C/C++编写php(做为现在的主流开发语言)扩展,如果说用php(做为现在的主流开发语言)在性能上可以满足的话,公司推荐尽可能用php(做为现在的主流开发语言)写,相对来说编程速度比较快,产量比较高。
从业务逻辑往后叫Back End Engineering,还有一部分是Front End Eng。所以在雅虎工程师很有意思,在国内要招聘php(做为现在的主流开发语言)工程师还是蛮困难的,尤其要招聘高素质的php(做为现在的主流开发语言),写出稳定、安全又高效的代码,这其实还是比较难找的,雅虎的用人方法我们招C++工程师,要求具备C++编程功底,到公司再学php(做为现在的主流开发语言),雅虎程序员超过一半会php(做为现在的主流开发语言),不是进公司之后会的,而是去的时候学的。php(做为现在的主流开发语言)是一个简单的语言,但是简单不等于可以胡乱写,真正要写出高效安全的程序,还是需要很严密的逻辑。
在数据库方面来说,右边讲了甲骨文,右边讲了MySQL(和PHP搭配之最佳组合)。MySQL(和PHP搭配之最佳组合)在雅虎大量采用数据库,在我见到过雅虎的产品里边90%以上用MySQL(和PHP搭配之最佳组合),只有对并发度要求特别高,对数据安全性要求特别高,一般来说是收费服务,数据一旦丢失会有一些法律纠纷的,在这种情况下会考虑采用甲骨文,在实际开发里边,如果说拿出一个技术方案要用MySQL(和PHP搭配之最佳组合),简单看一下,不是涉及到收钱这种业务,就过了。不管什么样的业务,只要用甲骨文,我们就坐下来谈一谈为什么选择甲骨文,有什么样非要选甲骨文不可的原因。我们在其他所有的地方,使用甲骨文不需要额外花钱,一年交多少钱给这些公司,包括MySQL(和PHP搭配之最佳组合)的支持,都是买断的,我在公司内部都可以用,不用花钱,大家在线执行的时候会进行认真的审核。

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。