iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
2
Software Development

Go Phishing!30 天用 Go 實作 Reverse Proxy 之釣魚大作戰系列 第 3

Day03-Why Go

Why Go

沒有為什麼,因為筆者我很喜歡 Go,而且地鼠很可愛

Go 一開始是 Google 內部的專案,於 2007 年開始設計,目標是成為網際網路時代的 C 語言,經過兩年開發之後在 2009 年 11 月推出成為開源專案,現在很穩定每半年發布一個 minor 版本,在 2016 年還被軟體評價公司 TIOBE 選為「2016 年最佳語言」

語言特性、定位

  • 簡潔

    在 Go 裡面沒有物件導向:包括類別(class)、繼承等等,在宣告變數的時候也有類型推斷的功能,語法很乾淨

  • 語法層面支援併發(Concurrency)、多執行緒(multi-Thread)

    Go 從語言層面就支援併發,不像很多語言需要使用另外的 lib,或是像 JS 有併發但因為 Single Thread 的關係沒辦法並行(parallel)

  • 內建工具

    Go 有超多內建工具像是 formatter、esting package 可以跑單元測試,還有 race detector 幫你找出潛在的 race condition 等等

  • 強制 Coding style

    Google 內部有成千上萬的工程師,每個人風格不同,所以 Go 強制規定了一套程式碼風格,合作時再也不用為了 space or tab、大括號放哪裡吵架

  • 跨平台

    Go 支援所有常見的平台,而且甚至可以跨平台編譯(Cross Compile),在 Mac 上開發完可以編譯一個 linux 版本到機器上部署

哪些專案、公司在用 Go

golangtw/jobs

這麼多公司、大專案在用 Go,而且這薪資這麼有競爭力,就算沒興趣為了找工作也該學一下了吧XD,明天會安裝 Go 的開發環境,然後就開始講語法囉


上一篇
Day02-何謂網路釣魚,Reverse Proxy 又是什麼
下一篇
Day04-架設開發環境
系列文
Go Phishing!30 天用 Go 實作 Reverse Proxy 之釣魚大作戰30

尚未有邦友留言

立即登入留言