вопрос: до какой степени я могу использовать мой опыт из хаскеля в скале, если я пишу на тайплевел стаке?
Ридер действительно не очень нужен имхо. Пишу много лет на скале и ни разу не использовал. Наверняка сейчас кто-то придет и приведет пример, когда ридер полезен. Но в качестве rule of thumb - можно ридер игнорировать. DI с помощью объектов и конструкторов реально очень мощная и удобная вещь. Когда пишешь на яве/скале - воспринимаешь как данность. Но начинаешь ценить после того как покодил на языке без них
Не сказал бы что явисты ценят DI с помощью объектов и конструкторов
Конструктор предпочтительнее, чем автовайред
у вас тоже конструкторы? просто это обычно маргинальная идея в жава-комунити
Не маргинальная. Автовайред последний раз видел лет 6 назад
теперь понял, инжект в поле хуже чем конструктор, но иджект конструктора лучше всего
Ну вайрит спринг конечно. А сами зависимости все с иммутабельными пропертями и конструкторами
Спору нет, но как я понял там речь ишла не только о ридере а в целом о навороченых штуках. Нормальная тема в хаскеле для какого то сложного домена\задачи из трансформеров создавать свою систему эффектов, и там неизбежно приходишь к тому что так или иначе там заваляется парочка трансформеров в т.ч и ридер.
В дотнете и в angular/(typescript + inversify) такие же пироги. Только в дотнете комьюнити преследует какой то пуризм, из за чего из коробки нету автовайринга из класспаса как в джава. Хочешь автовайринг - делай сам.
что такое автоварийнг из класпаса?
За тебя спринг автоматически регистрирует все классы помеченные как @service/@component/@controller ... В дотнете тебе нужно в Program.cs руками писать: builder.services.AddTransient<IAbstraction, Realization> ();
У спринга чтобы это работало всегда и случайно не притащилась не та зависимость нужно дополнительно строками размечать. Какой плюс у такого вайринга относительно конструкторов не понятно.
Когда-то ZIO[R, E, A] можно было рассматривать как ридер отнисительно R с соответствующим DI через ридер. Но сейас все поменялось, после отказа от Has. Да и принято сейчас в ZIO через конструкторы внедрять автоматически через ZLayer.
Обсуждают сегодня