Enviar búsqueda
Cargar
Advanced php programming
•
2 recomendaciones
•
642 vistas
A
alpha86
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 18
Descargar ahora
Descargar para leer sin conexión
Recomendados
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Dahui Feng
负载均衡
负载均衡
uptodate
Make your web faster
Make your web faster
德生 谭
大众点评网的技术变迁之路
大众点评网的技术变迁之路
jeffz
PHP/NodeJS/Redis项目实战
PHP/NodeJS/Redis项目实战
Sun Zephyr
How to push data to a browser
How to push data to a browser
alpha86
Internal php and gdb php core
Internal php and gdb php core
alpha86
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
Shanda innovation institute
Recomendados
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Dahui Feng
负载均衡
负载均衡
uptodate
Make your web faster
Make your web faster
德生 谭
大众点评网的技术变迁之路
大众点评网的技术变迁之路
jeffz
PHP/NodeJS/Redis项目实战
PHP/NodeJS/Redis项目实战
Sun Zephyr
How to push data to a browser
How to push data to a browser
alpha86
Internal php and gdb php core
Internal php and gdb php core
alpha86
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
Shanda innovation institute
Weibo lamp improvements
Weibo lamp improvements
Xinchen Hui
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
翀 刘
大规模网站架构
大规模网站架构
drewz lin
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
guiyingshenxia
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
colderboy17
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
vanadies10
Nosql三步曲
Nosql三步曲
84zhu
分布式缓存与队列
分布式缓存与队列
XiaoJun Hong
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
jaydenhu
合久必分,分久必合
合久必分,分久必合
Qiangning Hong
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808
OpenCity Community
VMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc era
零壹科技股份有限公司
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)
Xinchen Hui
章文嵩:使用Lvs集群架设高可扩展的网络服务
章文嵩:使用Lvs集群架设高可扩展的网络服务
drewz lin
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
StevenShing
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
Más contenido relacionado
Similar a Advanced php programming
Weibo lamp improvements
Weibo lamp improvements
Xinchen Hui
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
翀 刘
大规模网站架构
大规模网站架构
drewz lin
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
guiyingshenxia
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
colderboy17
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
vanadies10
Nosql三步曲
Nosql三步曲
84zhu
分布式缓存与队列
分布式缓存与队列
XiaoJun Hong
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
jaydenhu
合久必分,分久必合
合久必分,分久必合
Qiangning Hong
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808
OpenCity Community
VMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc era
零壹科技股份有限公司
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)
Xinchen Hui
章文嵩:使用Lvs集群架设高可扩展的网络服务
章文嵩:使用Lvs集群架设高可扩展的网络服务
drewz lin
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
StevenShing
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
Similar a Advanced php programming
(20)
Weibo lamp improvements
Weibo lamp improvements
Hacking Nginx at Taobao
Hacking Nginx at Taobao
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
大规模网站架构
大规模网站架构
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
Nosql三步曲
Nosql三步曲
分布式缓存与队列
分布式缓存与队列
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
合久必分,分久必合
合久必分,分久必合
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808
VMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc era
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)
章文嵩:使用Lvs集群架设高可扩展的网络服务
章文嵩:使用Lvs集群架设高可扩展的网络服务
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Advanced php programming
1.
1 Advanced PHP Programming
chenchao01@baidu.com
2.
PHP •面向web开发 •Shared Nothing Architecture •同步模型 •多进程模型 •弱类型,无所不能的array
3.
Php所不能的 •不支持线程 •没有过多的编译优化 •没有太多的内存 •没太多的时间 •没太多的cpu •有太多的框架也没太多的限制
4.
怎么做? •就是web开发 •做好模块拆分 •需要各种“服务”的配合 •管理好模块依赖 •隔离好同步/异步,在线/离线 •打好日志,做好监控,查好问题 •部署不要混乱 •关注性能 •合适的地方再找合适的东西来用
5.
Web开发
业务开发模式 路由框架 模板引擎
6.
Web开发 •模板引擎 –很多可选的 –提高fe效率,方便rd/fe配合,xss漏洞 •路由框架
–还是是很多可选的 –KISS,理清楚路由框架跟模块之间的关系 •业务开发模式 –每个人想怎么搞就怎么搞? –统一业务开发模式的必要性
7.
模块拆分 •不同的业务划分为不同的模块 •粒度问题 –减少分支开发,又要一个需求过来不至于修改 太多的模块
8.
服务 • 通用服务 –
不局限于通用服务 • 划分为一个模块还是一个服务? – Fe在前端做处理,还是rd在后端处理 – 性能,稳定性方面 – e.g.,新首页的并行调度 • 模块内业务来实现,还是剥离出个服务? – 性能,稳定性,php是否适合做? – e.g.,新首页导航自动分类 • 做为一个lib还是作为一个服务? – 多大通用性?开发成本? – Memcached冗余,扩容
9.
模块依赖 •分了这么多模块,需求的变化总是出乎意料? –模块之间必然会产生依赖 •怎么依赖 –不能有直接的跨模块require •怎么管理
• 统一的RPC框架管理模块依赖 • 交互日志,接口,client由框架支持 •RPC的实现上 –http调用或是框架require
10.
同步/异步,在线/离线 •系统/模块那么多,命令备份 –提交通常是异步的 –哪些异步,哪些同步?
–e.g.,社区传统的cm/transfer模式 •总是有那么多慢查询,长耗时请求 –能不能转化为离线的(离线算出来,crontab ) –e.g.,榜单类,全局统一的数据(实时热点)
11.
打好日志 • Logid • 交互日志
– Backendip,耗时,主要参数 • 哪些要打warning – Warning日志对应于异常逻辑 – Warning日志不作为出错的强依据 • 哪些要打fatal – 逻辑执行不下去了,要打fatal – Fatal是出错的强依据 • 一条fatal就意味着对用户一次500或者404 • 哪些抛Exception – 逻辑执行下去了再exception – 也就是一个exception对应于一条fatal – 在基础库上做个封装,统一catch exception
12.
做好监控 •环境挂了要监控 –监控webserver,php •服务有问题要监控 –错误日志监控,最好能有些自动聚合和去重 •问题追查
–线下/沙盒复现 –查日志,找异常 –Core出来
13.
部署 •部署同构 •所有的机器部署一模一样不管是目录结构 还是模块 •及时这组机器不处理某些模块的请求,也 可以部上去,保证所有的机器环境一模一
样
14.
关注性能 •
Php性能 – Eacc/APC之类的opcode cache – 自动加载的优化 • 代码性能 – Php没有过多的编译优化 – Rd需要关注代码性能 • 性能出问题的地方 – 大部分时候都不是代码写的太烂 – 查清楚db,后端服务等对php耗时的影响(就那么多cpu) – 代码结构的问题 • 发现 – Xhprof – xdebug • 优化 – 优化代码结构,架构 – 扩展化
15.
合适的地方找合适的东西来用 •该用扩展的用扩展 •该用c的服务用c的服务 •该用离线的用离线的 •该用并行的用并行的 •不合适php的地方,换别的
16.
模块/异步提交划分的case-baike
user w/ Webserver1 guanxi/ webserver2 webserver2 webserver3 Rewrite规则分到指定app Rewrite规则分到指定app Rewrite规则分到指定app guanxi Search Relation Lemma Category RS Action Action Action PageService PageService PageService DataService DataService DataService DataService Dao Dao Dao CM Antisapm HttpProxy DB Pic Message MQ Transfer webserver4
17.
并行调度,离线的case-新首页
18.
Q&A
Descargar ahora