Domain Specific Language
description
Transcript of Domain Specific Language
![Page 1: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/1.jpg)
Domain Specific Domain Specific LanguageLanguage
Mac MichałMac Michał
Programujący architekt, konsultantProgramujący architekt, konsultant
![Page 2: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/4.jpg)
Domain Specfic LanguageDomain Specfic Language
![Page 5: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/5.jpg)
Konfigurowalność aplikacjiKonfigurowalność aplikacji
Możliwości:Opcje włącz/wyłączWymienialne strategieStrategie pisane przez klientaWycinki SQLa
![Page 6: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/9.jpg)
DSLDSL
string.FormatRegexExpressionExcelCustom
![Page 10: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/10.jpg)
SaaSSaaS
![Page 11: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/12.jpg)
![Page 13: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/13.jpg)
![Page 14: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/14.jpg)
![Page 15: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/15.jpg)
![Page 16: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/16.jpg)
![Page 17: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/17.jpg)
Modele dojrzałościModele dojrzałości
![Page 18: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/18.jpg)
SaaS – modele dojrzałościSaaS – modele dojrzałości
![Page 19: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/19.jpg)
SaaS – modele dojrzałościSaaS – modele dojrzałości
![Page 20: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/20.jpg)
SaaS – modele dojrzałościSaaS – modele dojrzałości
![Page 21: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/21.jpg)
SaaS – modele dojrzałościSaaS – modele dojrzałości
![Page 22: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/22.jpg)
SaaS – modele dojrzałościSaaS – modele dojrzałości
![Page 23: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/23.jpg)
3 własności3 własności
KonfigurowalnośćMultitenancySkalowalność
![Page 24: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/24.jpg)
SAASSAAS
![Page 25: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/25.jpg)
Reguły biznesoweReguły biznesowe
![Page 26: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/26.jpg)
![Page 27: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/27.jpg)
RÓŻNE WYMAGANIA BIZNESOWERÓŻNE WYMAGANIA BIZNESOWE
![Page 28: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/28.jpg)
DDDDDD
![Page 29: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/29.jpg)
TechnikaliaTechnikalia
![Page 30: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/30.jpg)
TechnikaliaTechnikalia
Drzewo parsowaniaDrzewo ASTInterpretacja i generacja kodu
![Page 31: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/31.jpg)
Drzewo wyrażeniaDrzewo wyrażenia
![Page 32: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/32.jpg)
Drzewo wyrażeniaDrzewo wyrażenia
![Page 33: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/33.jpg)
Drzewo ASTDrzewo AST
![Page 34: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/34.jpg)
Drzewo ASTDrzewo AST
![Page 35: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/35.jpg)
LinkiLinki
http://bfsharp.codeplex.comhttp://cqrssample.codeplex.com/http://dsl.codeplex.com/http://blog.macmichal.pl
![Page 36: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/36.jpg)
PytaniaPytania
![Page 38: Domain Specific Language](https://reader035.fdocuments.net/reader035/viewer/2022070407/5681438f550346895db00cd5/html5/thumbnails/38.jpg)
Dziękuję za uwagęDziękuję za uwagę