Architecture ကို အကဲဖြတ်ခြင်း နှင့် Architectural Fitness Functions
ပြဿနာ - Architecture ပုံစံ သွေဖည်သွားခြင်း (Architectural Drift)
Section titled “ပြဿနာ - Architecture ပုံစံ သွေဖည်သွားခြင်း (Architectural Drift)”Architect တွေက ဘယ်လောက်ပဲ သေသေချာချာ ပုံကြမ်းတွေဆွဲ၊ စည်းမျဉ်းတွေ သတ်မှတ်ခဲ့ပါစေ… အချိန်ကြာလာတာနဲ့အမျှ Code အသစ်တွေ ထပ်ပေါင်းထည့်ရင်း၊ Deadline တွေ အမီလိုက်ရင်းနဲ့ တကယ့် Code က ရည်ရွယ်ထားတဲ့ Architecture ကနေ တဖြည်းဖြည်း သွေဖည်သွားတတ်ပါတယ်။ စည်းမျဉ်းတွေ အချိုးခံရပြီး System ကြီး ရှုပ်ပွလာပါတယ်။
ဖြေရှင်းချက် - Architectural Fitness Functions
Section titled “ဖြေရှင်းချက် - Architectural Fitness Functions”ဒီပြဿနာကို ဖြေရှင်းဖို့ Fitness Function ဆိုတာကို သုံးပါတယ်။ သူက ကိုယ်ချမှတ်ထားတဲ့ Architecture စည်းမျဉ်းတွေကို လိုက်နာရဲ့လားဆိုတာကို အလိုအလျောက် စစ်ဆေးပေးတဲ့ Automated Test တစ်ခုပါပဲ။ အလွယ်ပြောရရင် “Architecture အတွက် ရေးထားတဲ့ Unit Test” လို့ မှတ်ယူနိုင်ပါတယ်။
ဘယ်လို အလုပ်လုပ်လဲ? ကိုယ့်ရဲ့ ပုံမှန် CI/CD Pipeline (ကုဒ်တွေကို အလိုအလျောက် စစ်ဆေးတဲ့နေရာ) ထဲမှာ ဒီ Fitness Function တွေကို ထည့်ပြီး Run ထားလိုက်ရုံပါပဲ။
Fitness Function ဥပမာများ:
- ချိတ်ဆက်မှု (Dependencies) ကို စစ်ဆေးခြင်း:
PaymentServiceရဲ့ ကုဒ်ကUserServiceကို တိုက်ရိုက်လှမ်းခေါ်ရင် (ဒါက Loose Coupling ကို ချိုးဖောက်တာဖြစ်လို့) ချက်ချင်း Error တက်ပြီး Test Fail ဖြစ်သွားစေမယ့် Test မျိုး။ - မြန်နှုန်း (Metrics) ကို စစ်ဆေးခြင်း: အရေးကြီးတဲ့ API တစ်ခုကို ခေါ်ကြည့်လို့ Response Time က 100 milliseconds ထက် ကျော်သွားရင် ချက်ချင်း Test Fail ဖြစ်သွားစေမယ့် Test မျိုး။
- လုံခြုံရေး (Security) ကို စစ်ဆေးခြင်း: ကိုယ်သုံးထားတဲ့ Library တွေမှာ Security ပိုင်း အားနည်းချက် (Vulnerability) တွေ ပါလာလားဆိုတာကို အလိုအလျောက် စစ်ဆေးပေးတဲ့ Test မျိုး။
ဒီလို Test လေးတွေက အရေးကြီးတဲ့ Architecture စည်းမျဉ်းတစ်ခုကို ချိုးဖောက်မိတာနဲ့ ချက်ချင်း သတိပေးနိုင်လို့၊ System ကြီး လမ်းလွဲမသွားအောင် ကာကွယ်ပေးတဲ့ “ဘေးကင်းလုံခြုံရေး ပိုက်ကွန်” တစ်ခုအနေနဲ့ အလုပ်လုပ်ပေးပါတယ်။