成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

明明服務化了,為啥耦合更加嚴重了?

開發 開發工具 架構
耦合,是架構中,本來不相干的代碼、模塊、服務、系統因為某些原因聯系在一起,各自獨立性差,影響則相互影響,變動則相互變動的一種架構狀態。

什么是耦合?

耦合,是架構中,本來不相干的代碼、模塊、服務、系統因為某些原因聯系在一起,各自獨立性差,影響則相互影響,變動則相互變動的一種架構狀態。

感官上,怎么發現系統中的耦合?

作為技術人,每每在心中罵上下游,罵兄弟部門,“這個東西跟我有什么關系?為什么需要我來配合做這個事情?”。明明不應該聯動,卻要被動配合,就可能有潛在的耦合。

但如果服務化不合理,將部分個性化業務下沉到了底層,就是一個耦合的典型案例。

場景還原

業務1,業務2,業務3,因為join導致數據庫實例耦合在了一起。

為了實現通用數據庫table-user的解耦,實施了服務化,將通用user數據的訪問抽象出了服務。

由于服務化不合理,會有很少很少的個性化業務邏輯,實現在底層的服務中,典型的偽代碼是:

  1. switch(biz_type){ 
  2.  case(1) : exec_logic1(); 
  3.  case(2) : exec_logic2(); 
  4.  case(3) : exec_logic3(); 
  5.  default : exec_default(); 

為什么會引發耦合呢?

不妨設,業務1來了一個新的個性化需求,這個需求本來實現在業務1自己的代碼里是合理的,但工程師S想到,底層的通用服務里也有業務1的一小撮個性化代碼,評估后,發現實現在底層新的需求改動的代碼最小,時間最短,于是來找底層服務的負責人工程師B。

- 業務1工程師S:“有個小需求,幫個忙唄”

- 底層工程師B:“個性化實現在底層不合理”

- 業務1工程師S:“反正都有switch case的代碼了,再改一點也不麻煩,在我這邊實現特別復雜,要xxoo這么搞”

- 底層工程師B:“確實很復雜,那我來吧”-

- …

遺留了不合理的代碼,就會有第一次妥協,妥協了業務1,就會妥協業務2,隨著時間的推移,底層服務越來越復雜:

  • 業務1,業務2,業務3的個性化代碼越來越多;
  • 業務1,業務2,業務3的需求越來越多提給底層工程師;
  • 底層工程師慢慢成了項目瓶頸,業務1,業務2,業務3的項目逐步delay,但逐步都怪到了底層工程師的頭上;

直到有一天,底層服務出了一個小bug,影響了業務1,業務2,業務3,歷史總是驚人的相似:

- 業務1的大boss在群里首先發飆:“技術都干啥了,怎么系統掛了”

- 業務1的工程師S一臉無辜:“底層系統改造,工程師S的bug”

額,然而,這個理由,好像在大boss那解釋不通…

- 底層服務工程師B一臉委屈:“...”。明明需求是業務方的,為什么修改代碼的是我底層呢,業務代碼出了問題,為什么責怪的是我底層呢,每每心中罵娘,系統中很可能就存在耦合。

如何解耦呢?

業務代碼上浮,通用代碼下沉,服務化徹底。

解決方案并不復雜,分層架構中,每一層都有自己的職責,每一層都應該守住自己的底線。

你在做技術方案時,碰到過這種場景嗎?

  • “放在你那邊做代碼少”
  • “放在你那邊做時間短”

作為設計折衷的理由,而要多問:

  • “怎么做合理”

業務代碼上浮,通用代碼下沉,服務化徹底,只是一個很小的優化點,但對于底層服務解耦卻是非常的有效。

希望大家每天收獲一點點,這樣架構就能美好一點點。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文 

 

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-12-26 15:41:26

2022-03-07 10:54:34

內存Linux

2022-02-12 17:48:03

InnoDBMySQL查詢數據

2020-07-21 09:05:47

CPU1號核寄存器

2020-05-14 18:50:35

Chrome漏洞瀏覽器

2020-11-30 22:50:48

AWS服務云計算

2022-05-08 13:17:14

CPU內存中斷

2020-06-28 09:12:31

CPU網卡中斷

2022-12-09 17:53:36

MyBatis聯表查詢

2022-09-16 09:13:27

代碼偷懶方法

2019-05-13 09:01:13

程序員職責產品經理

2020-12-09 08:35:45

Shell腳本語法

2020-09-26 10:43:57

Python語言數據分析

2023-06-21 11:19:21

2024-11-26 07:37:22

2025-05-12 08:25:00

架構服務化耦合

2017-12-26 15:52:31

MQ互聯網耦合

2024-02-01 08:38:19

項目代碼CICD

2021-03-29 12:57:31

漏洞OpenSSLDos

2021-07-19 17:56:44

比特幣加密貨幣勒索軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区在线播放视频 | 国产视频一视频二 | 久久免费大片 | www.日韩av.com | 夜久久| 日本中文在线视频 | 亚洲一区二区三 | 日本精品视频一区二区三区四区 | 中文字幕亚洲区一区二 | 国产伦一区二区三区视频 | 国产7777| 午夜免费精品视频 | 日韩精品一区二区三区中文在线 | 久久久久久国产精品久久 | 波多野结衣中文字幕一区二区三区 | 成人精品国产一区二区4080 | 中国美女av | 久久av一区二区三区 | 成年人视频在线免费观看 | 国产精品一区二区三 | 国产精品1区| 精品一区二区三区中文字幕 | 91亚洲免费| www.99久久.com | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 中文字幕视频在线观看 | 国产精品91久久久久久 | 国产精品成人一区二区三区夜夜夜 | 91成人在线 | 99久久精品国产一区二区三区 | 久久99精品久久久久久狂牛 | 国产福利视频导航 | 午夜天堂精品久久久久 | 日韩中文在线视频 | 羞视频在线观看 | 国产黄色大片在线免费观看 | 欧美在线视频一区二区 | 91精品国产欧美一区二区成人 | 久久久久久免费毛片精品 | 中文字幕在线免费视频 | 91在线精品播放 |