爲什麼要學go語言,golang的優勢有哪些?

在過去幾年,有一門崛起的新語言:Go 或者 GoLang。沒有什麼比一門新的編程語言更令開發者興奮了,不是麼? 自從我開始學習golang後,我便放棄了我的php大業,雖然php號稱“php是世界上最好的語言”,但是通過實戰證明,golang更香甜。

爲什麼要學go語言?

扯太高大上的優勢我也說不上來,我就從我切身經歷的幾個方面說說我爲什麼學golang吧。這些都是真實的需求對比,它制約着我前進的步伐。
在php開發的時候,我經常遇到一些不太好解決的問題:

  • php只能單線程執行任務,在比如在採集任務中,它需要抓完一個網頁,再接着抓第二個網頁,這效率嚴重低下,無法忍受之痛。雖然在服務器上跑可以使用計劃任務開多個php進程,但是內存開銷又變得太大了。
  • 在用php開發的網站中,url請求的內容只能等服務器端執行完畢才能響應給客戶端,無法異步執行。這個問題比較頭疼,比如提交的連接要檢查頁面狀態,提交的時候直接檢查的話,就需要用戶等待較長時間,雖然可以變相使用計劃任務配合執行,但是終究不完美,並不是我想要的解決方案。
  • 在php中,如果程序有比較多curl請求網絡任務,並且連接遲遲沒結束的話,它很容易就導致網站出現502的問題。雖然可以通過設置curl超時時間來降低發生頻率,但是它始終是一個懸在頭上的問題。
  • 大佬公司都在轉go,七牛、阿里、百度、騰訊、頭條、京東、嗶哩嗶哩等。跟上時代步伐,纔不會被時代淘汰。
  • 執行速度問題,我只想讓網站更快的展示給用戶。
    以上的種種,導致了我要尋找一門語言去克服它。通過多方對比後,golang可以完美解決我遇到的問題,所以,我就開始了學習golang之旅。

golang的優勢有哪些?

網上很多關於介紹golang優勢的文章,無異於都是在說硬件侷限性問題、goroutine、直接在硬件上跑、易於維護、google背書等。這些優勢我就不再一一重複了,因爲大家搜索答案的時候,已經多次看到了,我再補充一些其他優勢。

  • 簡單好記的關鍵詞和語法。golang語法簡單,這個是真的簡單,即使從來沒接觸過過編程的用戶,都可以輕鬆上手,比c++、java更簡單易學,甚至比php學起來都輕鬆。與同爲強類型語言的比c++比,更是簡單得多。雖然簡單,但是實現起功能來,一點也不含糊。
  • 更高的效率。更快的開發效率、更高的編譯速度。比java、c++編譯速度上快了N個數量級,golang擁有接近C的運行效率和接近php的開發效率。
  • 網絡庫非常強大,一般大塊的功能實現,都有現成的庫可以直接使用,不知道庫地址都不要緊,你想要什麼功能的實現,用瀏覽器打開github,或網速慢的用戶打開gitee,搜索你想要的功能的關鍵詞,選擇go項目,基本上都能找到你想要的功能,然後,直接將他的庫拉下來使用就可以啦。
  • 嚴格的依賴管理,本身禁止循環依賴,依賴的管理命令也很簡單,go mod 命令就可以解決一切依賴。Go擁有強大的編譯檢查、嚴格的編碼規範和完整的軟件生命週期工具,具有很強的穩定性,穩定壓倒一切。編譯的時候就將可能埋雷的地方給掐死了,放心,這是一個很好的檢查,可以讓你的代碼更規範。
  • 跨平臺交叉編譯,直接生成可執行二進制文件發佈,比如我只有Windows系統,我依然可以直接編譯出在mac、linux上可執行的程序,是不是很爽,省錢能手,還省去了分別部署環境的問題。當然更重要的是,代碼不會暴露了,對於商業保護來說,特別是開發php項目,想要代碼不被破解,簡直是難於登天。這樣一下子好了,發佈一個執行文件,安全。這一點是很多人選擇Go的最大理由,因爲部署太方便了,所以現在也有很多人用Go開發運維程序。
  • 併發和異步執行不要太簡單,一個go關鍵詞就搞定了。前臺提交了個url需要檢測,go checkUrl(link)開啓一個goroutine讓它慢慢跑吧,不要堵住主進程。需要採集的網頁數量有點多,一個個循環採集那是要等到何年何月才能採集完啊,開100個chan,100倍的速度跑起來,只要你的帶寬足夠大,就不怕它跑不快(此處建議拉一根500M帶寬的網線)。
  • 嚴格的語言規範。變量一定要聲明,用不到的包不能引進來,大寫字母開頭的函數、結構體變量是公開訪問的,小寫的是私有的,沒有三目運算,嚴格的變量類型轉換。所有寫go的程序員都統一一樣的規範,你只能按照這些規範來寫代碼。從此不再有爲標準思前想後、爭來吵去了,代碼清晰了,可讀性高了,可維護性自然就好了。
    開始學習吧

    golang 總結

    golang的背後,真的是google,go的創始者都是大牛,他們開發和開源go出來,就是爲了解決已有的老語言無法更高效的爲軟件開發工作的問題,golang實現了媲美c++的執行速度,比java更簡單的語法特點、編譯速度接近php語言等,讓他成爲開發語言中的一個新貴。它讓開發變得更加簡單。做開發,不就是要追求易學易用嘛。golang再合適不過了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章