為了要把系統架構解耦,改為異步分散式處理,有時會決定使用 Message Queue 的設計來達成目標,其指的是應用程序之間通過在 Message Service 而不是直接調用彼此通訊。對於其落地的產品,常見的開源工具有 KafkaRabbitMQ 等等或者雲端服務 GCP-Pub/SubAWS-SQS 等等。作為兩個子系統之間的通信中間層,會需要依靠協定保持有序且有效率的方式實現資訊交換,而目前廣泛使用的協定有 MQTTAMQP ,以下也會簡單介紹一下。

Continue reading

安裝完 Git 之後,可以使用 git config CLI 取得 Git 設定組態參數,git config 是一個記錄了 git 操作的所有基本檔案資料。 比方說 :

  • git init 創建時預設的 branch 名稱
  • 寫 git commit 的顯示模板
  • 當 push github 時的使用者資料

等等設定都可以在 git config 中調整修改。而在不同專案中,可能需要使用不同的 Git username 和 email, 例如個人專案中想使用「私人 Email」 ; 而在公司專案中則需要使用「公司 Email」,若每次切換專案時都要手動更改 Git 配置會十分麻煩。 這時 Git Include 可以根據資料夾自動套用對應的用戶設定,而無需每次手動調整。

Continue reading

Git Worktree 筆記

軟體開發有許多的已經定義的管理工作流程,例如說 Git Flow、Github Flow、GitLab Flow 等等,而這些共通點是都以 Branch 來區分不同階段的開發狀態 ; 在研發過程中,也經常需要在不同的 Branch 之間切換來處理不同的任務。這時 git worktree 就很大程度派上了用場,它可以讓同一個 Git Repository 同時擁有多個工作目錄且每個目錄綁定不同 Branch,各個工作樹之間是互相獨立的。

這樣就不用在「 code 寫到一半 」時,遇到臨時需要切換到不同的分支作業,卻因為「 正在更動的檔案 」與「 目標分支上的檔案」有衝突而要另外處理,故 git worktree 很適合拿來處理緊急 hotfix 或者另外的 code-review。

Continue reading

在現代開發環境中,熟練掌握各種工具的快捷鍵能顯著提升工作效率,本筆記整理了自己常用開發工具的基礎操作與進階快捷鍵,幫助更高效地進行開發工作。由於自己現在開發主要環境都是使用 mac os,所以快捷鍵會以 mac 的鍵盤配置為主,筆記會列出的重點工具為 :

  • MacOS Terminal
  • Visual Studio Code (VSCode)
  • Vim

然後可能也會補充一些 Windows PowerShellIntelliJ IDEA。在日常開發中可有意識的多使用快捷鍵來加深記憶,若遺忘時這裡可以快速查看筆記,鞏固快捷鍵的知識。

Continue reading

GitHub Flow

雖然使用了 Git 作為版本管理工具,但每個人對於分支的認知可能不同,故造成每次 commit 到不同分支之後,要合併要回哪個分支可能會有歧義,這時就可參考一些已存在的 Workflow 規範,只要團隊遵守這樣的 branch 的 commit 和 merge 規則,就可以有一致性。

每個 Workflow 規範都不太一樣,常見有: Git Flow、GitHub Flow、GitLab flow ,主要都是希望就算 Project 越來越大協作人員越來越多,也能有效管理 Git Branch,那這邊會以 GitHub Flow 為主要說明,但也會筆記分析了解其他不同策略的優缺點。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan