iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
Modern Web

Golang x Echo 30 天:零基礎GO , 後端入門系列 第 1

為什麼選擇 Go 與 Echo?

  • 分享至 

  • xImage
  •  

很高興能帶著大家一起踏上這趟 Go 語言與 Echo 框架的學習之旅。在開始之前,大家一定很好奇,為什麼我們要選擇 Go 語言,又為什麼是 Echo 這個框架呢?別擔心,今天這篇文章,我會用最生活化的比喻,帶你輕鬆搞懂這其中的奧妙!

Go 語言:就像是「快速又實在」的台灣小吃

想像一下,你在外頭走跳,肚子餓了,想找點東西吃。你會想要什麼?是那種料好實在、現點現做、吃起來又很順口,重點是「快」!這時候,Go 語言就像是台灣街頭巷尾那種「料好實在、快速上菜」的小吃攤。

速度快:Go 語言從設計之初,就非常注重效率。它的編譯速度快得嚇人,寫好的程式碼一下就跑起來了,不用在那邊癡癡地等。而且執行起來也非常有效率,就像點一碗乾麵,老闆手起刀落,很快就端上桌,讓你不用餓肚子。

實在又穩定:Go 的語法簡潔明瞭,不像有些語言那麼花俏,寫起來清清楚楚,不容易出錯。它內建的「併發 (Concurrency)」處理能力也非常強大,可以同時做好幾件事情,而且還很穩定,不會像有時候我們一次點太多道菜,廚房忙不過來就出錯。這對於我們要做高流量的網頁服務來說,可是超級重要!

工具齊全:Go 內建了很多好用的工具,就像是小吃攤老闆的基本配備,從程式碼格式化、測試到編譯,全部都有,讓你不用再東找西找。

總之,Go 語言就像是一個務實、可靠、又有效率的好幫手,很適合我們在開發快速變化的網路服務時,能有個堅實的後盾。

Echo 框架:就像是「方便又好用」的智慧型點餐系統,那 Echo 又是什麼呢?如果說 Go 語言是廚房裡的廚師,那 Echo 框架就像是我們幫忙顧客點餐的「智慧型點餐系統」。

想像一下,你去一家很厲害的速食店。

路由 (Routing) 就像是「點餐機」:你走到點餐機前面,螢幕上顯示著各種餐點的選項,像是「漢堡」、「薯條」、「飲料」。你點了什麼,點餐機就知道你要什麼,然後把你的需求傳送給櫃檯。在 Echo 裡面,這就是「路由」。我們定義了不同的網址(例如 /users、/products),當使用者請求這些網址時,Echo 就能知道要把這個請求送到哪裡去處理。

Handler 就像是「櫃檯人員」:你點完餐,櫃檯人員(Handler)就會接收你的訂單。他會確認你要的東西,跟你確認細節,然後把你的訂單傳給後面的廚房。在 Echo 裡面,Handler 就是負責處理具體請求的程式碼,像是從你的請求中取出資料、去資料庫查東西,最後把結果回傳給你。

Middleware 就像是「點餐前的檢查」:有時候,點餐前店家還會做一些額外的檢查。例如,在你點餐前,它可能會先問你要不要加套餐、加飲料,或者確認你有沒有會員卡。這些就是在「處理請求」之前,先做的一系列「預處理」。在 Echo 裡,這就是「Middleware」。像是記錄請求 log、檢查登入狀態、或是處理跨域請求(CORS),這些都可以透過 Middleware 來實現,讓你的主處理邏輯更乾淨。

優雅關閉 (Graceful Shutdown) 就像是「打烊前的準備」:每天打烊時,速食店不能說關就關,還是要先把手邊的訂單處理完、機器關好、清潔乾淨,才能安心休息。Echo 的「優雅關閉」就是這個意思,確保在伺服器停止前,所有的請求都處理完畢,不會造成資料遺失或使用者體驗中斷。

Echo 框架之所以吸引人,是因為它輕量、快速、功能強大,而且API 設計得非常直覺。它讓我們能專注在「處理使用者請求」這件事本身,而不用花太多時間去處理框架底層的複雜設定。就像是個好用的點餐系統,讓整個點餐流程(也就是 API 服務)變得順暢無比。

我們的專案目標與路線圖

在這 30 天的鐵人賽裡,我們不只會學會 Go 語言和 Echo 的基本操作,更會實際動手打造一個簡單但功能完整的專案。我們會從最基礎的安裝設定開始,一路學習如何處理路由、中介層、錯誤處理,甚至連接 PostgreSQL 資料庫,完成一個完整的 CRUD (建立、讀取、更新、刪除) 應用。

我們的目標是讓你:

理解 Go 語言的設計理念與優勢。

掌握 Echo 框架的核心功能與開發方式。

學會如何架設一個基本的 Web API 服務。

對後續開發更複雜的應用,打下堅實的基礎。

接下來的每一天,我們都會有明確的主題和實作目標。你會看到一個專案從無到有,慢慢成形。

準備好了嗎?


下一篇
安裝 Go 與工具:打造你的第一個開發環境
系列文
Golang x Echo 30 天:零基礎GO , 後端入門4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言