Size: a a a

2021 April 14

VS

Vladimir Shchur in F# Chat
появляется много доп кода с ним работать, доп код для сериализации, для доставания значения. Ну и подумай что будет вдруг завтра бизнес требования это валидация не 50 а 55 и тебе по всей кодобазе придется все переписывать
источник

P

Pavel in F# Chat
С другой стороны, если у поля сущности изменить тип, то дальше ща счёт вывода типов оно само, ручками менять придется минимум
источник

VS

Vladimir Shchur in F# Chat
ой на вывод типов особо не надейся) примерно в половине случае тип приходится руками указывать
источник

P

Pavel in F# Chat
Но Пойнт понятен, надо уметь оценивать бонумюсы от контроля, вероятность изменения требований, сложность проведения изменений в коде
источник

VS

Vladimir Shchur in F# Chat
👍
источник

P

Pavel in F# Chat
Ну хз, на моей практике при изменении типов в рутовых точках (что редко) дальше либо само, либо за счёт контроля компилятора на полуавтомате правится
источник

P

Pavel in F# Chat
Не приходя в сознание можно
источник

VS

Vladimir Shchur in F# Chat
ты значит очень мало юзаешь поля рекордов) везде где record.Field нужен вывод) или object.Method
источник

VA

Vagif Abilov in F# Chat
Проблема конкретно со string50 в том, что такой тип не отражает реальных требований предметной области. Т.е. желательно указать, какой категории данных этот тип соответствует: адресу, номеру телефона, фамилии ит.п. В этом случае у меня лично никаких проблем с этим типом не было бы и я активно (и с успехом) использую в наших проектах типы UncPath и UserName, более того, под такие типы прекрасно писать property-based тесты, которые сгенерят реальный IP-adress или осмысленный UserName, а не набор бессмысленных символов.
источник

VA

Vagif Abilov in F# Chat
Разумеется, у всего есть своя цена, и я осознанно плачу эту цену (например, небольшая потеря быстродействия, на которое мне наплевать, когда сервис занят перекачиванием гигабайтов данных).
источник

VA

Vagif Abilov in F# Chat
Ну вот это единственный принципиальный недостаток: смена 50 на 55. С кодом для сериализации я не просто уживаюсь, я его предпочитаю.
источник

VA

Vagif Abilov in F# Chat
Что мне представляет совершенно неуместным (даже во флудилке, это все же фшарп) - когда раз за разом идет высмеивание в стиле армейской дедовщины подхода, подпадающего максимум под "it depends", но во всяком случае имеющего право на существование и сознательно выбранного разработчиками, пишущими работающий код.
источник

VA

Vagif Abilov in F# Chat
Это я брюзжу, конечно, но сюда и во флудилку заходит много нового народа и "влашин мудак" - не самый лучший способ их введения в курс дела
источник

P

Pavel in F# Chat
Согласен, лучше для конкретного реквизита сущности не string50, а типа EmailAdress и тп
источник

VS

Vladimir Shchur in F# Chat
Итак, первые заметки про sutil как обещал) Там основная фишка это отдельный стор, который можно создать в любом месте, хоть локально, хоть глобально. Хелловорлд весит 50кб. Продолжаю наблюдения)
источник

EB

Eyes in the Box in F# Chat
я неочень понял про локально и глобально
источник

АВ

Андрей Вилинский... in F# Chat
тю - рефактор ренейм или греп реплейс!
робуст архитекча!
источник

VS

Vladimir Shchur in F# Chat
ну ты где угодно пишешь let x = Store.bind ... и юзаешь этот x как Observable. Хочешь в любой функции его определяй, хочешь в модуле общем
источник

SN

Shub Niggurath in F# Chat
Месье телепат и знает наперёд, что должно уметь env? Или это намёк, что ты пойдёшь читать исходники и писать нефальсифицируемые тесты?
источник

EB

Eyes in the Box in F# Chat
все, кажется понял
источник