文章

Git 版本控制教學 - tag 版號技巧

程式的開發幾乎都需要所謂的「版號」或「版本號」,除了開發者之間可用以識別正在開發或維護的程式是否版本相同之外,也可以用版號來表示程式的開發狀態(例如 development, alpha, beta, production/stable 等等),或者是標示重大版本演進(例如從 1.0 演變為 2.0)。

不同的開發者或者開發團隊,也都會有不同的版號規則。

但目前常見的 2 種版號規則如下:

更詳細的說明可以參見:http://en.wikipedia.org/wiki/Software_versioning

上版號的工作,可以利用 Git 標籤的功能達成。

本文將介紹如何使用 Git 的標籤(tag)功能

Posted on  Oct 27, 2022  in  Git 版本控制  by  Amo Chen  ‐ 3 min read

Git 版本控制教學 - 分支模型(branching model)

在本文中,我們將依據 A successful Git branching model一文,解說並示範幾種開發情境可以應用的分支策略模型,不論是大型專案或小型應用程式,皆可套用於其中,並享受分支策略模型所帶來的效益。

在文章裡有關專案(project)的任何細節將不被談論,只談論分支(branching)的策略及發佈(release)的管理。

下圖即是整個分支策略的概觀:

後續小節將敘述相關分支策略的細節。

Posted on  Oct 27, 2022  in  Git 版本控制  by  Amo Chen  ‐ 6 min read

Git 版本控制教學 - 多人合作開發

經典的多人合作開發模式,是由 Git Server 提供中央的儲存庫(repository)儲存主線(master/main),由其他團隊成員複製(clone)到各自的開發環境,接著從主線分出分支(branch),在各自的環境內開發完成之後,最後將分支合併(merge)回主線。

軟體開發,就是如此重複循環作業。

Posted on  Oct 23, 2022  in  Git 版本控制  by  Amo Chen  ‐ 10 min read

Git 版本控制教學 - 單兵必懂指令

瞭解使用 Git 時所必備的指令,可以從單人開發及多人合作開發的情境著手。

單人開發的情境,可以了解如何利用 Git 從無到有建立具版本控制的開發流程;多人合作開發的情境能夠了解如何透過 Git 在不影響開發環境之下與其他團隊成員共同協作。

Posted on  Oct 18, 2022  in  Git 版本控制  by  Amo Chen  ‐ 6 min read

後端工程師面試考什麼 - Race Condition 篇

面試時,每當談到平行處理(parallel processing)、多執行緒(multithreading)、多行程(multi-processing)之後,通常都會衍生一些關於 race condition 的問題,也可稱為 race hazard(競爭危害)。

本文以實際 Python 範例創造 race condition, 以理解何為 race condition 以及如何解決 race condition 所造成的問題。

Posted on  Oct 17, 2022  in  後端面試準備  by  Amo Chen  ‐ 3 min read

從零開始的 React 教學 Part 6 - React.memo

從零開始的 React 教學 Part 5 - PureComponent 中提到 PureComponent 透過 shallow comparison 加速比較 props / state 的速度,為 React 應用(application)帶來更好的效能。

p.s. 雖然 PureComponent 提升比較速度,但也犧牲比較時的精準度,使用時一定要理解何謂 shallow comparison, 才不會帶來預期外的 bug

不過 PureComponent 需要以繼承 PureComponent 類別(class) 的方式實作 Class Component ,對於某些 Functional Components 來說,沒辦法這樣進行。

所幸, React 也有提供 React.memo API ,讓開發者能夠將 Functional Component 用 React.memo 包裝起來,達到類似 PureComponent 的作用。

本文將介紹 React.memo API 如何使用,以及使用上應注意的點。

Posted on  Oct 13, 2022  in  ReactJS 前端框架  by  Amo Chen  ‐ 3 min read