model driven story

Post on 19-Jun-2015

154 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Model driven story

@borisbucha

Čo je model?

http://xkcd.com/657

<<bullshit>>

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

top related