開門見山,一睹golang的風采
效能優勢
部署運維成本低
編碼格式統一;測試簡單
第一層含義是:go
語言的語法和c語言類似,如果你會c語言,上手會很快。但如果你不會c語言,其實也不用擔心,比起c語言,go
語言上手其實很簡單。
第二層含義是:go
語言的效能,go
語言內建強大的併發模型goroutine
,它能讓我們快速開發高併發web系統,並且在同樣伺服器資源的情況下,go
語言表現出來的效能也是相當的優秀,這也是推薦大家選擇選擇go
語言的原因之一。
這是我選擇go
語言的第二個原因。go
語言屬於編譯型語言,最終部署上線,我們只需要部署專案編譯後的二進位制檔案即可,模擬一下像php
或python
這種解釋性語言在伺服器上執行還需要安裝相應的執行環境,而使用二進位制**方式使得部署變得更為簡單,也不會存在多版本共享環境的相容性問題,運維也變得非常容易。
go
語言官方內建了統一**風格的工具gofmt
(ide
一般都會內建整合), 用來規範大家**風格,這對於需要多人協作專案尤為重要。
比如,現在你需要接手乙個外包團隊專案,這個外包專案如果專案的編碼風格和你不一致,當你接手後,你的心情多半沮喪的,因為這會增加你的改造成本。
更或是,你現在需要接手乙個由前前前同事所開發的老專案,如果**風格不統一,可想而知接下來會發生什麼...
go
語言官方其實也是注意到了這些痛點,也避免了由第三方產生的規範不一致的問題,以官方的角度統一規範,從而降低整個專案的協作運維成本。
go
語言編寫測試**真的非常簡單,這個特性真的是剛需啊。我們在專案開發中經常會遇到這樣的事情,比如當你負責為專案負責開發乙個獨立的簡訊服務模組,這個功能供另個同事在專案裡呼叫,當你開發完成後如何測試功能是否正常呢?
這種測試在go
語言中變得相當容易,你只需要在你**檔案同級目錄建立乙個以_test.go
結尾的檔案,然後在檔案裡編寫針對特定功能測試函式即可,更重要的是,這個測試檔案是可以單獨執行的,你不需要再去整合整個專案執行環境,go
語言讓單元測試變得非常容易。
此外,我們經常還會做一些基準測試,比如:每種語言都會為字串拼接提供多種實現方式,那不同的拼接效能如何對比測試呢?在go
語言裡編寫這種基準測試非常簡單,至於更細節的實操內容,後面會有單獨的章節介紹go
語言如何編寫測試**。
當下使用go
語言開發的軟體產品非常眾多,而且知名的產品也不再少數,足見這門語言的強大:
軟體描述
鏈結docker
家喻戶曉的容器技術
容器編排引擎,google出品
分布式服務註冊發現系統
時序資料庫
資料監控視覺化看板
開源監控系統
分布式服務發現系統
nsq億級訊息佇列
分布式資料庫, go + rust 打造
除了上述**中列舉的產品外,go
語言還涉足於像區塊鏈、微服務等場景,開源的框架也非常多,所以說go
語言是一門值得去學習的語言。
摘錄 優勢談判簡述
題外話 時光飛逝,轉眼間2016年就要這樣悄悄走過,頓感時間過的太快了,好像沒有做太多事情,這一年就這麼結束了。無論過去的歲月裡經歷什麼,辛苦 甜美 心酸 幸福 快樂,都要好好的把握當下,把握未來,願不辜負曾經奮鬥的自己。不忘初心,方得始終 心懷理想,總將抵達 心懷美好,總將遇到 感謝一路上的相遇,...
優勢與不足
ted的乙個很有意思的演講,我覺得很受啟發。大概意思就是,我們要進行多個方面的任務切換,不能夠總是專注於乙個領域。可能類似於流水線,但同時強調慢過程,一點點打磨,這反而是一件非常高效的事情。首先,關注不同的領域,可以讓你在一件事遇到困難時,切換到另外乙個工作狀態,從而持續興奮的去工作。比如說馬斯克,...
Golang交叉編譯(跨平台編譯)簡述
三 簡述交叉編譯 四 實練 小總結簡單地說,就是在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統 同樣,同乙個作業系統也可以在不同的體系結構上執行。本文只介紹windows平台下的golang交叉編譯 安裝完成後新增tdm gcc中bin資料夾進環境變數。其實儲存上面一幅圖...