Sobes.tech
Senior

DCI nima?

sobes.tech AI

AIdan javob

DCI (Data-Context-Interaction) — bu arxitektura naqshidir, u tizimni uchta asosiy qismga bo‘ladi:

  • Maʼlumotlar: Domen obʼektlarini ifodalaydigan obyektlar (masalan, User, Account). Ular holatni saqlaydi, ammo biznes mantiqini bilmaydi.
  • Kontekst: Zarur bo‘lgan maʼlumotlarni yig‘adi va ularni muayyan tranzaktsiyada rollarga bog‘laydi. Kontekst qaysi obyektlar qaysi rollarni o‘ynashini biladi.
  • Interaksiya: Rollar, ular kontekstda maʼlumotlarga qo‘llaniladigan biznes mantiqini belgilaydi. Muayyan vaziyatda maʼlumotlar ustida bajarilishi mumkin bo‘lgan aniq harakatlar.

DCI, obyektlarning muayyan ssenariyda qanday o‘zaro taʼsir qilishiga odamlar qanday fikr yuritishini, faqat maʼlumotlarning strukturaviy tashkilotidan ko‘ra, muhimroq deb hisoblaydi. Bu biznes mantiqini yanada aniqroq va oson o‘qiladigan qilish uchun mo‘ljallangan.

Misol: Hisoblar o‘rtasida pul o‘tkazish.

  • Maʼlumotlar: Account (holat: balans)
  • Kontekst: "Pul o‘tkazish", u ikki Account obyektini "Manba" va "Qabul qiluvchi" rollari bilan bog‘laydi.
  • Interaksiya: "Manba" rollari (withdraw metodi) va "Qabul qiluvchi" rollari (deposit metodi). Biznes mantiqi: mablag‘larning mavjudligini tekshirish, balanslarni o‘zgartirish.

DCI ning asosiy afzallari:

  • Kodning o‘qilishi yaxshilanadi: Biznes mantiqi yanada ifodali va oson kuzatiladigan bo‘ladi.
  • Domenni yaxshiroq tushunish: Model obyektlar o‘rtasidagi haqiqiy o‘zaro taʼsirlarni aks ettiradi.
  • Ko‘proq moslashuvchanlik: Yangi o‘zaro taʼsirlar mavjud maʼlumot obyektlarini o‘zgartirmasdan qo‘shilishi mumkin.
  • Murakkablikni kamaytirish: Qisqa, izolyatsiyalashgan tranzaktsiyalarga eʼtibor qaratadi.

DCI, turli dasturlash tillari bilan amalga oshirilishi mumkin, garchi baʼzi tillar uning qo‘llab-quvvatlash uchun yaxshiroq bo‘lsa (masalan, Scala traitlari bilan).