回覆列表
-
1 # IT史記研究所
-
2 # 雜湊說
其實 PHP 轉 Go 並不困難,首先我們知道 Go 的基礎語法是非常簡潔的,只有 25 個關鍵字,直接看書就能上手。真正需要你花時間去轉變的其實是程式設計的思維。由於 CGI 這一程式設計模式的特性,請求完成都會釋放掉所有記憶體,每次處理請求都是重新分配的記憶體空間,導致我們寫 PHP 的時候更多的側重點是在如何寫好業務邏輯上,很多東西是不需要考慮的,比如
GC連線池,物件池併發安全當你真正理解它們,並懂得如何使用它們寫出高質量的程式碼,那麼此時此刻,你才算真正完成從 PHP 過渡到 Go
PHP與GO雖然都叫程式語言,但其實它們之間的差別還是挺大的;
PHP的特點在與WEB程式設計,而GO的特點在於併發;
如果你有C或者C++的基礎,去學習GO應該沒有什麼障礙
反之,如果沒有寫過 C 或 C++ 的話,不建議直接學 Go, 因為沒寫過 C/C++ 的話,很難理解 Golang 的優勢在哪裡;
最後就是你在學習GO的時候,最後把PHP趕出你的腦子,完全忘記它..
從語言本身特點來看,Go 是一種非常高效的語言,高度支援併發性,Go 語言的本身,它更注重的是分散式系統,併發處理相對還是不錯的,比如廣告和搜尋,那種高併發的伺服器。
Go語言優點:
效能優秀,可直接編譯成機器碼,不依賴其他庫,Go 極其地快。其效能與 Java 或 C++相似。語言層面支援併發,這個就是Go最大的特色,天生的支援併發,Go就是基因裡面支援的併發,可以充分的利用多核,很容易的使用併發。內建runtime,支援垃圾回收,這屬於動態語言的特性之一吧,雖然目前來說GC不算完美,但是足以應付我們所能遇到的大多數情況,特別是Go1.1之後的GC。簡單易學,Go語言的作者都有C的基因,那麼Go自然而然就有了C的基因,那麼Go關鍵字是25個,但是表達能力很強大,幾乎支援大多數你在其他語言見過的特性:繼承、過載、物件等。豐富的標準庫,Go目前已經內建了大量的庫,特別是網路庫非常強大,我最愛的也是這部分。內建強大的工具,Go語言裡面內建了很多工具鏈,最好的應該是gofmt工具,自動化格式化程式碼,能夠讓團隊review變得如此的簡單,程式碼格式一模一樣,想不一樣都很困難。跨平臺編譯,快速編譯,相較於 Java 和 C++呆滯的編譯速度,Go 的快速編譯時間是一個主要的效率優勢