iT邦幫忙

鐵人檔案

2024 iThome 鐵人賽
回列表
Software Development

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

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

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

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

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

[Day 11] 使用者驗證 (二)

今天繼續介紹 使用者驗證的機制 生物識別 硬體驗證 (Hardware Security Module) Single Sign On (SSO) Open...

2024-08-11 ‧ 由 erichung0404 分享
DAY 12

[Day 12] 支付服務 (一)

上篇講了透過 使用者驗證 來限制使用者使用我們的 API 另一個系統中常見的元件 (服務) 就是 支付服務 了, 由於近年來電子支付盛行, 有各式各樣的付款方式...

2024-08-12 ‧ 由 erichung0404 分享
DAY 13

[Day 13] 支付服務 (二)

上篇介紹了 網頁支付 和 行動支付, 今天繼續介紹剩下的支付方式 電子錢包 加密貨幣 第三方支付平台 電子錢包 電子錢包 嚴格來說, 不算是一種支付方式,...

2024-08-13 ‧ 由 erichung0404 分享
DAY 14

[Day 14] 常見系統元件小結

前面 13 天我們介紹了常見並適用大多數系統的元件, 從 資料保存, Database, API Service, Notification (包含 Email...

2024-08-14 ‧ 由 erichung0404 分享
DAY 15

[Day 15] Scaling 介紹

回想一下上篇提出的問題, 雖然感覺在真實世界中, 可能有數不清的問題會發生, 但我們可以將類似的問題分類, 比如以上篇的問題來說, 我們可以歸類成: Secur...

2024-08-15 ‧ 由 erichung0404 分享
DAY 16

[Day 16] 先別急著 Scaling

就像上篇說的一樣, 雖然 水平擴展 是一個強大的擴展方式, 但他也會造成系統維護很大的困難 所以我們要先確認 "真的需要水平擴展嗎"? 如果...

2024-08-16 ‧ 由 erichung0404 分享
DAY 17

[Day 17] 分散式系統介紹 (一)

如上篇所說, 這系列會著重在 水平擴展, 就需要用到一些分散式系統的知識由於分散式系統也是值得 6 學分的課, 這裡僅介紹基本原則, 有興趣深入請自行查閱(題外...

2024-08-17 ‧ 由 erichung0404 分享
DAY 18

[Day 18] 分散式系統介紹 (二)

接續上篇 CAP Theorem 的介紹 我們以 訂房系統 為例 訂房系統 假設我們設計了一個類似 Agoda, Booking.com 等的 訂房系統, 使用...

2024-08-18 ‧ 由 erichung0404 分享
DAY 19

[Day 19] 分散式系統介紹 (三)

今天繼續介紹 CAP Theorem Availability 即系統能夠持續提供服務的能力 如上篇所說, 強一致性 的設計可以確保跨節點資料的一致性, 但是等...

2024-08-19 ‧ 由 erichung0404 分享
DAY 20

[Day 20] 分散式系統介紹 (四)

CAP Theorem 和 Database 對 CAP Theorem 基本瞭解後, 我們知道實務上都是在 CP 系統和 AP 系統間選擇, 結合我們 Day...

2024-08-20 ‧ 由 erichung0404 分享