Applied MPS

Preview:

DESCRIPTION

 

Citation preview

Использование MPS для разработки веб приложений и не

только

Евгений Щепотьев

2

YouTrack

YouTrack – баг-трекинговая система полностью написанная на MPS

3

Workflow Editor

Workflow Editor – редактор workflow правил для YouTrack

4

Voices Demo Application

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 …

6

Web languages

XML

HTML

JavaScript

Java

CSS

7

Дополнительные языки

• Component language• Dependency Injection language (Spring language)• REST language• Wiki language• StateMachine language• I18N language• KeyStrokes language• Diagramming language• Selenium support language• …

8

StateMachine

9

Diagramming

11

DSL or not DSL• Строгая типизация• Кодогенерация• Смешивание языков• DSL on top of library• Поддержка IDE

12

Строгая типизация• MPS:

• Сгенерированный код:

13

Кодогенерация

JavaScript Java

14

Смесь языков

Ссылка на CSS класс

Ссылка на компонент

Ссылка на property

15

Библиотека

16

Поддержка IDE

18

Недостатки• Очень легко писать языки• Текстоподобный проекционный редактор• Требуется время на разработку языка

19

Паттерныbootstrapping

20

Паттерныперегрузка генераторов

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 скоро

22

Вопросы

?

Contacts:@zecksonEvgenii.Schepotiev@jetbrains.com

Recommended