Size: a a a

Podlodka – IT Podcast

2019 February 06

EE

Evgenii Elchev in Podlodka – IT Podcast
структура и есть параметр который передается внутрь его
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
и соль там не в параметрах
источник

S

Stas in Podlodka – IT Podcast
А как сделать композицию таких функций?
источник

GP

Gleb Pinigin in Podlodka – IT Podcast
что значит "она полностью соотвествует фп"?
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
рили?)
источник

S

Stas in Podlodka – IT Podcast
Ну если это метод у инстанса без параметров
источник

S

Stas in Podlodka – IT Podcast
Я не понимать(
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
это конечно бред так писать но если очень хочется
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
LoginCredentials.validate <*> LoginCredentials(login: "ddd", password: "ffff")
источник

PS

Pavel Shorokhov in Podlodka – IT Podcast
Stas
А как сделать композицию таких функций?
Делаешь другую фунцию compose, которая вызывает сперва одну, потому другую. Перегружаешь оператор + на вызов compose и получаешь что-то типа
(foo + bar + baz)(argument)
источник

PS

Pavel Shorokhov in Podlodka – IT Podcast
Без сахара это развернется в
compose(foo, compose(bar, baz))(argument)
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
Pavel Shorokhov
Делаешь другую фунцию compose, которая вызывает сперва одну, потому другую. Перегружаешь оператор + на вызов compose и получаешь что-то типа
(foo + bar + baz)(argument)
пример еще лучше моего
источник

S

Stas in Podlodka – IT Podcast
Придётся открывать плейграунд
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
вообще пример откуда я код структуры взял как то так выглядит
loginView.onLogin = { [weak self] in
           let credentials = $0.validate()
           self?.show(error:) <*> credentials.error
           let loginResponse = self?.apiClient.login(with:) <*> credentials.value
           loginResponse?.finalize <*> self?.goToNextScene(with:) <*> self?.show(error:)
}
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
Gleb Pinigin
что значит "она полностью соотвествует фп"?
имутабельна, содержит только чистые методы
источник

СГ

Сергей Глебов in Podlodka – IT Podcast
Y
источник

SS

Sergey Sergey in Podlodka – IT Podcast
Так а чем статика плоха?
static func validateCredentials(_ credentials: LoginCredentials) throws
источник

SS

Sergey Sergey in Podlodka – IT Podcast
Для теста разные креденшлс подсовываешь
источник

EE

Evgenii Elchev in Podlodka – IT Podcast
Sergey Sergey
Так а чем статика плоха?
static func validateCredentials(_ credentials: LoginCredentials) throws
Очевидно человек стёкл ввиду, что ее не замокаешь при тесте кода ее использующего
источник

PS

Pavel Shorokhov in Podlodka – IT Podcast
Evgenii Elchev
Очевидно человек стёкл ввиду, что ее не замокаешь при тесте кода ее использующего
Но тогда вопрос, зачем ты делаешь статическим то, что собираешься мокать 🙂
источник