如何在保持架構的簡潔和不必要的複雜度間做出選擇?

elliot
Feb 6, 2024

--

前情提要,這是一題公司同仁提出的 QA問答,我希望透過分享我的觀點 以及 記錄的方式,能夠獲得更多的建議,或是在未來回顧時,能重新審視。

回覆: 架構,是為了透過分層,來隔離不同的關注點,以此應對不同需求的變化,使得這種變化可以獨立進行;
換句話說,在設計架構時應該是優先考慮外部的 force 。 外部的 force 可以是 業務需求、技術限制、性能、產品的迭代、人力的配置 等等,而這些外部的 force 對應到關注點可能不同,所以你著重的點也會不同。
例如 如果需求相對穩定,則可以更加關注簡潔性。如果需求不穩定,則需要更加關注彈性。

這是一個需要根據具體情況進行權衡的決策,就像之前提過的,架構是一種迭代的過程,是必須不斷的學習和調整的,而具體的建議是將你的架構與實際上碰到的外部 force 掛鉤,透過程式碼告訴你

--

--