言午月月鸟
编程,带娃以及思考人生
首页
编程
带娃
思考人生
编程画图秀
hyperf 学习小记 - 1 序言
dingusxp
2586
## 说说PHP ### PHP是最好的语言? 不能说是最好的语言,但 PHP 是一个很适合做 快速web开发 的低门槛语言。 主要在于 PHP-FPM 架构的优秀,极大的降低了做开发的心智负担: - 面向请求/页面 的同步、串行的数据流模式,思维上简单直接,一条线走下去; - 解释型语言,无需编译,所改即所得,实时查看修改效果; - 底层架构保障:非常好的横向可扩展性,很多性能问题可以通过加机器解决;较好的稳定性,请求容器模型,进程隔离及重启机制,保证了即使单个请求触发的错误或崩溃,也不会影响整个系统运行。 加上长期积累起来的大量实用函数、类库、解决方案支持,开发者可以专注于业务本身,开发快,产出高。在互联网高速发展的十几年,应对快速成长的业务,不断“创新”的需求,PHP(或说lnmp技术栈)确有优势,甚至大量新人或跨行业者成为了PHPer。 ### PHPer是最差的开发者? 不过双刃剑效应,PHP的好,也是PHPer的坏。 这种架构层面的“糖”,对开发者的“毒害”也很深。我以及我所接触的很多PHPer,(至少前期)系统性思维都较差。 不跟其它语言和业务场景比较,仅在典型web开发领域,很多开发者都会有这些问题: - 经常有意或无意地忘记了“请求是并发的”这回事。在很多业务,如秒杀之类需要考虑高性能大并发的场景上,经常踩坑。 - 系统分层思想理解不足,完全没有理解分层的意义和边界。普遍使用的MVC模式,常常只是套样子,关键的业务抽象变成一个仅做透传的多余存在,本质还是Controller直接操作数据库在搞。 - 编码过于自由,缺少编码规范约束和设计模式,代码维护靠口口相传。 PHP很多时候是作为产品1.0先锋,做业务探索者的角色。前期规模一般不大,很多问题还没暴露出来项目就挂了。 或者就算业务规模大了,但性能方面无法满足,或代码可维护性很差,背负原罪被用其它语言的拥护者重构。缺少大规模系统的项目实践,更造成实际上很多的PHPer技术上始终停留在浅层应用阶段。 ### 中肯的定位? 个人认为,PHP较好的使用方式应该是:在探索性的产品初期可重用,快速实现业务,落地试错;随着业务成长,对系统稳定性,性能有更高要求时,逐步将关键模块逐步服务化(可使用其它语言),PHP做为“胶水”主要面向端场景进行适配。 因此,一个好的PHP基础架构,必须是一个可渐进式扩展的,既保证前期开发的快速,也要为未来系统扩展预留楔子; 而PHPer,则要有看到未来架构形态的眼光,也要有着眼业务的定力,微妙保持开发效率和系统可维护性的平衡。 ## 说说 swoole & hyperf ### 衰落? PHP7 带来性能的提升以及大量的新语法糖,PHP-FPM 成熟模式对于快速 web 应用开发仍然有一定优势。 但需求上整体环境遇冷,缺少广泛的业务市场;技术上前后端分离成为常态,微服务甚至serverless等新架构出现。 缺乏新业务的刺激,成熟业务模式下,其它语言的也可以构建完整微服务化解决方案且有更好的性能。PHP语言来到着衰落的关口。 大环境问题由天不由人;技术上,PHP被诟病的性能上主要的问题有两点:1 同步阻塞的运行模式;2 缺乏系统级的资源共享。 ### 契机? swoole扩展实现了协程和多种网络服务引擎,带来PHP开发高性能应用,构建完整后端服务的可能。 ### 落地 是否选择swoole生态,是一个可以展开的话题。考虑到渐进式的技术成长(迭代)是较容易落地的方式,我认为还是值得学习的。 但对很多只会“面向页面编程”的开发者来说,直接学习应用swoole的成本是有点高的。最好还是找到一个相对成熟的框架,减少技术本身的心智负担,继续专注于业务之上。 hyperf 是当前相对 文档成熟,架构清晰,工程化支持较好 的一个基于swoole的应用框架。 嗯~也可能是swoole生态接下来可选的最主要甚至唯一的框架了。 ## 说说文章 上面也说了,其实 hyperf 文档写的还是比较清晰的。除了介绍是什么和怎么做,有时候还顺便科普了为什么。 不过总归他是一个框架的文档,内容还是大而全。正如产品上多一个按钮点击都会流失很多用户,多一点点的学习门槛,就能卡掉不少准备学习的人。 本系列文章是自己的学习总结,主要针对之前只熟悉CGI模式的PHPer,以场景实例为引导去串联内容。内容上屏蔽可选项,大多只提供一种实践方案(注意:**偏入门实践,而非生产实践**),让感兴趣的人能够快速上手并见到效果,后续再自己逐步学习查漏补缺,完善整个知识体系(**重要!**)。 ## 扩展阅读 [2017年PHP程序员未来路在何方](https://segmentfault.com/a/1190000008888700) [编程语言的心智负担](https://segmentfault.com/a/1190000017411420)
粤ICP备19051469号-1
Copyright©dingusxp.com - All Rights Reserved
Template by
OS Templates