在軟體開發中,架構設計扮演著至關重要的角色。良好的架構不僅預先思考建構方向,還能減少開發過程中的困擾。相對地,不佳的架構不僅可能導致上線進度延遲,即使成功上線,也可能在未來的維護過程中引發功能調整的困難,並導致系統不穩定,進而影響使用者的滿意度。
每個專案都具有獨特的需求,時間、人力、現有架構以及各個目標的優先順序都各不相同。毫無疑問,世上並不存在一個絕對完美的架構,唯一的成功之道是找到最適合當前專案的解決方案。
本系列將深入探討軟體架構設計的常見考量要點,並在最後提供一份備忘表(Cheat Sheet),以協助各位在未來的架構設計中能夠快速而全面地進行思考。
在我十多年的軟體開發經驗中,曾使用過多種不同的軟體架構,也自行設計過多次軟體架構。每位軟體架構師在規劃架構時,都會試圖在可接受的時間內打造出最完善的設計藍圖。但...
在設計架構時,首先要清楚好的架構希望達成哪些目標。這些目標,是我們設計時希望達到的心中如果沒有時時記得這些目標,可能導致一開始就偏了方向。 好架構希望達到的目標...
好的架構會有那些屬性呢?這些屬性也許感覺和架構設計目標有點像,但是會需要考慮這些屬性的原因,其實是為了達到架構設計的目標。例如說,伸縮性與容錯性都是為了使此架構...
SLA其實也是軟體架構屬性的一環,不過在架構SLA中記載的通常是可以明確衡量的數字屬性。架構SLA包含:服務可用性、RTO、RPO、回應時間 服務可用性 描述...
雖說資訊安全再不管在哪一個層面都需要考慮,但是也有一些通用概念是不管在哪個地方都需要謹記的。其通用概念包含:深度防禦、零信任、IDS與IPS 防禦系統、防禦DD...
Authentication (認證) 與 Authorization (授權) 是兩個常被混淆的觀念。Authentication (認證)是確認你是誰,而A...
角色為基礎授權 描述 RBAC (Role Base Access Control,以角色為基礎授權) 取代傳統以屬性為基礎的權限控管架構(Attribute...
在架構設計時,第一個通常需要決定的就是應用程式的執行環境。除了傳統在伺服器直接安裝作業系統與應用程式外。現在還有很多其他的選擇,包含:VM、Docker、Kub...
思考的問題 我的應用程式要以甚麼樣的形式供使用者使用呢? 由於每個應用程式最終大多需要供使用者使用,因此需要思考要用甚麼的形式提供應用程式介面給終端使用者。常見...
思考的問題 有哪些經典系統架構設計模式可以參考? 由於前人已經針對常見議題有了許多經典的解決方案。因此在設計架構時,通常會希望參考經典的設計模式。常見的架構模式...