這次為什么要討論這個話題,因為 Swoole 和 Go 在 PHP 程序員坊間一直都是茶語飯后的談資,覺得懂 Swoole 和 Go 的就高人一等。
大家好,我是碼農(nóng)先森。
這次為什么要討論這個話題,因為 Swoole 和 Go 在 PHP 程序員坊間一直都是茶語飯后的談資,覺得懂 Swoole 和 Go 的就高人一等。相信有很多的 PHP 程序員,自打 Swoole 發(fā)布以來就從來沒有使用過。還記得 Swoole 官方有一遍入門文章中曾建議學(xué)習(xí) Swoole 之前,先學(xué)習(xí) Liunx 操作系統(tǒng)、TCP/UDP 網(wǎng)絡(luò)協(xié)議棧、Socket 通信等基礎(chǔ)知識,作為 7 天入門、30 天精通 PHP 的靚仔們,面對這些基礎(chǔ)知識不屑一顧,還會不時的反問,這些東西難道影響我 CURD 了?
在我的工作經(jīng)歷中遇到過這樣的三類人,首先是:常年在 Window 系統(tǒng)下使用一鍵安裝包 phpStudy 的 PHP 程序員,一輩子都沒有翻開過 PHP 相關(guān)的源代碼。即使在 Linux 服務(wù)器上也是使用萬能的寶塔面板,一鍵便啟動了 php-fpm、MySQL、Redis 等服務(wù),如果服務(wù)出錯誤久久不能正常運行,便傻眼了不知所措,然后開始在各大技術(shù)群中發(fā)求助信并艾特各位大佬。每當(dāng)我看到此種場景,心情都久久不能平靜。其次是:時常游跡于 Thinkphp、Laravel、YII 等各大框架社區(qū)并對框架 MVC 模式有所貢獻的 PHP 程序員,這些人還成為了這些框架的布道師,對框架的優(yōu)劣勢了如執(zhí)掌,但俗不知自己可能已經(jīng)陷入了框架的泥潭,在這個泥潭里久久不能自拔。最后是:偶爾會跨過互聯(lián)網(wǎng)的那堵墻去看看外面世界的 PHP 程序員,有著對技術(shù)的好奇心且不甘于現(xiàn)狀,開始嘗試向下探索向上生長,但在這個追逐技術(shù)的路上不免會迷失方向,走到了技術(shù)的迷霧中。
雖說這三類人的情況都大不相同,但相信大家對 Swoole 和 Go 都有進階學(xué)習(xí)的想法。接下來我會介紹一些學(xué)習(xí)上的建議,希望對大家能有所啟發(fā)。
Swoole 基于 C 語言開發(fā)的 PHP 異步通信擴展,其中涉及了多進程、協(xié)程、同步、異步、IO多路復(fù)用、Socket 等技術(shù)點。因此學(xué)習(xí) Swoole 之前需要先把這些概念搞懂,才能進入下一步的學(xué)習(xí)。如果是科班出身的程序員對這些概念多少有點了解,非科班的就要多學(xué)習(xí)下基礎(chǔ)的知識,把概念牢牢掌握。在這里我也把這些概念在 Swoole 中結(jié)合一下,比如學(xué)習(xí)了多進程就可以理解 Swoole 的多進程運行模式,學(xué)習(xí)了同步異步就理解了 Swoole 中的阻塞與非阻塞模式、學(xué)習(xí)了IO多路復(fù)用就理解了 Swoole 中的事件循環(huán)的機制、學(xué)習(xí)了協(xié)程就理解了 Swoole 中協(xié)程及通信通道的用法、學(xué)習(xí)了 Socket 套接字就理解了 Swoole 中所有的網(wǎng)絡(luò)通信都基于 Socket 的原理,還有很多這里就不一一舉例了。只要把操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議的基礎(chǔ)知識學(xué)一遍,那么學(xué)習(xí) Swoole 便會更加得心應(yīng)手。反之沒有這些基礎(chǔ),那么學(xué)起來會非常的吃力,這也是很多的 PHP 程序員學(xué)習(xí) Swoole 舉步維艱的主要原因。
再來說說學(xué)習(xí) Go 語言要具備哪些基礎(chǔ),從理論上來說要和學(xué)習(xí) Swoole 要具備同樣的基礎(chǔ)。但是有很多人會說了,我沒有這些基礎(chǔ)也能用 Go 開發(fā)項目呀,CURD 操作開發(fā)、API 接口開發(fā)溜得一皮。是的,實際上沒有上面說的那些基礎(chǔ)也能開發(fā),但那只是 Go 應(yīng)用場景的冰上一角。Go 語言的真正優(yōu)勢是高并發(fā)特性,要想真正用 Go 開發(fā)出高性能的項目,那這些基礎(chǔ)知識是必不可少的,不然可能連 Go 的協(xié)程都玩不明白,搞的內(nèi)存資源到處泄露,到頭來 Bug 層出不窮得不償失,反而最后還會覺得 Go 還沒有 PHP 好用。
回到這篇文章的主旨討論的是學(xué)習(xí) Swoole 還是學(xué)習(xí) Go ?我認為要先學(xué)習(xí) Swoole 再學(xué)習(xí) Go,其中的原因文中已經(jīng)有所闡述了。從近年 Swoole 的發(fā)展來看,其中很多的新特性也是從 Go 中所有借鑒。網(wǎng)上還有人調(diào)侃說 Swoole 越來越像 Go 語言,確實 Go 語言自誕生以來就出身貴族「谷歌」一直帶著耀眼的光環(huán),是很多語言學(xué)習(xí)的榜樣? Github 的排行榜 Go 語言的使用熱度也是逐年的上升,因此學(xué)習(xí) Go 語言也是大的趨勢,但在學(xué)習(xí)的路上也要打好地基腳踏實地,只要把自己這把刀磨好,就不怕耽誤砍柴的功夫。
最后我也推薦一個基礎(chǔ)知識的學(xué)習(xí)網(wǎng)站 https://xiaolincoding.com/ 這里的內(nèi)容大多數(shù)都是圖解的方式,理解起來會相對容易些,希望對大家能有所幫助。
歡迎關(guān)注、分享、點贊、收藏、在看,我是微信公眾號「碼農(nóng)先森」作者。
機器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)