【Go】學習資源紀錄:Ultimate Go Programming(Ardan Labs)

更新於 2024/11/24閱讀時間約 4 分鐘

前言

原本的計畫是寫系列文,一天嗑一點,雖然完整影片約17小時,分批消化卻花了我近10天,現在回去看我第一天寫的草稿,編輯時間已經是半年前...。

如果目標是快速學完下列項目,在Youtube上多的是1~2小時以內的教學,看完後直接開刷Leetcode熟悉語法會更有效率。

  • variable
  • type
  • condition
  • loop
  • function
  • pointer
  • struct
  • interface
  • channel
  • goroutine


如果目標是理解背後底層的設計,更多進階的應用,那麼這堂課可以說是含金量很高的課程。部分涉及到計算機概論、作業系統、硬體相關的知識,大多時候講師會改以圖示畫出應用場景的模型,尤其是 buffered channel應用的各式pattern,因此不建議初學就上這門課。


以下節錄幾個比較有收穫的章節:


Sememtic(語意)

  • value sementic
  • pointer sementic


對比其他語言而言,這章節在探討的是call by reference / value,更具體一點的細節是變數產生在stack / heap上。

在go語言中有自己的GC(Garbage Collection)機制,因此不需要像C/C++顧慮很多細節。其中的escape analysis也會在進行編譯時先分析程式碼,在決定優化調整後,實際要把功能建立在stack上還是heap。


小節的最後也提供了一些基本的原則:

1. 在創建的時候,使用value sementic
2. 在使用函式進行呼叫時,使用pointer sementic作為參數傳遞或回傳值


測試工具

go內建測試工具,不需要另外倚賴第三方套件,其中比較感興趣的是執行benchmark以及pprof。


如何知道程式碼優化了多少? --> 跑測試
如何知道哪個解法比較好? --> 跑測試


課程中使用了fmt.Sprint()fmt.Sprintf()進行benchmark測試,猜猜哪個性能好?

大多數人都猜fmt.Sprint()是比較佳的解法,畢竟少做了格式化輸出,而實際出來的結果數據卻恰好相反。


效能分析

另外一個印象深刻的工具是pprof,畢竟以往工作上有需要做效能監控跟優化的議題,當時使用Dynatrace紀錄上的項目,逐層request去檢視執行時間跟資源使用率。

pprof做的事情類似Dynatrace,可以把時間內執行的該項程式列出資源使用的剖面分析、hot spot集中在哪部分、程式呼叫的階層等資訊呈現出來。


小結

查了一下發現,Ardan Labs也是官網推薦的學習教材之一,主要還是以培訓為主,課程內容也比較深入。如果你是比較希望有大量程式碼範例可以跟著動手實做的人,那麼此課程或許不是那麼對味。


以初學者而言,Udemy上的Go: The Complete Developer's Guide倒是比較好上手,想當時練習goroutine跟channel發請求給各個網站,隔天馬上收到Linkedin寄來的通知信件...


偵測到疑似異常的登入行為,我們將對您的帳號進行封鎖...

參考資源

  • Ardan Labs
  • Go: The Complete Developer's Guide - Stephen Grider (初學用)


avatar-img
13會員
64內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Err500 的其他內容
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
學習Spring Boot是Java工程師必備技能,文章分享瞭如何自學並快速上手Spring Boot開發,包括架構、開發工具、專案建立以及實作過程。
在過年期間,利用集中時間跟完Mosh Hamedani的Next.js課程,掌握了前端至後端的技術應用。本文分享了學習過程中的收穫與成果,以及對於未來應用的展望。
巨集(Macro)是什麼? 第一次聽到這個詞是出現在excel,按下錄製鍵後,畫面上進行的操作會被記錄下來,可以重複回放執行前述操作。之後接觸C語言的#define,巨集又跟函數類似...
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
學習Spring Boot是Java工程師必備技能,文章分享瞭如何自學並快速上手Spring Boot開發,包括架構、開發工具、專案建立以及實作過程。
在過年期間,利用集中時間跟完Mosh Hamedani的Next.js課程,掌握了前端至後端的技術應用。本文分享了學習過程中的收穫與成果,以及對於未來應用的展望。
巨集(Macro)是什麼? 第一次聽到這個詞是出現在excel,按下錄製鍵後,畫面上進行的操作會被記錄下來,可以重複回放執行前述操作。之後接觸C語言的#define,巨集又跟函數類似...
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
這一波寒流及冷氣團有冷到大家嗎?搭配著冬日假期的活動,十分的有感覺。別忘了在冬日假期的第一階段期間,還有一個為期兩天的冬日仙境和詭角鹿的團體戰,這裡Hugo就帶大家來復習一下。
Thumbnail
👨‍💻簡介 今天來介紹一個自己開發後端蠻常用的一個 package,promptui,拿來做menu真的很方便,promptui有兩個主要的輸入模式: Prompt:跳出單行使用者輸入。 Select:提供一個選項列表供使用者選擇。
Thumbnail
Invisalign 隱適美GO是什麼? Invisalign GO 中文為『隱適美-易』,簡單解釋可以說明為隱適美簡易版。顧名思義就是做局部的矯正及簡易的齒列調整。Invisalign 這次所推出的隱適美GO是特別針對前牙輕微矯正,不需調整咬合、不需拔牙的人士設計
Thumbnail
2004 • FLOW •《GO!!!》━━ 語言文化,歌詞中的「修羅の道(しゅらのみち)」,在日本,修羅場常用來形容容易產生紛爭的感情糾葛緣由,後來又用來形容漫畫家在死限截止前交稿手忙腳亂的情形。
Thumbnail
當一顆種子天天被陽光露水,折磨在潮濕悶熱的土壤裡時,你我不會感到惋惜,因為曉得這是刺激生命更燦爛的關鍵,但倘若你我就是那顆種子,就是正被困住、被壓迫在毫無自由的階段裡,還能相信自己的未來很燦爛嗎? 圖片摘自臉書「家政夫的悄悄話」。 最近因著寒假的緣故,家政夫有機會坐在書桌前,一邊調整三条老師的錄音內
Thumbnail
陳聖元。2010。雅書堂出版。 推薦給:好奇芬蘭高中生都怎麼學習與生活的人 在聯合報家庭版看到的推薦書,而且是一個台灣高中生寫的,然後他又回來台灣了,所以讓人真的很想聽聽他第一眼、第一手的消息!而且多年後有一天竟然在飛碟早餐廣播時段又聽到他的訪問!原來後來他念了土耳其語文學系,還出了一本《呢喃中的
Thumbnail
一直以來不敢踏入吃素的行列,雖然知道吃素對世界好處多多,但總覺得身體會處在長期慢性缺乏蛋白質的狀態。但事實上,我才執行兩週,好處之明顯,讓我非常興奮,不得不打在這裡跟大家分享。
Thumbnail
完整標題:go on 與「繼往走向」或「繼往開來」及「繼」、「續」、「繼續」、「接續」、「启開」、「正昂」、「發生」等的轉換密碼
Thumbnail
完整標題:go 與「之」、「至」、「至于」、「到」、「到于」、「前往」、「進往」、「步往」、「走」、「走于」、「走往」、「行」、「行于」、「行往」、「行走」、「去」、「過」、「過去」、「過于」、「步」、「步于」、「步往」、「步行」、「機遇」、「行旺」等的轉換密碼
Thumbnail
完整標題:go around 與「逛」、「觀覽」、「交往」、「相處」、「走訪」、「轉繞圓動」等的轉換密碼及「天狼星」之謎
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
這一波寒流及冷氣團有冷到大家嗎?搭配著冬日假期的活動,十分的有感覺。別忘了在冬日假期的第一階段期間,還有一個為期兩天的冬日仙境和詭角鹿的團體戰,這裡Hugo就帶大家來復習一下。
Thumbnail
👨‍💻簡介 今天來介紹一個自己開發後端蠻常用的一個 package,promptui,拿來做menu真的很方便,promptui有兩個主要的輸入模式: Prompt:跳出單行使用者輸入。 Select:提供一個選項列表供使用者選擇。
Thumbnail
Invisalign 隱適美GO是什麼? Invisalign GO 中文為『隱適美-易』,簡單解釋可以說明為隱適美簡易版。顧名思義就是做局部的矯正及簡易的齒列調整。Invisalign 這次所推出的隱適美GO是特別針對前牙輕微矯正,不需調整咬合、不需拔牙的人士設計
Thumbnail
2004 • FLOW •《GO!!!》━━ 語言文化,歌詞中的「修羅の道(しゅらのみち)」,在日本,修羅場常用來形容容易產生紛爭的感情糾葛緣由,後來又用來形容漫畫家在死限截止前交稿手忙腳亂的情形。
Thumbnail
當一顆種子天天被陽光露水,折磨在潮濕悶熱的土壤裡時,你我不會感到惋惜,因為曉得這是刺激生命更燦爛的關鍵,但倘若你我就是那顆種子,就是正被困住、被壓迫在毫無自由的階段裡,還能相信自己的未來很燦爛嗎? 圖片摘自臉書「家政夫的悄悄話」。 最近因著寒假的緣故,家政夫有機會坐在書桌前,一邊調整三条老師的錄音內
Thumbnail
陳聖元。2010。雅書堂出版。 推薦給:好奇芬蘭高中生都怎麼學習與生活的人 在聯合報家庭版看到的推薦書,而且是一個台灣高中生寫的,然後他又回來台灣了,所以讓人真的很想聽聽他第一眼、第一手的消息!而且多年後有一天竟然在飛碟早餐廣播時段又聽到他的訪問!原來後來他念了土耳其語文學系,還出了一本《呢喃中的
Thumbnail
一直以來不敢踏入吃素的行列,雖然知道吃素對世界好處多多,但總覺得身體會處在長期慢性缺乏蛋白質的狀態。但事實上,我才執行兩週,好處之明顯,讓我非常興奮,不得不打在這裡跟大家分享。
Thumbnail
完整標題:go on 與「繼往走向」或「繼往開來」及「繼」、「續」、「繼續」、「接續」、「启開」、「正昂」、「發生」等的轉換密碼
Thumbnail
完整標題:go 與「之」、「至」、「至于」、「到」、「到于」、「前往」、「進往」、「步往」、「走」、「走于」、「走往」、「行」、「行于」、「行往」、「行走」、「去」、「過」、「過去」、「過于」、「步」、「步于」、「步往」、「步行」、「機遇」、「行旺」等的轉換密碼
Thumbnail
完整標題:go around 與「逛」、「觀覽」、「交往」、「相處」、「走訪」、「轉繞圓動」等的轉換密碼及「天狼星」之謎