微服務似乎可以改善一點這方面的問題
系統開發有點像是公司還很小的時侯
當你公司還很小的時侯
某個職員要當客服 又要兼倉管 又要兼銷售
所以這個職員可以拿到各種不同的數據
當公司開始變大以後
就會有財務部 客服部 商品部
每個部門的數據再也不像小公司時可以任意取得
每個部門內部各自處理管理
其他部門不用管另一個部門也不用知道他們怎麼管理
部門之間的溝通要透過窗口或部長
當系統一開始小的時候
就像小公司校長兼撞鐘
一包系統可以同時去存取會員資料與商品資料與物流資料
當系統變大以後
其實也應該像小公司變大公司那樣劃分不同部門
把各個不同性質的資料抽出來變成微服務
這樣的好處就是減少耦合
服務內部不管如何改變
只要對外保持一致就不用擔心
如果有那種萬年不用更動的服務
那就讓他安靜的待在角落 不要管他
新進人員也不用花心力去理解那個服務
每個服務很小
小就代表容易理解也容易測試也容易改動
不同部門的資料互相隔離 也更安全
一間公司變大很自然就會劃分成各個部門
一個系統變大非程式人員卻不容易理解為什麼要拆開成不同包
想像有一間 5000人的大公司
每個人都可以任意去各部門拿資料拿數據
而任何部門有任何變動都要想辦法去確定這5000人都確定這個變動
這就是程式的世界
系統寫久了 5000支程式是有可能的
任何變動都要確定這5000程式沒受影響
那改起來就是災難
自然而然很不想去亂動
或者動不動就想重寫
用公司變大去解釋或許可以讓人理解
公司變大了要有不同部門
可以把部門的小變動固定在某個部門內
不會去影響全公司
當然微服務要弄起來也要有一些成本
所以小公司才校長兼撞鐘