applied mps
DESCRIPTION
TRANSCRIPT
![Page 1: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/1.jpg)
Использование MPS для разработки веб приложений и не
только
Евгений Щепотьев
![Page 2: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/2.jpg)
2
YouTrack
YouTrack – баг-трекинговая система полностью написанная на MPS
![Page 3: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/3.jpg)
3
Workflow Editor
Workflow Editor – редактор workflow правил для YouTrack
![Page 4: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/4.jpg)
4
Voices Demo Application
![Page 5: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/5.jpg)
5
Фреймворк• Стек языков для разработки веб-приложений:
o HTML languageo JavaScript languageo CSS language
• Языки для доступа к базе данных:o Collections language
• DNQ (Data Navigation & Query)o Business Rules language
• Вспомогательные языки:o Component languageo Dependency Injection language (Spring language)o REST languageo Wiki languageo StateMachine languageo …
![Page 6: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/6.jpg)
6
Web languages
XML
HTML
JavaScript
Java
CSS
![Page 7: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/7.jpg)
7
Дополнительные языки
• Component language• Dependency Injection language (Spring language)• REST language• Wiki language• StateMachine language• I18N language• KeyStrokes language• Diagramming language• Selenium support language• …
![Page 8: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/8.jpg)
8
StateMachine
![Page 9: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/9.jpg)
9
Diagramming
![Page 10: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/10.jpg)
11
DSL or not DSL• Строгая типизация• Кодогенерация• Смешивание языков• DSL on top of library• Поддержка IDE
![Page 11: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/11.jpg)
12
Строгая типизация• MPS:
• Сгенерированный код:
![Page 12: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/12.jpg)
13
Кодогенерация
JavaScript Java
![Page 13: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/13.jpg)
14
Смесь языков
Ссылка на CSS класс
Ссылка на компонент
Ссылка на property
![Page 14: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/14.jpg)
15
Библиотека
![Page 15: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/15.jpg)
16
Поддержка IDE
![Page 16: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/16.jpg)
18
Недостатки• Очень легко писать языки• Текстоподобный проекционный редактор• Требуется время на разработку языка
![Page 17: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/17.jpg)
19
Паттерныbootstrapping
![Page 18: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/18.jpg)
20
Паттерныперегрузка генераторов
![Page 19: Applied MPS](https://reader034.vdocuments.net/reader034/viewer/2022051323/54b61b904a795950268b4750/html5/thumbnails/19.jpg)
21
Ссылки• YouTrack
o http://www.jetbrains.com/youtrack/
• MPSo http://www.jetbrains.com/mps/
• MPS Additional Languageso http://confluence.jetbrains.net/display/MPS/MPS+Languages+Repositor
y
• Webr-DNQo скоро