Size: a a a

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

2019 June 27

ИБ

Игорь Брылёв in Elm Lang сообщество разработчиков
Встречал позицию, что, мол, экспортировать конструктор типа не самая лучшая практика, а лучше экспортировать функцию. По-моему у Ричарда Фельдмана. Какие минусы в экспортировании конструктора?
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
если не экспортировать конструкторы то можно создавать opaque тайпы
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
очень полезная тема когда используется подход "Making impossible state impossible"
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Если не экспортировать, то нельзя будет паттерн-матчить
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Anton Komissarov
очень полезная тема когда используется подход "Making impossible state impossible"
Это не про функции говорилось. Если экстраполировать на функции, то и в JS "можно сделать невалидный стейт невыразимым"
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Почти всегда, когда хочется что-то скрыть, лучше этого не делать.
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Это не про функции говорилось. Если экстраполировать на функции, то и в JS "можно сделать невалидный стейт невыразимым"
не понял...
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Замена type safety непрозрачными функциями — кривая дорожка
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
"Хочется защитить от 'не тех' параметров в конструкторе — вырази на типах так, чтобы нельзя было сконструировать такие неверные параметры"
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Вот это make impossible. А не "прячем конструктор и вывешиваем функцию" :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Последниый вариант можно рассматривать, когда выразительности системы типов уже не хватает, но считать это хорошим паттерном — плохо
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
не согласен, в реальных случаях очень сложно избавиться от "не тех" параметров с помощью типов
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Ну так нужно попытаться хотя бы :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
А не "Фельдман говорил — прятать хорошо, вот и мы будем прятать"
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Ну так нужно попытаться хотя бы :)
у меня достаточно много повседневного опыта, который очень положительный
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
приложение в проде 3-й год
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
opaque тайпы наше всё
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
"Ошибка выжившего" же :)
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
ладно, тут сложно спорить
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
мы попробовали без
источник