4. Domeno aiškumas
Verslo logikos formalizavimo svarba
Softas vykdo taisykles – ne nuojautą.
Be logikos formalizavimo:
- Sistema priklausoma nuo žmonių
- Sprendimai nenuoseklūs
- Automatizacija neįmanoma
- Testavimas tampa subjektyvus
Formalizavimas = bendros kalbos tarp verslo ir technologijos paieška.
Programuotojas nėra ekstrasensas
Jei negali koduoti be patirties – taisyklių nėra.
Programuotojas nėra verslo aiškiaregys.
Kai nėra verslo kalbos, programuotojas tampa žmogumi, kuris turi ją išrasti.
Nuojauta vs. API
- Nuojauta: intuicija, priklausomybė nuo žmonių
- API: formali, dokumentuota sąsaja
Sistema, kuri reikalauja nuojautos – tai ritualas, ne sistema.
Verslo kalba ir jos svarba
Be kalbos – verslas negali augti.
Gera verslo kalba:
- Aiški
- Nuosekli
- Išsami
- Evoliucionuojanti
Verslo kalba → Domeno modelis → Tiltas tarp verslo ir technologijų
Paslėpta taisyklė
Kai verslas neturi kalbos, atsiranda implicitinės žinios:
- Priklausomybė nuo žmonių
- Sunku perduoti žinias
- Nesuderinami sprendimai
- Evoliucijos barjeras
Programuotojo vaidmuo formalizuojant verslą
Kai reikia, programuotojas tampa paskutiniu filtru tarp chaoso ir struktūros.
Problemos:
- Informacijos trūkumas
- Verslo žinių trūkumas
- Atsakomybės perteklius
- Komunikacijos barjerai
Domeno modeliavimo pagrindai
Pagrindiniai elementai
- Entities: “Sąskaita”, “Klientas”, “Transakcija”
- Value Objects: “Adresas”, “Pinigų suma”
- Aggregates: “Užsakymas” su eilutėmis
- Repositories: prieiga prie agregatų
- Services: “Mokėjimo apdorojimas”
- Events: “Užsakymas patvirtintas”
Savybės:
- Aiškumas
- Nuoseklumas
- Išsamumas
- Evoliucija
Praktiniai žingsniai siekiant domeno aiškumo
-
Sukurkite bendrą kalbą
- Žodynas, be sinonimų
- Visi supranta vienodai
-
Modeliuokite su verslu
- Diagramos, lentos
- Bendra sesija = bendras modelis
-
Identifikuokite taisykles
- Dokumentuokite aiškiai
- Grupavimas pagal temas
-
Kurkite prototipus ir pavyzdžius
- Iliustracijos
- Realūs scenarijai
-
Įtraukite modelį į kodą
- Terminologija kodo struktūroje
- Aiški verslo logikos izoliacija
-
Reguliariai peržiūrėkite
- Su verslu
- Atnaujinimai, dokumentacija
-
Dalinkitės žiniomis
- Mokymai
- Paprasta dokumentacija
- Skatinimas klausti
Domeno aiškumas – nuolatinis procesas.
Jis leidžia kurti sistemas, kurios yra suprantamos, palaikomos ir evoliucionuoja.