Pull to refresh
34
0
Юрий Степин @enchantinggg

User

Send message

Я думаю название может запутать, потому что JSON API спецификация имеет такое же название, но в данном случае этот API ее не поддерживает.

Ребят из моей группы. Мои — 2 последних

Вспомнил еще проекты


  1. Мобильное приложение для букинга билетов(фейковое, без интеграции в рабочие сервисы)
  2. Мобильное приложение для какой-то crm, где главной фишкой была анимированная менюшка(они сами так сказали)
  3. "WiFi" оркестр ( есть устройства, они подключаются по wifi друг к другу и можно играть вместе). Идея была крутая, но до конца не реализовал
  4. WiFi скайп(возможность писать, звонить всем пользователям с установленным приложением в текущей локальной сети). Звонки реализованы на datagram сокетах
  5. TeamLeader — мобильное приложение с сервером на django( аналог слака )
Пишу как выпускник. Для новичков — хорошее начало, объясняется как правильно гуглить и как правильно задавать вопросы. Сначала небольшой курс Java, потом — Android азы. Буквально азы, чтобы сделать приложение, которое не стыдно в конце показать, этого не хватит. Проект на 7 / 10 баллов был «тамагоч»: покормить, уложить спать, сводить в туалет.
В целом условия чудесные: ноуты быстрые, студию тянут чудесно. В придачу коврики приятные.
Закончил курс в прошлом году, в СПБ бесполезный сертификат абсолютно. В прочем, бесполезный практически везде :)
P.S. Золотой сертификат имею
И действительно, спасибо.
Вообще, если покодить в нормальном режиме(не в режиме разработки нового языка, а в режиме разработки программ на языке из MPS), то через недельку шпилишь уже как в обычном текстовом редакторе.
У меня работает только с ctrl + ↑ :c
Я думаю, это сделано специально в силу того, что при копировании куска AST и вставления в другой редактор не было «пропавших кусков AST». То есть можно выделить только узлы. Ну и еще есть такая штука как кастомная проекция(Например, в sample проекте multipleProjections)
image
Я думаю не все текстовые редакторы поддерживают таблицы, но вот, как выглядел бы текст этой программы, если бы Вы его скопировали:
@export(namespace = fdfd)
workflow container org.jetbrains.workflow
tabular workflow simpleIssueTracking
event Close; event Reopen;

structural workflow advancedIssueTracking
event Close; event Verify; event Reopen;

state Open; -> Closed
state Open; -> Open

state Closed; -> Open
state WaitingVerification; -> Closed
-> Open

state Closed; -> Open

Да, я знаю про racket, но в данном случае немного разные задачи: если с racket можно создать язык от 0 до парсера, лексера, интерпретатора и вообще весь, но его нужно писать руками, то MPS позволяет обойтись без парсинга текста. Конечный язык можно экспортировать как плагин на платформу Intellij Idea и писать в ней код, как в MPS.
Используйте хоткей ctrl + w для выделения. Каждое новое нажатие ctrl + w выделяет текущий узел AST и родительский.

Weather prediction rules for Saint Petersburg
[ 21 : 23 ] {
temperature = 23.3 °C
}
[ 22 : 15 ] {
temperature = 80.2 °F
}

Скопировать текст можно без проблем, а вот со вставлением могут возникнуть небольшие проблемы: нужно будет вручную все dependencies зарезолвить. Я прикрепляю картинки чтобы читатель был в контексте MPS, а текстовая форма это как то… Отдаленно.

Я не хочу делать предсказания осмысленными — цель уроков задеть как можно больше актуальных тем в MPS, а не написать готовый продукт.

Да, если модель языка описана в MPS.Например, уже описана Java, она называется baseLanguage

JSONAPI спецификация включает в себя возможность кастомного выбирания зависимостей. То есть если у нас есть endpoint, который возвращает пользователя, и мы хотим получить всех его друзей, то мы добавляем в параметр запроса `include=friends`, и JSONAPI возвращает relation объект, который описывается связь, а так же сами данные друзей в объекте `include`.
Самый большой гемор с JSONAPI — собирать все данные, на мобильных приложениях это оказывается довольно весомо, тем более на ReactNative, где код выполняется на JS'e и слегка подтормаживается. GraphQL очень хорош для мобильных приложений, где клиент должен быть максимально быстрым и тупым. Вся структура ответа изначально известна, красивая чистая верстка без мучений с линковкой данных.
Ну смотрите, практической пользы от языка Weather не будет, но на работе мы используем несколько языков, написанных в MPS для того, чтобы генерировать django сервер + всякий муторный код для мобильных приложений. Для стандартных вещей наша штучка очень хороша, позволяет концентрироваться на верстке разработчикам приложений и на кастомных endpoint'ах серверникам.Сначала мы использовали костыльный генератор на node.js, но MPS намного удобнее и практичнее, и, естественно, мощнее
Например, потому что можно будет не переписывать код на другой ЯП в зависимости от платформы (на JavaScript, например, а писать на 1 языке и писать для него языки -расширения, которые будут переводить AST Weather в AST другого языка. Также язык нужно писать с расчетом декларативность, лаконичность и расширяемость. Писать языки легко, а время сокращает.
Хорошо, в дополнении поста я постараюсь обосновать.
Через пару дней я дополню пост, где подробно обосную зачем мы пишем Weather и в чем его преимущества.
Здравствуйте, логика моделей языков в MPS такова, что у языков есть аспекты TextGen — они отвечают за перевод AST в текстовую форму, а аспект Generator отвечает за Model 2 Model перевод. Так что ecmascript4mps транспайлерится в текст js кода ES5

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity