1 / 38

Domain Specific Language

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

naava
Télécharger la présentation

Domain Specific Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DomainSpecificLanguage Mac Michał Programujący architekt, konsultant

  2. Agenda • Czym jest DSL? • Przykłady użycia DSLa • Architekutra SaaS • Domain Driven Design • Technikalia • Implementacja przykładowego języka domenowego

  3. 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

  4. DomainSpecfic Language

  5. Konfigurowalność aplikacji • Możliwości: • Opcje włącz/wyłącz • Wymienialne strategie • Strategie pisane przez klienta • Wycinki SQLa

  6. 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

  7. 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.

  8. 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”

  9. DSL • string.Format • Regex • Expression • Excel • Custom

  10. SaaS

  11. Jak zrealizować ideę długiego ogona w IT? $ / Klient Najwięksi klienci Co jeśli obniżymy koszt wyprodukowania i dostarczenia oprogramowania? Typowi klienci Nowy rynek >> aktualny rynek Rynek (aktualnie) poza zasięgiem

  12. Modele dojrzałości

  13. SaaS – modele dojrzałości

  14. SaaS – modele dojrzałości

  15. SaaS – modele dojrzałości

  16. SaaS – modele dojrzałości

  17. SaaS – modele dojrzałości

  18. 3 własności • Konfigurowalność • Multitenancy • Skalowalność

  19. SaaS

  20. Reguły biznesowe

  21. RÓŻNE WYMAGANIA BIZNESOWE • Total = Quantity * ProductPrice Stacja benzynowa • Quantity = Total / ProductPrice (z dokładnością do obsługi dzielenia przez 0)

  22. DDD

  23. Technikalia

  24. Technikalia • Drzewo parsowania • Drzewo AST • Interpretacja i generacja kodu

  25. Drzewo wyrażenia

  26. Drzewo wyrażenia

  27. Drzewo AST

  28. Drzewo AST

  29. Linki • http://bfsharp.codeplex.com • http://cqrssample.codeplex.com/ • http://dsl.codeplex.com/ • http://blog.macmichal.pl

  30. Kontakt • Michał Mac • www.macmichal.pl • kontakt@macmichal.pl • 513 95 93 79

  31. Dziękuję za uwagę

More Related