在現代開發環境中,熟練掌握各種工具的快捷鍵能顯著提升工作效率,本筆記整理了自己常用開發工具的基礎操作與進階快捷鍵,幫助更高效地進行開發工作。由於自己現在開發主要環境都是使用 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

Git 操作筆記

用 Git 來做版本管理時,偶爾會需要撤銷某些操作,但對於已經推上遠端 Github / Gitlab repository 的程式碼,並且該分支已經有多人協作的時候,如果要修正的話其實有蠻多需要注意的事情呢 ; 再來 Git 是有蠻多功能和一些命令的,有時不常用的話也會忘記或者錯估使用場景。在開始筆記之前先把一些名詞定義好,一般來說 Git 的操作會涉及到幾個區域

  • 硬碟區 disk : 檔案存放的一般資料夾,也會被稱為 workspace
  • 暫存區 staging : 保存 git add 紀錄的地方,也被稱為 index
  • 本地端 git local : 保存 git commit 紀錄的地方,也被稱為 repository
  • 遠端 git remote : git push 的倉儲,如 GithubGitlab 等等

而各個之間狀態變化的簡單關係如下圖所示 :

Continue reading

我們都知道 Python 是一個動態的語言,代表每一個 variable 是什麼型別是在 runtime 的時候決定的,雖然很靈活可是當 code 量級上去之後因爲類型不正確引發的錯誤也會逐漸增加。但 Python 也是可以做到型別要求的,就是使用 「 Type Hint 」 或者叫 「 Type Annotation 」,中文稱呼蠻多種的例如「型別標註」、「型別提示」等等。 若有寫 Type Hint 的話,比較現代的 IDE 都會有一些自動顯示或補全輔助 :

Python 的 Type Hint 是從3.5開始萌芽逐漸引入直到現在,故有一些發展的歷史脈絡和演變,有一些寫法也漸漸更替,故簡單介紹和分析一下。

Continue reading

Python 的 Coroutine 發展已經逐漸穩定成熟,已經成為了提升 Python 程式效能的優秀解決方案之一,在之前簡單介紹 Coroutine 和 await/async 時,我們在範例 code 中一直有用到一個 Python buildin 模組 asyncio,它提供了一套完整的工具和接口,用於建立非同步應用程式,其核心是 Event-Loop,會追蹤所有註冊的任務,並根據任務的狀態調度它們的執行。 故接著來了解 Event-Loop 和其工作的執行單位 Task 吧 !

Continue reading

之前有介紹了 Asynchronous ,而 Python 的 Coroutine 是實現 Asynchronous 的一種設計方式,且 Python 目前已經有非常直觀簡單的語法糖來定義 Asynchronous Code,使得程式寫起來就像普通的 「 Sequential Processing 順序執行 」任務那樣,但同時卻也可以對目標函數標註做「等待」的動作,並在「等待」期間可以先去做其他任務,達成非同步的功效,提高程式的並發性,而其重要的關鍵字就是 :

  • async : 用來宣告 function 能夠有異步的功能成為 Coroutine function
  • await : 用來標記 Coroutine 切換暫停和繼續的位置

而這兩個關鍵字是在 Python3.5 引入且在 Python3.7 成為保留關鍵字。它們在著名的 FastAPI 框架下的 path operation function 下也經常使用,接下來就簡單介紹一下吧。

Continue reading

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan