Domain Specific Language

38
Domain Specific Domain Specific Language Language Mac Michał Mac Michał Programujący architekt, konsultant Programujący architekt, konsultant

description

Domain Specific Language. Mac Michał Programujący architekt, konsultant. Agenda. Czym jest DSL? Przykłady użycia DSLa Architekutra SaaS Domain Driven Design Technikalia Implementacja przykładowego języka domenowego. O mnie. Konsultant, programujący architekt, trener IT - PowerPoint PPT Presentation

Transcript of Domain Specific Language

Page 1: Domain Specific Language

Domain Specific Domain Specific LanguageLanguage

Mac MichałMac Michał

Programujący architekt, konsultantProgramujący architekt, konsultant

Page 2: Domain Specific Language

AgendaAgenda

Czym jest DSL?Przykłady użycia DSLa

Architekutra SaaSDomain Driven Design

Technikalia Implementacja przykładowego języka domenowego

Page 3: Domain Specific Language

O mnieO mnie

Konsultant, programujący architekt, trener ITPublikuje w magazynie Programista.Net Early Adopters

.Net Advisory BoardWindows 8

Postsharp MVPPrelegentNależy do SSEPPMCITP Database Developer, Database AdministratorMCPD Windows DeveloperTwórca biblioteki BFsharp

bfsharp.codeplex.com blog.macmichal.pl

Mac Michałmacmichal.pl

Page 4: Domain Specific Language

Domain Specfic LanguageDomain Specfic Language

Page 5: Domain Specific Language

Konfigurowalność aplikacjiKonfigurowalność aplikacji

Możliwości:Opcje włącz/wyłączWymienialne strategieStrategie pisane przez klientaWycinki SQLa

Page 6: Domain Specific Language

Problemy konfigurowalności Problemy konfigurowalności aplikacjiaplikacji

Często zmieniające się wymagania biznesoweBezpieczeństwo

Chcemy by użytkownik mógł wykonać tylko to na co mu pozwolimy

Wydajność Chcemy by techika była szybka i wydajna

Page 7: Domain Specific Language

Problemy konfigurowalności Problemy konfigurowalności aplikacjiaplikacji

Prostota Chcemy by użytkownik mógł bardzo szybko nauczyć się rekonfigurować system (nie zawsze).

Szybki czas reakcji Chcemy skrócić do minimum czas rekonfiguracji systemu – implementacji funkcjonalności.

Page 8: Domain Specific Language

DSLDSL

Czym jest DSL?

„Język programowania przystosowany do rozwiązywania określonej dziedziny problemów, określonej reprezentacji problemu lub określonej

techniki ich rozwiązywania”

Page 9: Domain Specific Language

DSLDSL

string.FormatRegexExpressionExcelCustom

Page 10: Domain Specific Language

SaaSSaaS

Page 11: Domain Specific Language

Najwięksi klienci

$ / Klient

Typowi klienci

Rynek (aktualnie) poza zasięgiemNowy rynek >> aktualny rynek

Co jeśli obniżymy koszt wyprodukowania i dostarczenia oprogramowania?

Page 12: Domain Specific Language
Page 13: Domain Specific Language
Page 14: Domain Specific Language
Page 15: Domain Specific Language
Page 16: Domain Specific Language
Page 17: Domain Specific Language

Modele dojrzałościModele dojrzałości

Page 18: Domain Specific Language

SaaS – modele dojrzałościSaaS – modele dojrzałości

Page 19: Domain Specific Language

SaaS – modele dojrzałościSaaS – modele dojrzałości

Page 20: Domain Specific Language

SaaS – modele dojrzałościSaaS – modele dojrzałości

Page 21: Domain Specific Language

SaaS – modele dojrzałościSaaS – modele dojrzałości

Page 22: Domain Specific Language

SaaS – modele dojrzałościSaaS – modele dojrzałości

Page 23: Domain Specific Language

3 własności3 własności

KonfigurowalnośćMultitenancySkalowalność

Page 24: Domain Specific Language

SAASSAAS

Page 25: Domain Specific Language

Reguły biznesoweReguły biznesowe

Page 26: Domain Specific Language
Page 27: Domain Specific Language

RÓŻNE WYMAGANIA BIZNESOWERÓŻNE WYMAGANIA BIZNESOWE

Page 28: Domain Specific Language

DDDDDD

Page 29: Domain Specific Language

TechnikaliaTechnikalia

Page 30: Domain Specific Language

TechnikaliaTechnikalia

Drzewo parsowaniaDrzewo ASTInterpretacja i generacja kodu

Page 31: Domain Specific Language

Drzewo wyrażeniaDrzewo wyrażenia

Page 32: Domain Specific Language

Drzewo wyrażeniaDrzewo wyrażenia

Page 33: Domain Specific Language

Drzewo ASTDrzewo AST

Page 34: Domain Specific Language

Drzewo ASTDrzewo AST

Page 35: Domain Specific Language

LinkiLinki

http://bfsharp.codeplex.comhttp://cqrssample.codeplex.com/http://dsl.codeplex.com/http://blog.macmichal.pl

Page 36: Domain Specific Language

PytaniaPytania

Page 37: Domain Specific Language

KontaktKontakt

Michał Macwww.macmichal.pl [email protected] 513 95 93 79

Page 38: Domain Specific Language

Dziękuję za uwagęDziękuję za uwagę