Upload
boris-bucha
View
149
Download
5
Embed Size (px)
Citation preview
Model driven story
@borisbucha
Prečo modelovať?
• Spoločensko – psychologický aspekt
„chicks think that architects are hot“
<<bullshit>>
Prečo modelovať?
• Zachytenie essential complexity• Efektívnejšia komunikácia
História sw modelovania
‘80 ‘90 ‘00
• Ambícia lepšie kontrolovať komplexný sw vývoj
• Množstvo vendorov (nekompatibilné)
• Príliš komplikované
• Unifikácia jazyka• Modeluje OOP koncepty
Uml profiles?
UML je užitocné ako...(alebo prečo ešte nezomrelo)
• Reverse engineering tool
• Sketching tool
DSL - Doménovo špecifický jazyk
Interný vs Externý DSL
@martinfowler
Dependency InjectionDTO
Domain Model
Event Aggregator
Warp Drive
DSL
• interné (Fluent APIs) vs externé (textové, grafické)
• Interpretácia vs generovanie kódu
• imperatívne vs deklaratívne (čo spraviť vs ako sa to má spraviť)
DSL – sa oplatí keď je ...
• Small
• Simple
• Focused
• Executable
A == B
SELECT * from XXX WHERE A == B
Externý DSL v praxi
"I’ll be honest with you – building this stuff is expensive." [http://www.udidahan.com/2012/05/23/nservicebus-3-2-released/]
"I don’t think we’ll be able to offer the full round-tripping model-to-code-back-to-model abilities for some time (as they’re horrendously difficult to do well)" [http://www.udidahan.com/2012/04/24/nservicebus-studio-presentation-online/]
Externý <- Interný DSL
Pattern -> iDSL -> eDSL
NT File processing language• DSL pre popis schémy a pravidiel spracovania súborov zákazníka• NT File – xml alebo flat textový súbor s nudnými dátami o osobách,
účtoch, úveroch, úverových incidentoch, ...
• Spracovanie znamená: validácia, integrácia dát, tvorba odpovede o spracovaní
• relatívne jednoduchá doména
NTDSL – Ciele• Dostatočne popisný
– Schéma súboru– Validácie (fixné domény, autorizácia, invarianty)– tvorba odpovedí– Integrácia dát (RDBMS)
• „Spustiteľný“ – Targetuje všetky app vrstvy– Nachádzanie nekonzistencií modelu– Môže byť súčasťou CI
• Zdieľaný– Analytik <-> Programátor (vlastníci)– Analytik -> Zákazník
NTDSL – Ciele• Čitatéľný s minimom kompromisov kvôli IT
– Microsoft EXCEL !!!– Analytik sa môže vyblázniť
• Deklaratívny = jednoduhšie spustiťeľný / optimalizovateľný
• Rozšíriteľný– “hooks” (embednutý C#)– Tvorba komponentov, nie kompletnej app – Paralelný technický model
• Lacný (NIE Wizardy a Parsre)
Fails
• XLS je binárny formát –> version control
NTDSL – Syntax
NTDSL – výsledok - UI
NTDSL – výsledok - BL
• Workflow DTOs• Parsers• Validators• Responders
NTDSL – výsledok – storage
• Repository• DAL• DDL – Tabuľky– Indexy, – ...
• DML– PLSQL– Trigre
NTDSL – kúzlo
Štatistika – 1 vybraný systém
• * = 18MB – ls -r -include:*.cs,*.aspx,*.ascx,*.ps1, *.pck,*.sql | measure-object -sum -property Length
• *.generated.* = 8MB (44%)
Tools
• VBA• XSLT• T4