Re: [討論] 系統越開發越多,負責的東西越來越多

作者: chal ( )   2023-11-09 22:16:52
微服務似乎可以改善一點這方面的問題
系統開發有點像是公司還很小的時侯
當你公司還很小的時侯
某個職員要當客服 又要兼倉管 又要兼銷售
所以這個職員可以拿到各種不同的數據
當公司開始變大以後
就會有財務部 客服部 商品部
每個部門的數據再也不像小公司時可以任意取得
每個部門內部各自處理管理
其他部門不用管另一個部門也不用知道他們怎麼管理
部門之間的溝通要透過窗口或部長
當系統一開始小的時候
就像小公司校長兼撞鐘
一包系統可以同時去存取會員資料與商品資料與物流資料
當系統變大以後
其實也應該像小公司變大公司那樣劃分不同部門
把各個不同性質的資料抽出來變成微服務
這樣的好處就是減少耦合
服務內部不管如何改變
只要對外保持一致就不用擔心
如果有那種萬年不用更動的服務
那就讓他安靜的待在角落 不要管他
新進人員也不用花心力去理解那個服務
每個服務很小
小就代表容易理解也容易測試也容易改動
不同部門的資料互相隔離 也更安全
一間公司變大很自然就會劃分成各個部門
一個系統變大非程式人員卻不容易理解為什麼要拆開成不同包
想像有一間 5000人的大公司
每個人都可以任意去各部門拿資料拿數據
而任何部門有任何變動都要想辦法去確定這5000人都確定這個變動
這就是程式的世界
系統寫久了 5000支程式是有可能的
任何變動都要確定這5000程式沒受影響
那改起來就是災難
自然而然很不想去亂動
或者動不動就想重寫
用公司變大去解釋或許可以讓人理解
公司變大了要有不同部門
可以把部門的小變動固定在某個部門內
不會去影響全公司
當然微服務要弄起來也要有一些成本
所以小公司才校長兼撞鐘
作者: MoonCode (MoonCode)   2023-11-09 22:52:00
作者: tsao1211 (Sunday)   2023-11-09 23:46:00
你用過微服務?
作者: a12838910 (Ziv.C)   2023-11-10 00:27:00
好奇 台灣的公司 用微服務的多嗎…
作者: tzouandy2818 (Naked Bear)   2023-11-10 01:22:00
冗言贅字太多
作者: abccbaandy (敏)   2023-11-10 01:28:00
2023了還在吹微服務,面試都很少提這東西了
作者: qwer338859 (溫莎公爵)   2023-11-10 01:35:00
沒那屁股別吃那瀉藥
作者: yamiodymel (YamiOdymel)   2023-11-10 03:06:00
看得出來你大概也知道微服務有多雷
作者: mozume (米蟲)   2023-11-10 06:05:00
會有原原po問題的千萬別用微服務,連單體服務都搞不好的上微服務只會是災難
作者: DrTech (竹科管理處網軍研發人員)   2023-11-10 08:10:00
不管是服務還是微服務,你的概念就是模組化把解偶合,減少每次變更需要處理的工作量而已。 重點是人的頭腦有沒有這種概念:沒有這種工作概念,不管你是用什麼服務,微服務,還是把自己搞死。這就是為什麼,有些人覺得:怎麼可能專案完成越多,事情與壓力越多。有些人覺得,專案完成越多,事情越多的差異。不同的人,做事情的觀念決定了一切。
作者: devilkool (對貓毛過敏的貓控)   2023-11-10 09:12:00
我只寫過服務而已,原來微服務過氣了嗎
作者: lazarus1121 (...)   2023-11-10 09:26:00
微服務我覺得只有server掛掉有差其他還是看開發習慣吧
作者: WTS2accuracy (宝鐘海賊団の一味)   2023-11-10 09:39:00
微服務大部分都是拿來嘴砲的 會用的少之又少多的是沒多少成效甚至比不拆還慘別網路文章看一看就高潮吹上天 實際沒這麼簡單
作者: sniper2824 (月夜)   2023-11-10 10:16:00
差低
作者: happy8649 (Hao)   2023-11-10 11:15:00
推原po,講得很好感覺很多人只是沒遇過微服務>單體的狀況或是沒在成熟的微服務體系待過而已微服務在處理的並不只是程式的問題但可能大部分台灣公司的業務大小就是不會需要微服務吧
作者: mirror0227 (鏡子)   2023-11-10 11:31:00
微服務不就是你原本只要管一個服務 拆開之後變成要管10個微服務
作者: srwhite (魯蛇阿白)   2023-11-10 11:35:00
我們公司拆完之後發現外部耦合變得有點嚴重XD想改api都不確定會不會哪裡有別支呼叫不過應該是可以從文件管理層面解決
作者: tsaigi (菜雞)   2023-11-10 12:20:00
說微服務是嘴炮的 應該是忘了加”在台灣” 這個條件
作者: hegemon (hegemon)   2023-11-10 12:22:00
樓上, Amazon影音串流那邊都寫文章說把微服務換回單體反而省很多錢了
作者: airtsubasa (偽學姊)   2023-11-10 13:07:00
微服務用在機台單一方面還可以啦 因為改動不大 通常也只會丟資料收資料
作者: abccbaandy (敏)   2023-11-10 13:09:00
上面那個管10個微服務的,代表跟本不需要拆
作者: Litfal (Litfal)   2023-11-10 15:31:00
根本問題還是內聚力和粒度阿
作者: jason222333 (發呆)   2023-11-10 15:43:00
作者: WTS2accuracy (宝鐘海賊団の一味)   2023-11-10 17:26:00
微服務跟單體是權衡取捨 無腦推的根本實際經驗吧*沒實際經驗
作者: shvanta (vant)   2023-11-10 17:28:00
作者: viper9709 (阿達)   2023-11-10 17:51:00
推DrTech
作者: dan114021 ( Superyo)   2023-11-10 18:42:00
微服務如果亂切或是沒有搞懂系統未來的走勢很容易陷入微服務架構的缺點,微服務有些優點沒被提到,實作的語言執行的系統都不需要考量其他服務。當然在小公司或是一個人負責一堆微服務的時候會覺得用單體的方式開發比較快,比起開API給其他微服務呼叫,單體內call function在開發上快多了
作者: yamagishi (山岸刑務官)   2023-11-10 20:24:00
軟體就是會成長,不可能避免的不要亂就像你說的不能每一個人都有相同的存取權限所以才有部門這種東西做為權限的最小單位你後面補充的DDD那些就一種管理方式對於一些team來說合適,有些不合適跟review還有人員教育比起來,更偏重文化的部分你這邊的舉例可以說是相當不合適
作者: happy8649 (Hao)   2023-11-10 21:19:00
DDD放在這裡不會不適合吧?DDD很大部分就是在探討domain boundary/bounded context的拆分再說它不只是一種管理方式,它是一種軟體工程中的設計方式
作者: TSMCfabXX (台積新產品)   2023-11-10 22:12:00
「任何部門有任何變動都要想辦法去確定這5000人都確定這個變動」不用啊, 製造部最大, 他說了算
作者: brucetu (sec)   2023-11-11 12:51:00
感覺你以為劃分了部門就不會亂你再去看一次原篇第一段提出的問題,根本不是任何開發方法可以解決的給你一套神級開發方法,你就能一人扛整個公司的全部系統開發加維運嗎整篇我只看到紙上談兵吹微服務好處,無視微服務本身的開發成本,你真的用過?這種吹觀念實際上對讀者沒幫助的文章網路上一堆跟推廣企業引入大數據就可以怎樣怎樣,沒什麼差別有聽過自從引入微服務,公司裁了幾個工程師節省成本的?應該都是成本反而更高
作者: jack0204 (Jarbar王朝)   2023-11-11 14:38:00
有哪個開發流程是為了節省成本的?
作者: L90156 (【D】)   2023-11-11 15:46:00
.......一群井蛙,沒實作過微服務的,不懂真的可以閉嘴!!偶然看到這版,進來看一下,思維水準都太低端了...
作者: alihue (wanda wanda)   2023-11-11 16:35:00
樓上不要只會嘴,發一篇有水準的來看看啊
作者: s06yji3 (阿南)   2023-11-11 20:10:00
他一定不會發的啊(攤手)
作者: GinginDenSha (gingin)   2023-11-12 12:39:00
有人在說Amazon那篇文章,那篇根本上是因為要反覆在workflow framework 中不同step 重複存取object storage 的資料,所以可能耗費多餘的IO跟cost,但重點還是想清楚step 的切分、工具及情境的使用,並不是說一定monolithic 就一定好。
作者: hegemon (hegemon)   2023-11-12 13:33:00
不管選擇走哪條路都要先想清楚需求跟人力呀,不是像很多人那樣無腦微服務. 每個場景都有各自適用的方法
作者: fullout (f)   2023-11-13 22:04:00
推概念解說
作者: alan3100 (BOSS)   2023-11-14 02:48:00
DDD是切分方式不是管理辦法 講引入微服務成本更高多半是沒devops 沒自動化後面維運管理爆炸開發流程不為了成本是為了啥? 隕石開發就好啦
作者: drakd4d (NULL)   2023-11-14 19:19:00
微服務大多只是解決政治問題而已成本很高的
作者: gpctv (gpctv)   2023-11-15 15:02:00
77樓,很兇喔!
作者: MIM23 (HAWK)   2023-11-17 22:10:00
微服務後還要用APIM控管API,事情會越來越多

Links booklink

Contact Us: admin [ a t ] ucptt.com