Skip to content
GitHub

Architecture ကို မြင်သာအောင် ကြည့်ခြင်း - The C4 Model

ပုံကြမ်းကောင်းတွေ ဘာကြောင့်အရေးကြီးသလဲ

Section titled “ပုံကြမ်းကောင်းတွေ ဘာကြောင့်အရေးကြီးသလဲ”

Software လောကမှာ အဖြစ်များတဲ့ ပြဿနာတစ်ခုကတော့ “ရှုပ်ပွနေတဲ့ Whiteboard ပေါ်က ပုံကြမ်း” ပါပဲ။ အဲဒါကို ဆွဲတဲ့လူတစ်ယောက်တည်းပဲ နားလည်လေ့ရှိတယ်။ Architectural ပုံကြမ်းတွေရဲ့ အဓိကရည်ရွယ်ချက်က ဆက်သွယ်ပြောဆိုဖို့ (Communication) ပါ။ ပုံကြမ်းကောင်းတွေက လုပ်ငန်းပိုင်းဆိုင်ရာ တာဝန်ရှိသူတွေ (Business Stakeholders) ကနေ Developer အသစ်တွေအထိ လူတိုင်းကို System တစ်ခုလုံးကို နားလည်အောင် ကူညီပေးပါတယ်။

The C4 Model: ကိုယ့် Code အတွက် Google Maps လိုမျိုး

Section titled “The C4 Model: ကိုယ့် Code အတွက် Google Maps လိုမျိုး”

C4 Model ဆိုတာက သင့် Software ကို ပုံကြမ်းဆွဲဖို့အတွက် ရိုးရှင်းတဲ့ စဉ်းစားပုံနည်းလမ်းတစ်ခုပါ။ ဒါက မြေပုံ Application တစ်ခုသုံးသလိုပါပဲ - သင်ကြည့်ချင်တဲ့ အသေးစိတ်အဆင့်ပေါ်မူတည်ပြီး Zoom In, Zoom Out လုပ်နိုင်ပါတယ်။

  • အဆင့် ၁: System Context Diagram (ကမ္ဘာ့မြေပုံ)

    Section titled “အဆင့် ၁: System Context Diagram (ကမ္ဘာ့မြေပုံ)”
    • ဘာကိုပြသလဲ - သင့် Software System တစ်ခုလုံးကို အလယ်မှာရှိတဲ့ Box တစ်ခုအဖြစ် ပြသပါတယ်။ ၎င်းက အသုံးပြုသူတွေ၊ တခြားပြင်ပ System တွေနဲ့ ဘယ်လိုအပြန်အလှန် အလုပ်လုပ်သလဲဆိုတာကို ပြပါတယ်။

    • ဘယ်သူတွေအတွက်လဲ - လူတိုင်းအတွက်ပါ (Business သမားတွေ၊ Non-technical Stakeholder တွေ)။ ဒါက High-level Overview ကို ပြသပါတယ်။

  • အဆင့် ၂: Container Diagram (နိုင်ငံမြေပုံ)

    Section titled “အဆင့် ၂: Container Diagram (နိုင်ငံမြေပုံ)”
    • ဘာကိုပြသလဲ - System ကို အကျယ်ချဲ့ကြည့်ခြင်း - အထဲမှာရှိတဲ့ သီးခြား Deploy လုပ်လို့ရတဲ့ Unit တွေကို ပြသပါတယ်။ ဒါတွေကို “Containers” လို့ခေါ်ပါတယ် (Docker Container တွေကို ဆိုလိုတာမဟုတ်ပါဘူး)။ Container ဆိုတာ Web Application, API Service, Mobile App, ဒါမှမဟုတ် Database လိုမျိုး အရာတစ်ခုခုဖြစ်နိုင်ပါတယ်။ ဒီအပိုင်းအစတွေ ဘယ်လိုချိတ်ဆက်ထားလဲဆိုတာကို ပြပါတယ်။

    • ဘယ်သူတွေအတွက်လဲ - Developer တွေနဲ့ Operations Team တွေအတွက်ပါ။ ဒါက High-level Technical တည်ဆောက်ပုံကို ပြသပါတယ်။

  • အဆင့် ၃: Component Diagram (မြို့ပြမြေပုံ)

    Section titled “အဆင့် ၃: Component Diagram (မြို့ပြမြေပုံ)”
    • ဘာကိုပြသလဲ - Container တစ်ခုတည်းကို (“API Service” လိုမျိုး) အကျယ်ချဲ့ကြည့်ခြင်း - သူ့ရဲ့ အဓိကအတွင်းပိုင်း တည်ဆောက်မှုအပိုင်းအစတွေ (Modules) ကို ပြသပါတယ်။

    • ဘယ်သူတွေအတွက်လဲ - အဲဒီ Service တစ်ခုတည်းပေါ်မှာ အလုပ်လုပ်နေတဲ့ Developer တွေအတွက်ပါ။

  • အဆင့် ၄: Code Diagram (လမ်းမမြင်ကွင်း) - Optional

    Section titled “အဆင့် ၄: Code Diagram (လမ်းမမြင်ကွင်း) - Optional”
    • ဘာကိုပြသလဲ - ဒါက Optional အဆင့်တစ်ခုဖြစ်ပြီး၊ Component တစ်ခုတည်းထဲကို ဝင်ကြည့်ပြီး ဘယ်လို Implement လုပ်ထားလဲဆိုတာကို ပြသနိုင်ပါတယ် (ဥပမာ - Class Diagram တစ်ခုနဲ့)။
C4 architecture