Skip to main content

拆服務?分類?

Source: 2022/08/18

#分類 #拆服務 #拆組織

物件導向的專有名詞:類別 (Class),本質上就是 #分類 的概念。換言之,就是:

描述一個類別 (Class, n)

這件事情背後的本質就是在分類 (Classify, v),也就是:

一堆東西,先經過分類 (動作) 之後,定義類別 (名詞)

這個名詞定義的精準程度 (這裡牽涉到語言的字彙程度),決定領域 (Domain) 涉入的深度。

例如,電商領域的會員 (Member) 是領域知識,如果要用一個 Class 描述會員會怎麼描述?

class Member {
String firstName;
String lastName;
String age;
String gender;
}

這個例子是結果了,如果反過來,先有一堆東西:

  • firstName
  • lastName
  • age
  • gender

那會怎麼命名?經過分析可能會有以下 #名詞:

  • Profile
  • Identity
  • Member

我的字彙有點少,反正至少有這三個 XDD


另外一個我常舉的例子,
通常是寫 Code 有一定經驗的人一定會 #想做 的:
(如果你沒感覺就 ....)

  1. 一個 Class 裡有 20 個 Method
  2. 一個 Method 有 1000 行

換個角度,再舉一些例子:

  1. 一個組織有 30 個人
  2. 一個房間有 300 坪
  3. 一個書櫃有 300 本書
  4. 一個系統裡有 30 個角色
  5. ...

這年代很多架構都是分散式架構,
大多都要拆服務,拆成微服務、奈米服務
很多人會說,要用一些方法來拆
像是現在流行的 #DDD ..

其實如果你有從上看到這裡
大概就會知道我的直接概念就是
多就拆
拆就去管理依賴
不面對這問題
時間到了
他就會來面對你

至於啥是多?
需要科學的量化方法?
還是團隊共識?
還是主管決?
只要大家看清楚就好

不要真的要給團隊共識決
不敢決
決了也不敢負責任

或者主管決
做了不好決策
該反應又不說
又靠北主管無能

科學化方法自己卻沒有能力量化
因為連自己寫過多少 Code 都沒能力掌握