Ilya
зачем, до конца непонятно
Ilya
Tako
Tako
я за DI
Ilya
Тогда выноси, да.
Roman
@ilchert на всякий случай уточню, я имел ввиду, что IoC containers не нужны. Constructor Injection норм
Ilya
Ilya
ты из тех, у кого особый путь)
Roman
о, ярлычки пошли
Ilya
о, ярлычки пошли
есть куча либ (асп, httpclientfactory...), которые ты скорее всего будешь юзать и страдать за сомнительный профит
Roman
так я ж писал выше, что там где контейнер прибит гвоздями, мы используем его. По крайней мере те его элементы, которые прибиты гвоздями
Roman
Но сами туда ничего не регистрируем
Vasily
Страдают обычно те, кому этот composition root поддерживать
Roman
Но мы вообще пишем на фшарпе — языке для белых господ, великом наречии, недоступном для простых гребцов
Vasily
Ilya
Ilya
имено композишена
Ayrat
Roman
Ilya
потому что менеджить зависимости рутовые, скоуповые, тот ещё аттракцион
Ilya
Ilya
заставь меня страдать)
Vasily
Я так понимаю, с точки зрения Ильи функции, принимающие функции, не катят
Roman
Ilya
Roman
ща, выложу, скину ссыль на онлифанс
Roman
так, возникли трудности, пушто у нас все на ажур функциях, и мы там руками ничего не создаем лол
Ilya
Ну всё понятно.
Roman
самое близкое, что есть — это в веб апп у нас есть тип AppEnv
Ilya
*пытается прикрыться тестами без контейнеров*
Ilya
Хотя в петах я тоже не особо DI использую. если что!
Roman
@ilchert короч на днях я заварганю нормальный пример. Чтоб утереть нос вам всем раз и навсегда
Ilya
О, ещё один репозиторий можно будет в основном чате советовать как пример и триггерить дедушку.
Ilya
Doge
ты из тех, у кого особый путь)
Зависимость от IoC контейнера - это именно асп.нет и спринговые проблемы. Ну и в больших проектах может иметь смысл.
А так уже несколько лет пишу без них код (что на скале, что на том же расте) и как-то проблем в микросервисах от этого нет.
Ilya
Doge
Doge
У меня где-то в 20к строк сервисы нормально без DI работают.
Ilya
Kirill
хочется сделать какой-нибудь сервис с использованием https://github.com/CarterCommunity/Carter, без контейнера
Vasiliy
https://zenrus.ru/
Kirill
лучше яндекс дзена
Kirill
точки входа/выхода можно регистрировать в конетйнере, а логику уже без контейнеров, как вариант
Denis
Denis
Глаз радуется
Крылатый
Shub
Shub
https://discuss.ocaml.org/t/exception-vs-result/6931/36
Doge
Не жили богато — нехер начинать, да.
Я как-то не вижу смысла в IoC контейнере в небольших сервисах.
Своя инфраструктурная цена у них точно будет (в особенности если мы про раст говорим), а пользы соразмерной этой цене может и не быть.
Shub
Вы начинаете двигать goalposts со своими «небольшими»
Shub
Сегодня он небольшой, а через полгода студия виснет
Shub
Все проекты начинаются с hello world, они все небольшие в таком понимании
Doge
Вы начинаете двигать goalposts со своими «небольшими»
Ну если ручное создание графа зависимостей растягивается (или есть ощутимые шансы, что оно таким станет) на некрасивую и здоровенную портянку кода под сотню строк - то вот наверное и пришло время IoC контейнер использовать.
Ну и в аспнет экосистеме на IoC много чего завязано, поэтому там я особо не вижу смысла его не использовать, потому что против подхода экосистемы идти не очень удобно на практике.
Doge
Просто в том же расте каком-нибудь, если хочется IoC - то это либо дин трейты (что плохо на оптимизациях от компилятора скажется), либо дикие макросы, которые точно так же не самая удобная вещь.
В скале картина примерно такая же, где единственный поддерживающий все скаловские типы и паттерны IoC - сам по себе является достаточно громоздкой штукой, которую для заведомо небольшого проекта тянуть не хочется.
IdiocyAcceptance
На самом деле тут не хватает наверное опыта работы с другими языками/экосистемами
IdiocyAcceptance
Язык формирует твоё мышление, а если экосистема в общем и целом одна - то сверху накладывается тоже
IdiocyAcceptance
Чтобы лучше понять как работать без DI, стоит просто поковырять системы без DI в принципе
Shub
Ilya
Ilya
Без стандартного контейнера никуда - даже http запрос нормально не сделать
Shub
Просто в том же расте каком-нибудь, если хочется IoC - то это либо дин трейты (что плохо на оптимизациях от компилятора скажется), либо дикие макросы, которые точно так же не самая удобная вещь.
В скале картина примерно такая же, где единственный поддерживающий все скаловские типы и паттерны IoC - сам по себе является достаточно громоздкой штукой, которую для заведомо небольшого проекта тянуть не хочется.
Оба языка - нишевые, и по всей видимости тупиковые ветви развития, но даже если и нет, то ты все равно не угадаешь, что там будет через 10 лет. Совершенно не удивлюсь, если в русте 50% стдлибы будет занято DI и IoC, от них вполне можно этого ожидать
Doge
Doge
Как бы я не против их принципиально, мне просто кажется. что на данный момент баланс цена/польза в небольших проектах может быть не в пользу существуютщих IoC контейнеров
Doge
Shub
Anatoly
Ilya
Anatoly
Anatoly
Плюс, у меня вот живой пример в проде, откуда мы полли выпиливали, потому что оно только хуже делало