Skip to content
Rain Hu's Workspace
Go back

[IT] 軟體架構編年史 The Software Architecture Chronicles

hgraca

前言:這系列文章為翻譯自作者 hgraca

這篇文章是關於軟體架構系列文章的第一篇。在這些文章中,我將分享我所學習到的軟體架構知識,我如何看待它,以及我如何運用這些知識。

我這一系列的文章稱為「軟體架構編年史」,並非因為我自認為是一位偉大的作家,而是因為我覺得這個名字有點俗氣,又帶點趣味。

在這篇首篇文章中,我將會談論我為何要撰寫這一系列的文章,以及接下來將會有什麼內容。

認識歷史的重要性

Those who fail to learn History are doomed to repeat it. - George Santayana, The Life of Reason, 1905
未能學習歷史的人注定要重蹈覆轍。 - 喬治‧桑塔亞納理性的生活》,1905

我認為從歷史中學習是非常重要的,它能教導我們事情。在個人層面上,我們終究需要(也希望)能從錯誤中學習。從國家的角度來看,歷史幫助塑造我們的文化、創造群體的概念,因此有了「台灣人」的觀念,一種國家認同。同時,歷史也幫助我們從祖先的錯誤中學習,比如信仰那些有著怪異思想的人,如二戰…

對程式開發者而言,歷史有助於我們仰靠前人的經驗上,少走許多錯的道路,並讓我們「站在巨人的肩膀上」達到更高的境界!

在我成為更好的開發者路上,我閱讀了很多文章,觀看了許多演講,我盡我所能的站在巨人的肩膀上。

有一件事情使我感到困惑,那就是許多意見是基於意見之上的意見…這就像是以訛傳訛,我們最終得到是對於一篇論文、文章或書籍真正內容的扭曲理解。

因此,我開始在網路上搜尋原始的論文、文章和書籍,這些都是我認為對我的工作最重要的概念,並自己對它們進行思考。

這些文章是這種推理的結果,因為我試圖理解這些概念是如何產生的,以某種程度上的時間順序來看。

撰寫這些文章迫使我大量閱讀和思考所有議題,並幫助我理解當代在軟體開發中使用的技術。我希望這些文章能對更多開發者有所幫助。

然而,如果你讀到一些你不理解或是不認同的內容,請告訴我,我非常願意討論這些議題,並從討論中學習,也願意修正我錯誤的觀點。

文章列表

1. 軟體架構前提 (Software Architecture Premises)

2. 程式語言的演進 (Programming Languages Evolution)

3. 架構風格 / 架構模式 / 設計模式 (Architectural Styles vs. Architectural Patterns vs. Design Patterns)

4. 單體架構 (Monolithic Architecture)

5. 分層架構 (Layered Architecture)

6. MVC 及其變形

7. EBI 架構 (EBI Architecture)

8. 包裝與命名空間 (Packaging & namespacing)

9. 領域驅動設計 (Domain-Driven Design)

10. 埠與適配器架構, aka 六邊形架構 (Ports & Adapter Architecture aka Hexagonal Architecture)

11. 洋蔥架構 (Onion Architecture)

12. 乾淨架構 (Clean Architecture)

13. 事件驅動架構 (Event-Driven Architectrue)

14. 從CQS到CQRS

15. 面向服務的架構 (Service Oriented Architecture, SOA)

16. 明確的架構 #01: DDD, 六角, 洋蔥, 乾淨, CQRS, … 我如何將它們全部組合在一起

  1. 明確的架構 #02: 不僅僅是同心層次

  2. 明確的架構 #03: 在程式碼中反映架構和領域

  3. 明確的架構 #04: 記錄架構

  4. 發展項目: 從 MVP 到 P

  5. 4+1 架構視圖模型

  6. 架構品質

時間軸

這是我在閱讀了所有這些主題的文章和書籍後,排出的軟體開發演進時間軸。


Share this post on:

Previous
[IT] 軟體架構前提 The Software Architecture Premises
Next
[ML] Start Tensorflow Environment with Conda