2017 跳脫待了 9 年的 .net 開發環境,一方面是想要挑戰自己能接觸到更多的系統架構。另一方面也是受夠了在 mac 裡面安裝 parallels,去處理開發環境限定 windows 的問題。

結果這幾年微軟新 CEO 就做了不少改變,更開放也更接觸 open source,開發跟部屬環境對非 windows 的支援也更全面。我個人對於微軟這次的改變真的是非常欣賞,終於處理了 windows / office 派系問題走向開放。事實也證明結果並沒有讓微軟失去領先地位,而是藉著開發社群 & 雲端創造更多收益。

為什麼選擇 golang

以往都是 C# 的經驗為主,自然在挑選的時候以強型別/編譯式語言為主。大部分數據分析也顯示 go 在執行效能上比 java / C# 更高一個層級。

環境部署原來可以這麼容易

可以不用安裝 .net framework,專案編譯完打包居然丟上去 server 就可以跑。而且只要一個檔案。相對應也節省下了 devops 設定 CI/CD 的繁瑣程度,尤其是當編譯出來檔案需要發佈到多台機器運行環境上的時候。

在 docker 火熱的今天,假設開發後專案都打包成 docker 才做發佈的動作,其實就一樣享有 go 發佈的好處,可以執行於多種運行環境,而且只需要一個二進制檔案就可以上傳到多組環境。

建置速度超快

用 go 開發的專案好多

可以在 github 看到各種套件 / 工具都是用熟悉的語言開發,這真的是一種很讓人開心的事,雖然 90% 的情況下都不會點進去看。但是好像自己也看得懂的那種感覺,真的要體會才知道。

最難以適應的部分

找不到相對應的套件

一開始開發還是使用 web api 的模式,這時候找習慣的對應套件並不是那麼容易,也沒有一套真正主流的 framework。當看到套件控管的部分,dep / vgo / go vendor 還有一堆,各家大神也都擁護不同的工具,真的會有一種無所適從的感覺。