[IT] 軟體架構編年史 The Software Architecture Chronicles
前言:這系列文章為翻譯自作者 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 及其變形 ...