iT邦幫忙

鐵人檔案

2024 iThome 鐵人賽
回列表
Software Development

30 天 系統設計 學習筆記:建立思考的 SOP 系列

Clean Architecture 的作者,Robert C. Martin 在前言中問道: 「軟體是由什麼構成的?」
相較於實體房屋,軟體的一切都很抽象,在軟體的世界,狗可以學鴨子叫、雞可以飛在天上、球可以永不落地 — 只要寫得夠糟XD

從語言、函式、物件、設計模式到系統設計,面對越來越抽象的問題,我們該從何處下手?

抽象的思考總是困難的,既然如此,我們是否能建立一個 SOP ,讓我們的思考不再發散,而是聚焦於 「當下重要的事情」,從高層開始思考,建構出整體的架構後,再逐步完善各個元件,讓抽象的思考有跡可循,幫助我們設計出穩健、可擴展的系統!

鐵人鍊成 | 共 30 篇文章 | 14 人訂閱 訂閱系列文 RSS系列文
DAY 1

[Day 1] 前言 - 關於本系列

前言 系統設計是一個非常龐大的主題, 由於是從高層角度開始, 設計時對於各種領域都需要有一定的了解才能夠設計出好的系統且系統設計也是 "基於選擇&qu...

2024-08-01 ‧ 由 erichung0404 分享
DAY 2

[Day 2] 介紹一些指標

(由於平台不支援 LaTex, 下面用日常寫法替代) 在開始之前, 我們需要先對一些指標 (或是數字) 有敏感度希望閱讀在本文之後, 我們都能夠回答下面的問題...

2024-08-02 ‧ 由 erichung0404 分享
DAY 3

[Day 3] 簡述資料保存

Note: 此文中的專有名詞皆會以英文表示, 避免中文詞不達意 幾乎所有的系統都需要 "保存資料", 但是應該怎麼保存呢? 單單講 &quo...

2024-08-03 ‧ 由 erichung0404 分享
DAY 4

[Day 4] 各種類型的 Database(一)

今天簡單比較一下 RDBMS, NoSQL Database, Object Storage 各自的使用情境明天會介紹幾個常見的 NoSQL Database...

2024-08-04 ‧ 由 erichung0404 分享
DAY 5

[Day 5] 各種類型的 Database(二)

前篇簡單介紹了 RDBMS, NoSQL Database, Object Storage 的特性與適用場景 NoSQL Database 還可以再根據儲存方式...

2024-08-05 ‧ 由 erichung0404 分享
DAY 6

[Day 6] API Service

有了 Database 後, 我們已經可以有效率的 增查改刪 (CRUD, Create, Read, Update, Delete)且 Database 都會...

2024-08-06 ‧ 由 erichung0404 分享
DAY 7

[Day 7] Notification

有了 Storage system, Database 和 API Service 後, 我們已經可以讓 客戶端 (Web, Mobile, 第三方服務, 其他...

2024-08-07 ‧ 由 erichung0404 分享
DAY 8

[Day 8] Email Service (一)

今天來講本系列要介紹的最後一個 基本元件 (服務): Email 上篇在介紹 Notification 的時候有簡單提到 Email 溝通的 Protocol:...

2024-08-08 ‧ 由 erichung0404 分享
DAY 9

[Day 9] Email Service (二)

前篇介紹了 Email 存取的 Protocols: SMTP, POP3, IMAP, 也簡單講了其運作方式和特點 功能面上已經沒問題, 可以收發信了~但是就...

2024-08-09 ‧ 由 erichung0404 分享
DAY 10

[Day 10] 使用者驗證 (一)

上篇原本想說是最後一個常見的 系統元件 了今天借朋友的筆電登入 ItHome 帳號才驚覺...忘記講 使用者驗證了! 於是想了想, 不如就把一些沒打算講的元件也...

2024-08-10 ‧ 由 erichung0404 分享