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

揚-avatar-img
發佈於Err500 個房間
更新於 發佈於 閱讀時間約 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會員
65內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言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
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
其實我也只是看完 ICT Mentorship 2016、2017 影片和一部份的 2023 , 也去付費上了兩個 ICT 課程,前前後後到現在大概七個月了。 而且我做筆記的量是認真的大, 保守一點,一天平均 4-6 小時以上會花時間學習和覆盤, 要解構知識、理解脈絡、覆盤推演、實盤
Thumbnail
7/4到8/4,總共寫作30篇,休息兩天,字數約3.6萬字。 這一個月,時常鼓勵自己,就是一天一天寫,不敢去想要寫滿30天,怕壓力太大更難繼續。暫停的那兩天,儘管覺得有些可惜,但是有彈性,更能感受到對自己發揮人道精神的包容力😂
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
我常學習得到上面的課程。 得到的每門課程, 一講原則上是10分鐘錄音的長度。 而這10分鐘錄音的逐字稿, 我會將其切割成6-8塊資訊塊, 每一個資訊塊大約是3-4個段落, 以完整討論一個觀點的長度為主。 我會根據每個資訊塊的內容, 打上關鍵字的標籤,
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
其實我也只是看完 ICT Mentorship 2016、2017 影片和一部份的 2023 , 也去付費上了兩個 ICT 課程,前前後後到現在大概七個月了。 而且我做筆記的量是認真的大, 保守一點,一天平均 4-6 小時以上會花時間學習和覆盤, 要解構知識、理解脈絡、覆盤推演、實盤
Thumbnail
7/4到8/4,總共寫作30篇,休息兩天,字數約3.6萬字。 這一個月,時常鼓勵自己,就是一天一天寫,不敢去想要寫滿30天,怕壓力太大更難繼續。暫停的那兩天,儘管覺得有些可惜,但是有彈性,更能感受到對自己發揮人道精神的包容力😂
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
我常學習得到上面的課程。 得到的每門課程, 一講原則上是10分鐘錄音的長度。 而這10分鐘錄音的逐字稿, 我會將其切割成6-8塊資訊塊, 每一個資訊塊大約是3-4個段落, 以完整討論一個觀點的長度為主。 我會根據每個資訊塊的內容, 打上關鍵字的標籤,
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力