Size: a a a

Elm Lang сообщество разработчиков

2020 October 11

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Но тут уж все обычно ZenCoding/Emmet используют. Эти и пофичастее будут. У меня же всё простое донельзя
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Я эту свою тулзу писал для одного проекта, где нам нужно было на пару с коллегой перевигачивать pixel perfect макет на BEM в хаскельный DSL, чтобы эту идеально мёртвую вёрстку оживить кодом (JS писать был не вариант ;))
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Причём при построении дерева трекались блоки бэмовские и прочие миксы, что сильно ускоряло процесс.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Ну и писать тул было всяко веселее, чем руками перелопачивать HTML — что не сделаешь, лишь бы не работать! :)
источник

YK

Yuri Kostin in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Ну и писать тул было всяко веселее, чем руками перелопачивать HTML — что не сделаешь, лишь бы не работать! :)
Вот уж что правда, то правда)
источник
2020 October 12

NO

Nikolay Okoneshnikov in Elm Lang сообщество разработчиков
Всем добра! Актуально ли использование elm-spa? https://www.elm-spa.dev/guide/getting-started
источник
2020 October 13

AK

Andrey Koppel in Elm Lang сообщество разработчиков
Смотря для чего
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
вопрос к метрам про моделирование доменной области. представим что мы делаем вэбртси приложение. Админ может разрешить или запретить импользование аудио и видео, после чего пользователь может сам включить или выключить свое аудио и видео. Проблема в том, что мы так же должны иметь медиа стрим и этот стрим может существовать только в случае когда хотя бы что-то одно, аудио или видео активно. Как нам смоделировать такую ситуацию в типах чтобы избежать невалидных состояний? Наивное (и неправильное) решение
type Media = Unavailable | Disabled | Active

type alias State =
   { audio : Media
   , video : Media
   , mediaStream : Maybe MediaStream
   }
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Значения-свидетели, которые получаются от смарт-конструкторов
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Стрим будет доступен, только если есть свидетели
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
а можно немного пояснить про свидетелей?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Контроль в рантайме получается?
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
type AudioStream + функция, которая его порождает. Вручную в обход создать стрим нельзя
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
то же для видео
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
но проблема в том, что стрим может быть только один
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
общий для аудио и видео
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
type These a b = None | This a | That b | These a b
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
makeStream : These Audio Video -> Maybe Stream
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Суть тут в том, что значение Audio и Video можно было получить только определённым образом
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
а что у нас будет в These варианте... там получится сразу два стрима
type AudioStream = AudioStream Stream
type VideoStream = VideoStream Stream

type MediaStream AudioStream VideoStream
   = None
   | Audio AudioStream
   | Video VideoStream
   | AudioVideo ?
источник