Läbi aegade on mudelid aidanud meil probleeme lahendada. Enne Bohri mudelit oli Rutherfordi mudel ja kuubi mudel – kõik kirjeldasid sama asja, kuid erinevatest vaatenurkadest ja täpsusastmest ning sellest tulenevalt oli võimalik teooriaid nende peale luua, mis üks hetk võisid vähem vajalikuks muutuda.
Bohri mudel võib olla vägagi täpne, kuid vahel meile piisab ka kuubi mudelist. Teisisõnu mudelid ei pea täielikult peegeldama reaalsust. Võtame mudelisse need osad reaalsusest, mis rajatava süsteemi jaoks olulised on ja ka neid vääname enda nägemise järgi abstraktsioonidega. Näiteks rakuehituse uurimisel pole meile aatomite maailm väga oluline.
Kuna mudelid ei hõlma kõike, siis süsteemides oleks narr proovida kõike teha ühe mudeli najal. Äriloogika jaoks meil on ärimudel ja aruandluse jaoks teine. Ühe kõikehõlmava mudeli hind on kallis – meeletu keerukus ja tendents struktuurituse poole.
Mudelitest kõige olulisem on tuum, mis on peamiselt äriline eristatavus ning selle loomisel tasub võimalikult palju vaeva näha (mõne süsteemi tuum võibki olla aruandlus, siis tulebki sellega kõige rohkem tegeleda).
Rakendustes on peamiselt ärimudel, mis koosneb omakorda pisematest mudelitest; vaate/presentatsiooni mudel, mida viiakse enamikel kordadel kokku eelnevaga ja seetõttu ka vaade suures osas domineerib; aruandluse mudel, mis on normaliseerimata, kuid sellegi saatus on samaväärne vaate mudeliga. Seega mitme mudeli olemasolu puhul ei tasu paanikasse minna, kuid ühe puhul küll.
Oleme jõudnud arusaamisele, et mudelid peab eraldama ning võimalusi selleks on: luua kõik mudelid eraldi; eraldada päringud käskudest (Command Query Separation), mis jagaks mudeli kaheks – lugemine (võimalikult lame ja normaliseerimata mudel) ja kirjutamine.
Karta ei tasu mitut mudelit, vaid ühe olemasolu. Alternatiivne variant mitme mudelite (äri, aruandlus, vaate mudel jne) jaoks on Command Query Separation (CQS). Kui kellelgi veel mõni hea idee on, kuidas võiks lahendada keerukuse kasvu ja struktuurituse poole liikumise probleemi ühe mudeli puhul, siis andke julgesti teada. Seniks meeldivat mudelite eraldamist ja loomist.
Loe veel sarnastel teemadel:
- xDUF, 4. juuni
- Modernne tarkvara loomine V: Mitu kasutajakontot sul on?, 18. november
- Maailmad on erinevad: Model-View-Controller, 15. oktoober
- Maailm on liiga sarnane, 13. mai
- Analüütikutest, 27. jaanuar
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
