Size: a a a

Scala User Group

2020 January 08

λ

λoλegΥch in Scala User Group
так что опять же это все оопные мифы
источник

λ

λoλegΥch in Scala User Group
функция может принимать больше аргументов чем ей нужно - это не желательно но допустимо
источник

λ

λoλegΥch in Scala User Group
по сути это и есть диай
источник

λ

λoλegΥch in Scala User Group
def f: Context => arguments => result
источник

λ

λoλdog in Scala User Group
λoλegΥch
функция может принимать больше аргументов чем ей нужно - это не желательно но допустимо
не понял этой фразы конечно
источник

λ

λoλegΥch in Scala User Group
ну смотри, есть функция a=>b=>c, можно a=>b схлопнуть в Context и заодно добавить в него какой-нибудь x чтобы другие функции тоже Context могли принять
источник

λ

λoλegΥch in Scala User Group
не желательно, но допустимо так как популяризировано спрингом
источник

λ

λoλegΥch in Scala User Group
два стула - или точное указание зависимостей функции или простой вызов всех функций с одни аргументом
источник

AH

Ayrat Hudaygulov in Scala User Group
λoλegΥch
по сути это и есть диай
Ну вот чтобы руками не передавать всю срань через весь колстек люди и придумали в начале сервис локаторы всякие, потом типо контейнеры из которых по сигнатуре можно было доставать нужное, потом эти контейнеры научились по графу зависимостей собирать зависимости любой сложности, добавили свистоперделок со скоупами, именоваными регистрациями, лямбдами и пр.

И все это чтобы НЕ ПЕРЕДАВАТЬ АРГУМЕНТЫ РУКАМИ ЧЕРЕЗ ВСЮ ПРОГРАММУ.

А ты предлагаешь передавать аргументы через всю программу
источник

λ

λoλegΥch in Scala User Group
спринги и дитсейджи просто балансируют между ними
источник

λ

λoλegΥch in Scala User Group
Ayrat Hudaygulov
Ну вот чтобы руками не передавать всю срань через весь колстек люди и придумали в начале сервис локаторы всякие, потом типо контейнеры из которых по сигнатуре можно было доставать нужное, потом эти контейнеры научились по графу зависимостей собирать зависимости любой сложности, добавили свистоперделок со скоупами, именоваными регистрациями, лямбдами и пр.

И все это чтобы НЕ ПЕРЕДАВАТЬ АРГУМЕНТЫ РУКАМИ ЧЕРЕЗ ВСЮ ПРОГРАММУ.

А ты предлагаешь передавать аргументы через всю программу
верно
источник

λ

λoλegΥch in Scala User Group
точнее я говорю что это всего лишь вопрос группировки параметров и тут нету серебряной пули
источник

λ

λoλegΥch in Scala User Group
или ты будешь слишком дохера передавать или будешь немного больше печатать (печатать могут помочь текстовые редакторы и компилятор)
источник

λ

λoλdog in Scala User Group
λoλegΥch
или ты будешь слишком дохера передавать или будешь немного больше печатать (печатать могут помочь текстовые редакторы и компилятор)
Или ты будешь передавать ровно столько, сколько нужно)
источник

λ

λoλegΥch in Scala User Group
угу, простыми функциями
источник

λ

λoλegΥch in Scala User Group
и то если они флатенят все аргументы и убирают ненужные части
источник

SA

Sergey Alaev in Scala User Group
λoλegΥch
инкапсуляция скрывает внутренее состояние, которого в чистом коде нету..
не только состояние. любые детали реализации, включая зависимости.
источник

λ

λoλegΥch in Scala User Group
таким образом можно $GLOBAL принять за инкапсуляцию
источник

SA

Sergey Alaev in Scala User Group
изолировать детали реализации, передавая в функцию не данные для её зависимостей, а сами зависимости в виде функций я тоже пробовал - получаются интересные, изолированные функции. но чтобы их вызвать извне, нужно писать адаптеры к функциям-параметрам. Которым место в коде инициализации, а не в бизнес-логике. Получается некрасиво.
источник

SA

Sergey Alaev in Scala User Group
λoλegΥch
таким образом можно $GLOBAL принять за инкапсуляцию
это из какого языка? не понял мысль.
источник