首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

为什么说 Swoole 是 PHP 程序员技术水平的分水岭?

编程知识
2024年08月26日 08:08

大家好,我是码农先森。

谈到这个话题有些朋友心中不免会有疑惑,为什么是 Swoole 而不是其他呢?因为 Swoole 是基于 C/C++ 语言开发的高性能异步通信扩展,覆盖的特性足够的多,有利于 PHP 程序员接触更全面的技术知识点。大多数的朋友踏入到 PHP 的大门都是因其简单的语法及其弱类型的特性,还有各种集成环境安装包、简单易用的框架,随随便便就可以快速的搞出一个系统,这就让 PHP 在我们心中落下的「简单易用」的印象。

这种印象就注定了 PHP 程序员在编写代码的过程中,怎么简单怎么来,随便的很,不瞒你说我还见过用中文来命名变量的,这简直颠覆了我的编程认知,好歹你用拼音也比中文强吧。不过为了良好的编程习惯,最好还是用英文单词,毕竟我们也要与国际接触嘛,自己的代码放到 GitHub 上也要让国际友人看的懂吧。话又说回来,很多时候 PHP 靓仔们写的代码,过一段时间后自己都看不懂了,更别提其他人了。我经常听到有人到处吐槽,前人的代码写的和屎一样有又长又臭惨不忍睹,然后你还要憋着内伤在这坨屎上绣上一朵花,这场景不堪回首哈哈。

差点写跑偏了,还是揪回我们这次的主题吧。分水岭这个词大家都挺熟悉的,但是在这里就是把 PHP 程序员分成了两拨人了,一拨是一直在以 PHP-FPM 同步编程模式下编程的人,另一拨是以 Swoole 异步编程模式为代表的编程人。我们在 PHP-FPM 模式下编程时,集成环境一启动,就把 PHP-FPM 进程管理器、Nginx 服务、MySQL 服务全部都给搞起来了,不需要关心其中的细节,如果想要增加新项目就在 Nginx 的 vhost 目录,配置一个本地域名重启一下 Nginx 就完事了,要是遇到项目总是报错迟迟无法访问,就反复重启集成环境,运气好点的重启一两次就莫名的好了,倒霉的就凉凉了,又要操蛋的重装集成环境了,更有甚者直接重装操作系统,一顿操作猛如虎。还有在这种模式下,我们也不需要关心内存的使用情况,变量想定义多少搞多少,外部资源随意加载,从数据库查询数据全部都是 select * 的骚操作,管它用不用的上全部都搞出来再说,如果造成接口访问时间过长,就全部怼到 Redis 缓存中去,美其名曰这是高级的性能优化方案。要是懂得点异步技术的靓仔,还会在比如发送短信等的场景下,使用一下 Redis 消息队列,异步给用户发送消息而不阻塞同步接口,从而使系统的并发性能得到提高。

长期在 PHP-FPM 模式下编程的人,几乎不用懂操作系统、网络协议等基础知识,协议上不管怎么用都只有 HTTP 协议。然而在 Swoole 异步编程模式下,不懂这些基础知识那可就行不通了,除了 HTTP 协议还有 WebSocket 协议、MQTT 协议、TCP 协议、UDP 协议,甚至还可以自定义网络协议,如果你对基础协议知识不了解,那刚开始学习 Swoole 估计就要夭折。其次 Swoole 中的协程、通道、多进程编程,就涉及到了操作系统的多路复用、IO调度策略、进程间通信、进程管理等知识,这些统统都是计算机的底层知识,是在 PHP-FPM 编程模式下接触不到的。还有在 Swoole 中可以针对数据库连接打造数据库连接池,高效的复用数据库连接资源,不用每次都重新连接数据库,避免资源的浪费。正是这些基础知识把大多数 PHP 程序员困在了低水平重复的技术区域里,因此要学好 Swoole 需要先学习计算机底层知识,然后再反复的利用 Swoole 进行实践,两者相辅相成便可好好打磨自己的技术。

可以说在 PHP 领域 Swoole 就是这些基础知识的具体体现,深入理解了 Swoole 并且能应用好,就能让自己的技术水平上一个新的台阶,超越大多数的 PHP 程序员。同时掌握了这些基础知识横向学习其他的语言也会易如反掌,原因是大多数语言的本质都是相通的,了解了其内在本质基本上就能做到一通百通。在这个持续内卷的时代,是时候让自己炼就一些不可或缺的内功了,不要让自己每天都疲于奔命在学习层出不穷新框架的路上,而是要掌握事物的根本规律以不变应万变,打造自己的知识壁垒墙,争取在内卷这场风暴中苟活下来。本次分享的内容到这里结束了,希望对大家能有所启发。

感谢阅读,个人观点仅供参考,欢迎在评论区发表不同观点。


欢迎关注、分享、点赞、收藏、在看,我是微信公众号「码农先森」作者。

From:https://www.cnblogs.com/yxhblogs/p/18349867
本文地址: http://shuzixingkong.net/article/1440
0评论
提交 加载更多评论
其他文章 甲方扔给两个存在包名与类名均相同的Jar包,要在工程中同时使用怎么办?
你的项目是否曾遇到过有jar包冲突,而这些冲突的jar包又必须同时存在的情况?一般来说,jar 冲突都是因不同的上层依赖项,自身又依赖了相同 jar 包的不同版本所致,解决办法也都是去除其中一个即可。需要同时保留冲突jar包的情况,实属罕见。 在与第三访系统集成通信时,有一种方式是由被集成方提供Ja
甲方扔给两个存在包名与类名均相同的Jar包,要在工程中同时使用怎么办? 甲方扔给两个存在包名与类名均相同的Jar包,要在工程中同时使用怎么办? 甲方扔给两个存在包名与类名均相同的Jar包,要在工程中同时使用怎么办?
异源数据同步 → DataX 为什么要支持 kafka?
开心一刻 昨天发了一条朋友圈:酒吧有什么好去的,上个月在酒吧当服务员兼职,一位大姐看上了我,说一个月给我 10 万,要我陪她去上海,我没同意 朋友评论道:你没同意,为什么在上海? 我回复到:上个月没同意 前情回顾 关于 DataX,官网有很详细的介绍,鄙人不才,也写过几篇文章 异构数据源同步之数据同
异源数据同步 → DataX 为什么要支持 kafka? 异源数据同步 → DataX 为什么要支持 kafka? 异源数据同步 → DataX 为什么要支持 kafka?
《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件
⭐️基础链接导航⭐️ 服务器 → ☁️ 阿里云活动地址 看样例 → 🐟 摸鱼小网站地址 学代码 → 💻 源码库地址 一、前言 在本系列文章的早期章节中,我们已经成功地购买了服务器并配置了MySQL、Redis等核心中间件。紧接着,我们不仅建立了后端服务,还开发了我们的
《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件 《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件 《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件
互联工厂数据交换标准:IPC-CFX
本文我们一起了解下IPC-CFX标准产生的背景 和 用途,它是机器设备之间通信的“统一语言”,是大家都懂的“普通话”而不是“方言”。IPC-CFX使用AMQP v1.0传输协议实现安全的连接,使用JSON进行数据编码,提供了明确的消息结构和数据内容,确保即插即用,它或许是工业4.0应用的基础。
互联工厂数据交换标准:IPC-CFX 互联工厂数据交换标准:IPC-CFX 互联工厂数据交换标准:IPC-CFX
2024年智能革命:HarmonyOS NEXT与盘古大模型5.0的颠覆性融合
2024年,华为发布了震撼业界的HarmonyOS NEXT和盘古大模型5.0,智能设备市场迎来前所未有的变革。这不仅是技术的革新,更是一次深刻的未来预告。操作系统与AI技术的深度融合,将会如何改变我们日常生活的方方面面?你是否好奇,这些颠覆性功能如何重新定义智能设备的应用场景?开发者们又是如何利用
2024年智能革命:HarmonyOS NEXT与盘古大模型5.0的颠覆性融合
上周热点回顾(8.19-8.25)
热点随笔: · 会员力量:非常感谢58位园友成为终身会员 (博客园团队)· 【故障公告】博客站点遭遇大规模 DDoS 攻击 (博客园团队)· 使用FModel提取《黑神话:悟空》的资产 (paw5zx)&#18
Ansible-playbook 应用梳理
前面已经介绍过Ansible的安装配置及常见模块的使用 --《Linux下使用Ansible处理批量操作》 Palybook简介 palybook是由一个或多个paly组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓 t
Gradio.NET 支持 .NET 8 简化 Web 应用开发
前言 Gradio.NET 是 Gradio 在 .NET 平台上的移植版本。Gradio 是一个开源的 Python 包,用于快速构建机器学习模型、API 或任意 Python 函数的演示或 Web 应用程序。 Gradio.NET 继承了 Gradio 的核心理念,以.NET 开发习惯和熟悉的方
Gradio.NET 支持 .NET 8 简化 Web 应用开发 Gradio.NET 支持 .NET 8 简化 Web 应用开发 Gradio.NET 支持 .NET 8 简化 Web 应用开发