在軟體開發中,架構設計扮演著至關重要的角色。良好的架構不僅預先思考建構方向,還能減少開發過程中的困擾。相對地,不佳的架構不僅可能導致上線進度延遲,即使成功上線,也可能在未來的維護過程中引發功能調整的困難,並導致系統不穩定,進而影響使用者的滿意度。
每個專案都具有獨特的需求,時間、人力、現有架構以及各個目標的優先順序都各不相同。毫無疑問,世上並不存在一個絕對完美的架構,唯一的成功之道是找到最適合當前專案的解決方案。
本系列將深入探討軟體架構設計的常見考量要點,並在最後提供一份備忘表(Cheat Sheet),以協助各位在未來的架構設計中能夠快速而全面地進行思考。
思考的問題 計算邏輯到底應該放哪裡? 當瞭解分層架構後,就會思考這麼多可以放置計算邏輯的位置,我應該放在哪裡? 常見程式分層的位置包含:前端、後端、Batch、...
思考的問題 系統在運行的過程中時時都在產生Log 應該要保留那些Log? Log需要保留那些資訊? 如何分析Log? 如何針對Log進行監控並自動進行後續處理...
思考的問題 設計物件導向程式時,有哪些需要注意的重要原則呢? 在物件導向的設計中,有許多經典的設計原則。其中最出名的就是SOLID原則。其中分別為 S: 單一...
思考的問題 在建立物件時,有各種特殊的需求,有甚麼經典設計模式可以參考? 在設計模式中,定義了許多關於建立物件的經典設計模式,在此處並不會詳細說明如何實作這些設...
思考的問題 如何通過組合多的不同的類別與物件,完成複雜的需求? 當有複雜的需求時,有甚麼方法可以組合這些類別呢?常見的方式包含:外觀模式、轉接器模式、裝飾者模式...
想要解決的問題 如何將可能變動的邏輯抽出,讓該邏輯視需求動態抽換? 架構設計中,有許多邏輯都會可能會變動。需要事先辨認那些是可能變動的部分。並抽出這些變動的邏輯...
思考的問題 網頁應用程式有哪些需要考慮的重要安全性策略呢? 網頁應用程式大多運行於網際網路,因此常常受到外部惡意人士的攻擊。為保護網頁應用程式,常見的安全策略包...
思考的問題 需要那些設備以連接到網路? 網路是現今架構中不可或缺的元素,而架設網路需要那些基本的設備呢?常見的元素包含:Hub、Switch、Router、Mo...
思考的問題 如何規劃網站後端伺服器的連接方式? 後端伺服器有多種不同的類型,例如 Web APP、快取伺服器、資料庫等伺服器所在位置也有多種可能性,例如雲端、地...
思考的問題 如何保護網路安全? 在這個網際網路時代,絕大多數的攻擊手法都透過網路進行。因此,網路安全通常被視為保障資訊安全的首要要務。保護網路安全的常見作法包含...