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 Publikuje w magazynie Programista.Net Early Adopters.Net Advisory Board Windows 8 Postsharp MVP Prelegent Należy do SSEPP MCITP Database Developer, Database Administrator MCPD Windows Developer Twórca biblioteki BFsharp bfsharp.codeplex.com blog.macmichal.pl Mac Michał macmichal.pl
Domain Specfic Language
Konfigurowalność aplikacji Możliwości: Opcje włącz/wyłącz Wymienialne strategie Strategie pisane przez klienta Wycinki SQLa
Problemy konfigurowalności aplikacji Często zmieniające się wymagania biznesowe Bezpieczeństwo Chcemy by użytkownik mógł wykonać tylko to na co mu pozwolimy Wydajność Chcemy by techika była szybka i wydajna
Problemy konfigurowalności aplikacji 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.
DSL 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”
DSL string.Format Regex Expression Excel Custom
SaaS
Najwięksi klienci $ / Klient Typowi klienci Rynek (aktualnie) poza zasięgiem Nowy rynek >> aktualny rynek Co jeśli obniżymy koszt wyprodukowania i dostarczenia oprogramowania?
Modele dojrzałości
SaaS – modele dojrzałości
3 własności Konfigurowalność Multitenancy Skalowalność
SAAS
Reguły biznesowe
RÓŻNE WYMAGANIA BIZNESOWE
DDD
Technikalia
Technikalia Drzewo parsowania Drzewo AST Interpretacja i generacja kodu
Drzewo wyrażenia
Drzewo AST
Linki
Pytania
Kontakt Michał Mac
Dziękuję za uwagę