我不知道你是否真的對swoole瞭解

北風之神發表於2021-12-27

本文話題說明

本文內容並無硬貨,如食硬貨可新增vx Le-studyg
本文的內容表面是swoole實與swoole沒有直接關係。
如果你目前已經滿足於框架層面的CRUD,本文沒有必要繼續閱讀下去。反而會讓你不舒服。

在此先感謝swoole平臺的手冊。

本文只是表面是swoole介紹實質沒有太大的關係

我相信許多PHPER夥伴早期大部分是laravel thinkphp yii ci …等框架進行CRUD開發,這樣的模式相信已經在你身上已經長達一段時間,如果更久的朋友,相信每個專案幾乎都差不多,幾乎是web專案,幾乎是HTTP協議佔比最高,可能偶爾用一下其它協議如WEBSOCKET,MQTT,RMPT等協議,但我相信肯定沒有HTTP協議的專案佔比高。

我同時也相信大部分是用LINUX伺服器執行專案及使用瀏覽器作為客戶端進行互動,相信這樣的模式肯定在你手上經歷了很長時間,同時我也相信一些朋友基於這模式可能已經滿足於目前的薪水了。不需要過多的再深入,再學習,或是再卷一下。甚至已經躺下衣食無憂了。如果真是這樣,可以迅速關閉本文打點遊戲放鬆一下,沒有必要浪費時間再繼續往下閱讀了。如果說你還想卷一下,那麼容我細細說來。

不知道你是否真的對swoole瞭解

我相信這樣的開發模式即在本地編寫好程式碼,就把PHP指令碼扔到LINUX上部署(不論是整合環境還是docker容器都一樣)這樣的模式大家肯定是熟悉不過了。你在伺服器上啟動服務,然後用瀏覽器或是一些工具去請求得到響應進行CRUD開發。然後愉快的擼著程式碼唱著山歌。

突然有一天,你用上了SWOOLE或是轉語言轉到了GOLANG JAVA 上(我這裡先假設你用了SWOOLE)或是SWOOLE周邊框架如HYPERF,SWOFT,EASYSWOOLE等時,我相信你或多或少會遇到一些坑,甚至你暫時無法理解的東西。然後你會瘋狂的上百度,找找官方群,找找大佬,費盡周折好不容易掌握了這些框架的用法或是SWOOLE的用法。

當你用上SWOOLE或是其封裝的框架時,應該瞭解一下作者學了什麼東西

作者學了什麼:
不知道你是否真的對swoole瞭解
wiki.swoole.com/#/question/swoole

網路程式設計技術: socket io複用 libevent網路庫等
多程式程式設計技術:程式,程式,中斷訊號,程式關係,程式池等
swoole文件多處強調使用者應該具備:網路程式設計技術和多程式程式設計技術
如下:

不知道你是否真的對swoole瞭解
wiki.swoole.com/#/event

不知道你是否真的對swoole瞭解

在文件很多地方都能體現出網路程式設計與多程式程式設計的核心知識,只是一些朋友不是特別在意。

  • 比如程式fork【即建立新的子程式】【底層的呼叫為clone】

我不知道你是否真的對swoole瞭解

執行後子程式會保持父程式的記憶體和資源,如父程式內建立了一個 redis 連線,那麼在子程式會保留此物件,所有操作都是對同一個連線進行的。以下舉例說明

如果你有多程式程式設計的經驗,這句話其實你都不用理

我不知道你是否真的對swoole瞭解

其實上面的話還不夠徹底,不但但只是內容和資源父子程式相同,它們的程式指令也相同,子程式clone後複製父程式的大量資源。

我不知道你是否真的對swoole瞭解

這裡我不會展開細說

我不知道你是否真的對swoole瞭解

不但但程式碼段(我不知道你是否真的懂程式碼段,長啥樣?在哪裡看?)還有資料段及段表裡的段segment都會載入到記憶體中,同時它們做了許多工作,比如讀取ELF檔案的頭資訊(這裡涉及程式的載入原理,在此不提)

我這裡只是抽取swoole文件的一些內容,目的是想告訴你基礎知識真的非常重要(即網路程式設計和多程式程式設計知識)

我不知道你是否真的對swoole瞭解

我相信通過字裡行間,大家能知道,作者掌握了什麼知識,以及讓大家要學習什麼了。不需要我過多的解釋。

swoole 作者讓我們應該學什麼

我不知道你是否真的對swoole瞭解
rango.swoole.com/

總結

你需要的核心基礎知識

核心基礎知識的儲備和學習是你使用golang swoole java python php c/c++的必備基礎,也是你研究其它新技術的必備支撐。除非你已經滿足了目前框架的crud。不需要再卷。

  • 多程式程式設計技術(程式,程式,程式關係,會話,程式組,控制程式,終端,中斷訊號,中斷系統,程式池,程式間通訊,程式與程式等。。。)
  • 網路程式設計技術
  • Linux c 程式設計

問題【題目非常簡單,你有興趣就答,沒有興趣就算了】
1.
我不知道你是否真的對swoole瞭解
這裡的程式碼段是什麼意思?能不能親眼看到程式碼段長啥樣?怎麼來的?程式碼段在程式哪個地方?
2.golang 如下程式 【因為我真的怕你直接轉GO了】

func main(){

  fmt.Println(x)
}

2.1 請說一下main函式放在哪個段?段有多大?段上面的內容是什麼?
2.2 請說一下編譯後執行時,執行的過程是不是和第1題swoole程式碼一樣?

www.bilibili.com/video/BV1aL4y1n75...

我不知道上面的知識你是否會重視,或者說你是否要掌握,如果說你要像韓大佬那樣認真的學習一下,如果你有興趣可以Add my vx Le-studyg,我們互相討論學習。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
北風之神

相關文章