Sergey
азаза затралел
Sergey
Dr. Friedrich
Vladimir
Луп отвечает за страницу
Окей, то есть есть отдельный сторадж где хранится все что не отвечает за перерисовку страницы?
Vasily
Ну есть локальный сторейдж, да
Vasily
Если вопрос будет про DI
Vasily
Его там нет
Vasily
Там тупо Storage.User.get.....
Vasily
Сценариев, когда надо внезапно что-то прокинуть на другую страницу, нет
Vasily
У каждой страницы есть метод init
Vasily
КОторый ее инициализирует перед показом
Vasily
Концепт есть у меня на гитхабе
Vasily
https://github.com/vshapenko/MultiApp
Vladimir
Ну есть локальный сторейдж, да
ну наконец-то) это меня и интересовало)
Vasily
удивительно)
Ну я таких не смог особо придумать
Vasily
Когда надо, исполняю колбеки по закрытию страницы
Shub
Да норм же, eDSL - это не всегда прям другой синтаксис
dsl как средство решения прикладной задачи - еще ни разу не было хорошим решением, будь он встраиваемый или внешний. пользователи в гробу видели программирование, потому что для этого наняли программистов. а программисты в гробу видели dsl, потому что они владеют полным языком с куда большей гибкостью. dsl-и имели свои пять секунд славы как и экспертные системы, логическое программирование, case-системы и прочие экспонаты музея "Курьезы кибернетики"
Shub
eDSL - это embedded DSL, да?
Doge
eDSL - это embedded DSL, да?
Ага. Любая библиотека - это eDSL своего рода.
Shub
пожалуй не соглашусь
Doge
пожалуй не соглашусь
Даже то же стремление говорить по коде на языке доменной модели - это уже стремление к eDSL в какой-то мере
Vladislav
Сценариев, когда надо внезапно что-то прокинуть на другую страницу, нет
у нас оно прокидывается как данные кейса DU (страницы) иногда
Крылатый
Прям рили решает прикладную задачу)
Shub
библиотека не меняет синтаксис моего языка
Shub
это стремление к абстракции
Shub
eDSL тоже не обязан
а почему он тогда dsL?
Denis
какой нибудь ZIO заставляет тебя писать for { }
Doge
а почему он тогда dsL?
Потому что это какое-то domain specific подмножество языка-хоста, но с добавлением своих терминов.
Igor
Doge
а почему он тогда dsL?
Т.е. любые парсер комбинаторы - это самый настоящий eDSL. Как пример.
Крылатый
Ваще, SQL тоже DSL. ;P
Крылатый
(Или я слишком широко понимаю этот термин в данной дискуссии?)
Shub
какой нибудь ZIO заставляет тебя писать for { }
об этом и речь, просто запутались в терминологии. не путайте квантор существования с квантором всеобщности: любой eDSL - это библиотека (чаще всего), но не любая библиотека - это dsl.
Doge
Любое использование LINQ в шарпе и CE в F# - это использование eDSL
Shub
Ваще, SQL тоже DSL. ;P
он не встроенный
Doge
Да те же джавовые стримы - это тоже eDSL
Shub
да-да
Shub
только все три примера - dsl общего назначения. freemonads\mtl -
Shub
это крайне специфические dsl
Doge
это крайне специфические dsl
Так tagless final или фри монады - это один из возможных инструментов для написания eDSL
Shub
одно дело уметь трансформировать вообще любой поток, другое дело пытаться закодить dsl для моей конкретной прикладной задачи
Shub
Так tagless final или фри монады - это один из возможных инструментов для написания eDSL
это да, но я говорю о том, что идея решать прикладную задачу (перекладывания жсонов) написанием edsl - так себе идея
Shub
потому что в 99% случаев спецификаций нет, требования растут по мере роста проекта, через полгода разработки 80% усилий - это попытки чинить dsl, придуманный без понимания домена вообще
Shub
см. тот же скалачатик, где подавляющее большинство вопросов - вопросы в стиле "как мне вылезти из петли, которую я сам себе связал?"
Doge
потому что в 99% случаев спецификаций нет, требования растут по мере роста проекта, через полгода разработки 80% усилий - это попытки чинить dsl, придуманный без понимания домена вообще
eDSL в таком случае выступает просто как подход к проектированию приложения, где ты его собираешь из набора eDSL. И как любой из подходов к проектированию - на нём можно сделать хрень.
Shub
не знаю, может там пороблено, но во всех компаниях, где была скала, команда, выбравшая котов\скалаз, никогда ничего не деливерила. вот вообще
Shub
команды выбравшие что-то тупое типа play - те деливерили. криво-косо, но хотя бы что-то
Doge
можно. но почему-то с mtl\tf хрень получается чаще. точнее, в подавляющем большинстве случаев получается хрень
Ну я бы не сказал. MTL в хаскеле норм работает, если не нужно городить свои трансформеры. Коты в скале - тоже. Т.е. на котах в прод писал, в tf стиле, каких-то особых проблем с деливером value не заметил.
Doge
Как и везде, свои подводные камни есть, но и свои плюсы тоже.
Vasily
Я как-то пару лет наблюдал за командой в загончике напротив. Парни излучали энтузиазм, писали на дотнете на самых продвинутых технологиях, но за полтора года ни одного релиза
Shub
там же видел Тима Брея, писавшего на голанге, лол
Shub
Как и везде, свои подводные камни есть, но и свои плюсы тоже.
ну я с этим согласен. я даже до сих пор допускаю, что где-то что-то крупное на эту тему пропустил
Shub
завидовал небось
ну это как завидовать профессиональному игроку в покер
Shub
я вчера например пошел и прочел статьи Гранина, после чего укрепился в мнении, что даже если бы это работало - это стоило бы сломать
Vasily
завидовал небось
Мне обычно приходится работать, к сожалению.
Doge
20$ говорят, что твой код будет переписан приблизительно через месяц после твоего ухода из компании
Я писал дофига на том же стандартном энтерпрайзном шарпе и каких-то катастрофичных проблем в работе с эффектами в mtl стиле я так и не увидел. Вполне рабочий подход (с некоторыми но - если речь про скалу, но обходимыми). А про final tagless - я как-то котлинистам на нём eDSL помог проектировать, все остались предельно довольны результатом. Надо всё же разделять final tagless как подход к проектированию eDSL и mtl - как eDSL над эффектами.
Doge
я вчера например пошел и прочел статьи Гранина, после чего укрепился в мнении, что даже если бы это работало - это стоило бы сломать
Гранин предвзят. То есть я писал в своё время на фри монадах, так как говорит об этом Гранин. Достаточно сомнительный экспириенс, если честно. В особенности, когда речь заходит про интеграцию либ и т.п.
Shub
Я писал дофига на том же стандартном энтерпрайзном шарпе и каких-то катастрофичных проблем в работе с эффектами в mtl стиле я так и не увидел. Вполне рабочий подход (с некоторыми но - если речь про скалу, но обходимыми). А про final tagless - я как-то котлинистам на нём eDSL помог проектировать, все остались предельно довольны результатом. Надо всё же разделять final tagless как подход к проектированию eDSL и mtl - как eDSL над эффектами.
я бы с удовольствием его разделял, если бы он появлялся в дикой природе. а в дикой природе он чаще появляется не как подход к проектированию, а как типострадания с нулевым эффектом, простите за каламбур. кроме того, ты все же подразумеваешь, что дсл - это хорошо и что надо больше дсл, ну практически под каждый проект свой дсл
Doge
То есть взять для контроля эффектов eDSL - это нормальный вариант, если хочется контроля эффектов.
Shub
Нет, eDSL - там, где они позволяют что-то выиграть.
для того, чтобы вообще можно было иметь dsl - хост язык должен иметь возможности для этого, что-то побольше, чем do или for {}.
Shub
То есть взять для контроля эффектов eDSL - это нормальный вариант, если хочется контроля эффектов.
это у вас кодовая фраза такая, что ли? какой контроль и каких эффектов?
Shub
eDSL можно делать и без смены синтаксиса языка
тогда это не dsl, не так ли? тогда это просто хостовый язык
Doge
тогда это не dsl, не так ли? тогда это просто хостовый язык
Это eDSL, в нём можно взять какое-то подмножество синтаксиса хостового языка.