如題


大部分能想到用到的東西,除了手機app,剩下基本都可以做。

1、命令行程序。不分windows、linux、macos,扔進去就能用(當然,需要交叉編譯,具體不展開,下同),讀寫資料庫、小爬蟲、定時任務等等等等,想怎麼玩怎麼玩。個人目前主要是用來同步數據,定時備份和清理垃圾。

2、圖形化工具。還是全平臺通用,官方雖然沒有GUI庫,但是第三方有的是。選個合適的庫,c++能搞的,golang差不多都可以搞(GUI庫的選擇請參考https://www.zhihu.com/question/268536384/answer/1215107185)。個人目前是給一些命令行工具配界面用,用golang是因為實在喜歡協程的寫法,再就是工作電腦和家庭電腦操作系統不一樣,懶得分開寫。

3、私人伺服器。這回不光不挑平臺了,還能直接扔在路由器或者舊手機上了(舊安卓手機廢物利用請參考https://zhuanlan.zhihu.com/p/92664273)。golang天生支持arm,私人服務,無非就是個網盤、博客之類的,完全沒必要買雲空間(家庭網路穿透定位部分不展開)。

4、各種正牌服務。這個不多說,喫飯用的。反正用不了多少資源,5000qps的服務隨便跑跑,完全沒必要裝什麼jvm,python、php之類的運行環境,想跑就跑,想搬就搬。目前已經用caddy代替了nginx(證書自動展期方便),gin代替了tomcat(伺服器內存太貴了)。剩下普通的API服務,自己寫就完事了。目前最長的高吞吐量服務,已經跑了700多天還活蹦亂跳,上次停機還是停電的時候。

golang最大的特點,就是什麼都能沾點邊,而且學習起來曲線比較平滑(rust,說的就是你)。一個擅長其他編程語言的程序員,兼修golang,基本就是一兩個星期的事兒。但是不建議沒有編程經驗的人直接上,容易被帶偏。

當然,這東西坑也很多,幾乎是唯一一個避坑指南比入門教程還長的編程語言(可以參考https://zhuanlan.zhihu.com/p/27518650,只是一部分,實際上更多)。


用著爽就好。

目前來說一般作為可拆分單元服務,也就是大家說的微服務。一些網路通信系統,例如消息系統,調度系統,級聯繫統等等。不過並不限於這些,可以的話,你的需求都能使用它來做。一些容器開發,CDN,雲相關的服務也是目前比較火的領域。

還有就是目前Go的生態還非常不完善,有很多輪子等著我們造。比如我目前在做的Go代碼質量分析工具,應用監控等。如果以後Go真的大火,完全可以嘗試當創業項目來搞。


處理日誌、數據打包、虛擬機處理、文件系統、分散式系統、資料庫代理等;網路編程方面,Go語言廣泛應用於Web 應用、API應用、下載應用。

除此之外,Go語言還適用於內存資料庫和雲平臺領域,目前國外很多雲平臺都是採用Go開發。

大愛golang!


作為一名運維相關從業者,主要總在以下兩點:

  1. 命令行程序,由於個人用mac辦公,且在Linux 上操作,所以用golang 開發command line 程序,簡直不要太好
  2. API介面,golang 的協程機制可以輕鬆開發出高並發的介面
  3. 各種開源組件的需求開發,如今雲原生領域的很多軟體都是用golang 開發的(比如Docker Kubernetes etcd等),如果企業內部有小需求,是可以很快解決掉的

另外,其實看個人規劃是怎樣的,如果是做基礎架構和雲原生領域的,那golang 還是提早深入學習,沒壞處的。


因為跨平臺,單文件部署,這幾個特性很方便.所以我會用來寫一些小工具,做一些規模不大的網站.

規模大一點的,我會用C#來做,開發效率更高.


命令行程序,我們從用go實現了grep和tail類似的功能,部署在每一臺機器上,前端用websocket獲取日誌信息。web程序,我們用go的gin框架搭建了很多web服務。

我們這裡主要就是用來開發kubernetes 相關組件(controller,operator)


寫點伺服器中間件,比如消息中間件,代理服務,協議處理,lvs之類的,主要有兩個原因,一個是go的類型以及編譯後使用起來還是挺方便的,同時又比cc++的高級語言特性更加簡單易用,像寫腳本語言一樣就能寫出性能不錯的程序,寫起來不累;另一個原因是被go這種在網上宣傳那麼多,標籤高性能、高並發、穩定跨平臺等等宣傳所吸引,又有大牛開發者背書,周圍認識的厲害程序也經常用,所以也不能免俗跟著學點:D


後臺api


當然是用來開發web了,比如我開發的web後臺:https://github.com/admpub/nging


gin做web後端,伺服器監控之類的

cli和後端服務。其他的golang基本也可以做,但是不如選擇其他某些語言寫


推薦閱讀:
相關文章