使用 gomock 寫測試
gomock 原本是 golang 官方維護的套件,不過因為有一段時間沒有在維護了,在 2023 年 6 月時就改由 uber 團隊接手維護了。 停止維護: https://github.com/golang/mock 目前有在維護: https://github.com/uber-go/mock 安裝工具 安裝 mockgen 工具,gomock 套件 ...
gomock 原本是 golang 官方維護的套件,不過因為有一段時間沒有在維護了,在 2023 年 6 月時就改由 uber 團隊接手維護了。 停止維護: https://github.com/golang/mock 目前有在維護: https://github.com/uber-go/mock 安裝工具 安裝 mockgen 工具,gomock 套件 ...
Github Copilot 是 Github 推出的 AI 程式開發工具,只要你先設計好程式要怎麼運作,剩下的 Copilot 就會幫你完成了。 要使用 Copilot 首先要在 Github 訂閱 Copilot,再來要在 IDE 裝好套件就可以開始使用了。 ...
在 團隊的估點(Story Point)經歷 | Nyo’s Study Book 這篇分享過一些估點的經驗,今天回頭過來介紹什麼是估點 軟體開發往往會遇到評估開發時程的難題,直覺上多數人都會以「工時」進行估計。但現實是開發過程總是會遇到各式各樣的問題,讓估計跟現實有很大的差距。 ...
平常工作使用 Linux 或是 Mac 都有很完善的套件管理工具可以使用。 自己的 Windows 桌機雖然是休閒用途,但是前前後後也裝了不少的程式,照顧上有點小麻煩。 所以在 Windows 上也要找找適合的工具使用。 ...
Cobra 是一個很方便 cli 函式庫,有許多的 project 都是用他來寫 cli 應用程式,我自己也是很常使用的。 不同於 kubectl, hugo 這類的專案,自己寫的 cli 應用程式,常常會混著主要的應用場景指令、工具型指令或是更臨時的暫時性工具指令。當指令一多時,不免會覺得檔案過多過亂。 ...
準備工作 在開始部署前,需要準備好以下環境: 建立 Kubernetes cluster 安裝 kubectl,並設定好可以操作 Kubernetes cluster 安裝 Helm 本次測試版本 kubernetes: v1.27.3-gke.100 kubectl: v1.27.3 helm: v3.12.2 設定 values.yml 在使用 helm 部署之前需要先建立 values.yml 設定你的 Runner 環境。Gitlab Runner 預設的 values.yml 就放在 chart repository ...
AppImage 是目前 Linux 上很常見的應用程式格式,不需要安裝,可以相容於各大 Linux 發行版。 下載 AppImage 檔後,要執行它的方法很簡單 (以下用 Hepta-0.369.1.AppImage) 先讓檔案可以執行 1 $ chmod +x Hepta-0.369.1.AppImage 接著就可以啟動它 ...
在設定 Git diff 強化工具: delta 時,發現我的 terminal 顯示的顏色不正常。 我的 terminal 環境用 Alacritty + Tmux,網路上馬上找到跟我遇到一樣問題的同學: 24 bit/True color not working in tmux 2.3 · Issue #696 · tmux/tmux 我的環境如下: ...
Colima (https://github.com/abiosoft/colima) 是一個目標成為在 MacOS 上最簡單的 container 環境工具,可以視為 Docker Desktop 的替代方案。 基於 Lima 這個 VM 上 本身只有簡單的 CLI,沒有 GUI 支援 Docker 跟 Containerd 還有 Kubernetes 移除 Docker Desktop 如果你原本有安裝 Docker Desktop 可以移除了,看是要把 App 拉進垃圾筒或是 brew uninstall。 ...
go 的測試工具 go test 有 benchmark 工具可以使用。 不用自己寫工具就可以很輕鬆的測試程式碼效能。 開始寫 benchmark 測試 建立 _test.go 結尾的檔案 function 要以 Benchmark 開頭 使用 b *testing.B 參數 將要測試的程式放到 b.N 的 for 迴圈內 範例如下: ...
平常都習慣使用圖形介面設定 wifi,臨時要用 command line 完全不知道要從哪邊下手。以下是我找到的方法。 查看 Wifi 訊號強度 執行以下指令查看 /proc/net/wireless 檔案就可以知道目前 wifi 的狀況 ...
上次的 blog 大改造應該是在 用 Hugo 發佈部落格 這時做的,也經過了快 5 年了。 原本我的 nyorc.github.io 發佈方式是另開了一個 repository 存放 markdown,再把 hugo 產生的靜態檔案指定到 nyorc.github.io 這個 repository。Github Pages 設定是選擇從 nyorc.github.io 這個repository 的 master 分支部署。步驟其實不多,但還不是完全的自動發佈。 ...
Debian 在 2023-06-10 釋出 12 代號 bookworm。 我手邊的 server 安裝的是 Debian 11,剛好就找個時間升級一下,順便寫一下筆記 升級前準備 先將系統升級到 11 (bullseye) 的最新版,並移除不需要的套件 1 2 $ sudo apt update && sudo apt upgrade -y $ sudo apt --purge autoremove 請記得評估要做哪些備份 ...
最近出現一篇「選擇無聊的技術」中文版文章,我覺得是一篇很棒的文章。 選擇無聊的技術 - Northern Wind 選擇無聊的技術 身為軟體工程師的每次接到任務都要選擇用什麼技術來解決問題。 我自己也做過無數次的選擇,當然也跟作者一樣,追過閃亮的新技術。好在有許多前輩跟頭腦比我清楚的同事幫我踩剎車,沒有讓我做太多糟糕的選擇。 ...
這裡有一段程式,執行時加上 -v 的參數就可以秀出程式的版號 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package main import ( "flag" "fmt" ) const Version = "v0.1.0" func main() { var flagVersion bool flag.BoolVar(&flagVersion, "v", false, "version") flag.Parse() switch { case flagVersion: fmt.Println("Version:", Version) default: fmt.Println("Hello world") } } 編譯程式 ...
歷史 2020 年 6 月 git 發佈了一篇聲明,說明了 git 預設的分支 master 是有具有歧視性的單字,接下來會加入一些機制允許使用者設定預設分支名稱,。之後 git 在 2.28.0 加入了 init.defaultBranch 選項,許多的公司跟社群都陸繼加入這項行動。像是 Github 與 Gitlab,都將系統的預設分支名稱從 master 改成 main ...
git diff 的視覺效果不是那麼的友善 網路上可以找到許多 git diff 的強化工具 最近看到 delta 這個工具,似乎可以看得更清楚,馬上把之前用的 diff so fancy 換掉。 以下留幾個截圖比對一下差別 ...
Google Online Security Blog: Announcing OSV-Scanner: Vulnerability Scanner for Open Source Google 在 2022 年 12 月發佈 OSV-Scanner 這個漏洞掃描工具,可以檢查你的專案所使用的依賴開源套件是否有漏洞。支援 npm, go mod, composer, yarn 等相當多的套件管理工具。 ...
Github Actions 是 Github 推出的 CI/CD 工具,釋出有一陣子了,平常工作上不常用 Github,所以一直沒有機會試試看。 最近回頭更新放在 Github 上的 Golang 程式,就順手的放上 Github Actions 幫忙跑一下測試。 ...
目前的筆記軟體是 Joplin。 Joplin 是一套開源的筆記軟體,會選擇使用他的主要是因為: 使用 Markdown 語法 筆記可以加密 Web Clipper 支援多種作業系統 最近有調整一些 Joplin 的設定,這邊就做一些記錄。 ...