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