iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 1
4
Software Development

啥物碗Golang? 30天就Go系列 第 1

在2018年底,我們學一學Go

不知不覺今年是第三屆參加鐵人賽,成為Ruby工程師也進入第三年。第一年順利完賽,在過程中建立了許多Ruby的基礎知識,獲得不少好處;去年有幸得到評審青睞,得到佳作的成績。想當然爾,今年自然會有比過去更高的自我期許與壓力,這樣的壓力也間接造成題材選擇上的困難。無獨有偶,在鐵人賽開賽的前幾天,在臉書上也看到幾位過去參加過鐵人賽的朋友有類似的選題困擾,看來選擇題目跟命名類似,是工程師長久以來難以克服的困擾。

當初可能的主題有以下的選項:

  • 初探Julia:啟發於python的新語言
  • 初探golang:google發明的新後端語言,專門為server設計
  • 把去年的Elixir教學完成:去年鐵人賽結束後就一直停刊至今
  • Ruby面試中的難關:今年多次面試失敗的心得累積

每一個選擇自然都有些可看性,但也有各自的挑戰。最終結果如各位所見,今年趁鐵人賽的機會,在這三十天當中學一學Golang。標題是致敬我去年底有著明顯錯誤的文章「在2017年底,我們聊一聊Go (Golang)」,感謝網路上的善心人士、大大能夠給予指點,讓我在寫作的過程中認識錯誤,然後有機會成長更正。

關於go的基本介紹去年的文章就已經寫過,基於DRY原則(don't repeat yourself)就省略,有興趣的朋友可以參考去年的文章。在接下來的三十天當中,前半段介紹go語言本身,後半段不免俗的介紹網路框架。因為go先天對網路支援性很好的緣故,網站框架相當多(我去年文章的錯誤就請忘掉吧) ,所以我預計會針對主流的幾種做個比較,最後挑選一種作為推薦。

聊到網路框架,事實上因為go本來就是google設計來解決巨型網路伺服器瓶頸的後端語言,所以先天支援許多Web必備的函式庫例如HTTP、JSON、HTML templating,所以也有人認為go根本就不需要Web Framework(參見Why I Don’t Use Go Web Frameworks),畢竟使用外部資源不僅降低效能,也增加外部風險。

所以如果沒有意外(也就是有成功的話),也會分享在沒有使用框架的情況下建立網路專案。希望接下來三十天的旅程中每天都有足夠的收穫,對自己也對別人都有助益。


下一篇
Go環境安裝on Mac
系列文
啥物碗Golang? 30天就Go30

1 則留言

0
Ting Ting
iT邦新手 5 級 ‧ 2018-10-08 05:08:36

主題取的真好!!XD 期待這一個系列

我要留言

立即登入留言