SlideShare una empresa de Scribd logo
1 de 23
Model driven story

    @borisbucha
<<bullshit>>
                      Čo je model?




http://xkcd.com/657
<<bullshit>>
           Prečo modelovať?

• Spoločensko – psychologický aspekt




              „chicks think that architects are hot“
Prečo modelovať?
• Zachytenie essential complexity
• Efektívnejšia komunikácia
História sw modelovania
         •   Ambícia lepšie
             kontrolovať
                                   •   Unifikácia jazyka
             komplexný sw vývoj
                                   •   Modeluje OOP koncepty
         •   Množstvo vendorov
             (nekompatibilné)
         •   Príliš komplikované




                                             Uml profiles?


   ‘80                     ‘90               ‘00
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


 Dependency Injection
                         DTO

                                                @martinfowler
       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                      SELECT * from XXX
                             WHERE A == B


• Simple
                    A == B


• Focused

• Executable
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

Más contenido relacionado

Destacado

Science Career Project: Neurology
Science Career Project: NeurologyScience Career Project: Neurology
Science Career Project: Neurologypmaddi
 
Analisis riesgos ii dependencias
Analisis riesgos ii dependenciasAnalisis riesgos ii dependencias
Analisis riesgos ii dependenciasLeonel Davidson
 
Macrosolutions Training: Project Quality Management
Macrosolutions Training: Project Quality ManagementMacrosolutions Training: Project Quality Management
Macrosolutions Training: Project Quality ManagementMacrosolutions SA
 
Why good spreadsheets make bad strategies
Why good spreadsheets make bad strategiesWhy good spreadsheets make bad strategies
Why good spreadsheets make bad strategiesLeonel Davidson
 
Lsn28 a
Lsn28 aLsn28 a
Lsn28 apmaddi
 
Macrosolutions Training: Project Human Resource Management and Project Leader...
Macrosolutions Training: Project Human Resource Management and Project Leader...Macrosolutions Training: Project Human Resource Management and Project Leader...
Macrosolutions Training: Project Human Resource Management and Project Leader...Macrosolutions SA
 
Macrosolutions Training: Portfolio Management
Macrosolutions Training: Portfolio ManagementMacrosolutions Training: Portfolio Management
Macrosolutions Training: Portfolio ManagementMacrosolutions SA
 
Macrosolutions Training: Managing Complex Projects and Projects in Crisis
Macrosolutions Training: Managing Complex Projects and Projects in CrisisMacrosolutions Training: Managing Complex Projects and Projects in Crisis
Macrosolutions Training: Managing Complex Projects and Projects in CrisisMacrosolutions SA
 
Personal development course assignment 3
Personal development course assignment 3Personal development course assignment 3
Personal development course assignment 3Olive Wahü
 
Macrosolutions Training: Project Management: Establishing Competitive Advantages
Macrosolutions Training: Project Management: Establishing Competitive AdvantagesMacrosolutions Training: Project Management: Establishing Competitive Advantages
Macrosolutions Training: Project Management: Establishing Competitive AdvantagesMacrosolutions SA
 

Destacado (10)

Science Career Project: Neurology
Science Career Project: NeurologyScience Career Project: Neurology
Science Career Project: Neurology
 
Analisis riesgos ii dependencias
Analisis riesgos ii dependenciasAnalisis riesgos ii dependencias
Analisis riesgos ii dependencias
 
Macrosolutions Training: Project Quality Management
Macrosolutions Training: Project Quality ManagementMacrosolutions Training: Project Quality Management
Macrosolutions Training: Project Quality Management
 
Why good spreadsheets make bad strategies
Why good spreadsheets make bad strategiesWhy good spreadsheets make bad strategies
Why good spreadsheets make bad strategies
 
Lsn28 a
Lsn28 aLsn28 a
Lsn28 a
 
Macrosolutions Training: Project Human Resource Management and Project Leader...
Macrosolutions Training: Project Human Resource Management and Project Leader...Macrosolutions Training: Project Human Resource Management and Project Leader...
Macrosolutions Training: Project Human Resource Management and Project Leader...
 
Macrosolutions Training: Portfolio Management
Macrosolutions Training: Portfolio ManagementMacrosolutions Training: Portfolio Management
Macrosolutions Training: Portfolio Management
 
Macrosolutions Training: Managing Complex Projects and Projects in Crisis
Macrosolutions Training: Managing Complex Projects and Projects in CrisisMacrosolutions Training: Managing Complex Projects and Projects in Crisis
Macrosolutions Training: Managing Complex Projects and Projects in Crisis
 
Personal development course assignment 3
Personal development course assignment 3Personal development course assignment 3
Personal development course assignment 3
 
Macrosolutions Training: Project Management: Establishing Competitive Advantages
Macrosolutions Training: Project Management: Establishing Competitive AdvantagesMacrosolutions Training: Project Management: Establishing Competitive Advantages
Macrosolutions Training: Project Management: Establishing Competitive Advantages
 

Similar a Model driven story

Design mobilnych aplikacii
Design mobilnych aplikaciiDesign mobilnych aplikacii
Design mobilnych aplikaciiSCR®
 
Prezentácia: Diplomový seminár
Prezentácia: Diplomový seminárPrezentácia: Diplomový seminár
Prezentácia: Diplomový seminárguest3604661
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingDavinci software
 
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmuAko si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmuTeesys
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Catana0605
 
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingKatarína Molnárová
 
Web design in html editor
Web design in html editorWeb design in html editor
Web design in html editorvibration.sk
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Michal Fojtik
 
DataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorDataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorASBIS SK
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ RubyslavaIvan Srba
 
Výber dátového centra pre prevádzku veľkej online infraštruktúry
Výber dátového centra pre prevádzku veľkej online infraštruktúryVýber dátového centra pre prevádzku veľkej online infraštruktúry
Výber dátového centra pre prevádzku veľkej online infraštruktúryWebglobe - Yegon
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Jano Suchal
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Jano Suchal
 
Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2guest3604661
 

Similar a Model driven story (20)

Mdsd
MdsdMdsd
Mdsd
 
Design mobilnych aplikacii
Design mobilnych aplikaciiDesign mobilnych aplikacii
Design mobilnych aplikacii
 
Prezentácia: Diplomový seminár
Prezentácia: Diplomový seminárPrezentácia: Diplomový seminár
Prezentácia: Diplomový seminár
 
Samuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud ComputingSamuel Hopko & Daniel Rajčan - Cloud Computing
Samuel Hopko & Daniel Rajčan - Cloud Computing
 
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmuAko si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
Ako si vybudovat Digitalny Ekosystem 2017 - Miroslav Pikus - Cloud meni firmu
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
 
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhostingONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
ONLINE KLUB - Juraj Grešš, WEBGLOBE - Domény a webhosting
 
Analytika
AnalytikaAnalytika
Analytika
 
Web design in html editor
Web design in html editorWeb design in html editor
Web design in html editor
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
 
DataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorDataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage Hypervisor
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ Rubyslava
 
Výber dátového centra pre prevádzku veľkej online infraštruktúry
Výber dátového centra pre prevádzku veľkej online infraštruktúryVýber dátového centra pre prevádzku veľkej online infraštruktúry
Výber dátového centra pre prevádzku veľkej online infraštruktúry
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?
 
Biee
BieeBiee
Biee
 
Biee
BieeBiee
Biee
 
Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2
 
Dátové sklady
Dátové skladyDátové sklady
Dátové sklady
 
19.03.18 - Noc UX Designu / Stano Rykalský
19.03.18 - Noc UX Designu / Stano Rykalský 19.03.18 - Noc UX Designu / Stano Rykalský
19.03.18 - Noc UX Designu / Stano Rykalský
 

Model driven story

  • 1. Model driven story @borisbucha
  • 2. <<bullshit>> Čo je model? http://xkcd.com/657
  • 3. <<bullshit>> Prečo modelovať? • Spoločensko – psychologický aspekt „chicks think that architects are hot“
  • 4. Prečo modelovať? • Zachytenie essential complexity • Efektívnejšia komunikácia
  • 5. História sw modelovania • Ambícia lepšie kontrolovať • Unifikácia jazyka komplexný sw vývoj • Modeluje OOP koncepty • Množstvo vendorov (nekompatibilné) • Príliš komplikované Uml profiles? ‘80 ‘90 ‘00
  • 6. UML je užitocné ako... (alebo prečo ešte nezomrelo) • Reverse engineering tool • Sketching tool
  • 7. DSL - Doménovo špecifický jazyk Interný vs Externý DSL Dependency Injection DTO @martinfowler Domain Model Event Aggregator Warp Drive
  • 8. 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ť)
  • 9. DSL – sa oplatí keď je ... • Small SELECT * from XXX WHERE A == B • Simple A == B • Focused • Executable
  • 10. 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/]
  • 12. Pattern -> iDSL -> eDSL
  • 13. 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
  • 14. 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
  • 15. 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)
  • 16. Fails • XLS je binárny formát –> version control 
  • 17. NTDSL – Syntax
  • 18. NTDSL – výsledok - UI
  • 19. NTDSL – výsledok - BL • Workflow DTOs • Parsers • Validators • Responders
  • 20. NTDSL – výsledok – storage • Repository • DAL • DDL – Tabuľky – Indexy, – ... • DML – PLSQL – Trigre
  • 21. NTDSL – kúzlo
  • 22. Štatistika – 1 vybraný systém • * = 18MB – ls -r -include:*.cs,*.aspx,*.ascx,*.ps1, *.pck,*.sql | measure-object -sum -property Length • *.generated.* = 8MB (44%)