Vladimir
я говорю про случай когда функция состоит только из вызов внутренних функций и больше ничего
Vladimir
а остальные случаи можно к этому случаю привести
Shub
а зачем нам такая функция? это и не функция вовсе, это просто оператор композиции в таком случае
Shub
Vladimir
Anonymous
Shub
но во-первых, речь идет про модификацию существующего кода, а во-вторых, надо еще суметь найти баланс и не скатиться в сотни функций-пустышек, которые просто скрывают логику цепочкой вызовово
Shub
Shub
где-то все равно будет находится место, где нужно писать логику, пусть даже логику связывания других компонентов
Vladimir
Только если функции чистые.
да даже кстати если и нечистые, мы же за dependency rejection, нас интересует unit test только чистых функций
Shub
иначе у тебя для тривиальных случаев на экране будет открыто 5 разных файлов
Vladimir
Shub
до сих пор такой способ обнаружен не был
Vladimir
Shub
щас есть некоторое количество способов, решающие проблему частично
Shub
начиная от декомпозиции задачи на компоненты так, чтобы число зависимостей отдельного компонента было равно единице и заканчивая подходом к тестированию
Vladislav
Чот тяжело конечно _правильно_ код писать на фп
Shub
совершенно верно
Shub
мне кажется это оттого, что ни одна теория не принимает во внимание изменения.
Shub
в теоркате если алгебра сформулирована - она неизменна, как неизменно определение синуса
Shub
в бизнесе изменения льются непрерывным потоком
Shub
когда-нибудь, конечно же, и фп наберет те же объемы, которые приведут к качественному скачку
Shub
а пока что мы early adopters со всеми страданиями, к этому статусу прилагаемыми
Shub
проблема в “как с этим всем теперь взлететь”
Shub
Vladislav
Vladislav
Оно же только мейнстримом становится
Vladislav
Условно
Shub
ну дело-то не только во времени. надо еще и людей побольше
Anonymous
Roman
Shub
Shub
как конкретно подсунуть?
Anonymous
Anonymous
Я не верю в какой-то Единственно Правильный Способ (ТМ). Чувство меры и ощущение прекрасного тебе в помощь.
Vasiliy
Rebel Distillers выпустила брендированную водку по Doom, бутылка которой стоит 45 фунтов стерлингов (около 3600 рублей).
Теперь фанаты франшизы точно смогут напиться до чёртиков.
https://dtf.ru/life/68312
Anonymous
Но чисто логически рассуждая, в каждом конкретном случае у тебя будут и g, и h и максимум что можно сделать - некий пул переиспользования оных. Не знаю, насколько эти рассуждения вообще полезны или нет.
Shub
Shub
ну точнее, хер бы с ней, с идеологической чистотой и с прочим, шурупчик гибридный язык и позволяет юзать классы, где это реально необходимо
Shub
вся проблема в мешках
Shub
в этих гадских кожаных бипедальных мешках
Vladislav
Shub
Ну в плане в области тырпрайз
без всякого ехидства рекомендую почитать историю лисп-машин и связанной с ней индустрией и коммерцией. мемуары и интервью покойного Dan Weinreb, например, который работал в Symbolic
Shub
был, был у фпшечки свой звездный час, свои 5 минут славы
Vladimir
как конкретно подсунуть?
смотри в функции есть куча кода и вызов этих двух фукнций, ты весь код кроме этих вызовов переносишь в третью и получается родительская фукнция это композиция трех которую тестировать уже не надо - профит
Shub
Vladislav
Shub
(минорный) - пролиферация тупых модулей в стиле Logic.ApplicationBlah, которые непонятно куда складывать (впрочем наши джуны не растерялись и стали складывать по принципу “где нажрался - там и проспался”)
Shub
второй - это пролиферация функций-пустышек, глядя на которые непонятно, зачем их использовать и почему бы мне не вызвать Logic.* напрямую?
Shub
то есть абстрагирование как бы сломано
Shub
inb4 private и “кладите рядом”, но это как раз попытки проэмулировать ооп из изоленты и палок
Vladimir
сча уходить надо, позже обсудим)
Romɑn
Shub
это справедливо в общем смысле слова, абсолютно с тобой согласен
Shub
однако интересно посмотреть на инкапсуляцию в чисто фп стиле, без эфшарповых методов на рекордах
Romɑn
Shub
а в моей команде для этого есть взвод фанатиков
Romɑn
Но в целом, сокрытие - это не попытка сделать ооп, это попытка скрыть)
Shub
воспитанных с одной целью - умереть от недопущения ооп в любом виде
Romɑn
Shub
точнее, не в моей команде даже. на нашем проекте
Anonymous
Anonymous
Она не нужна
Shub
в математике
Anonymous
Ну в пределе функциональный язык это математика в ее жалком подобии
Shub
собственно, я наблюдаю это на практике. идеоматический код на хаскеле страдает всеми детскими болячками оопешного кода из 90х
Anonymous