Size: a a a

Podlodka – IT Podcast

2019 February 06

E

Eugene in Podlodka – IT Podcast
вопрос зачем вообще что-то делать статическим, если потенциально это создаст проблемы при тестировании
источник

PS

Pavel Shorokhov in Podlodka – IT Podcast
Eugene
вопрос зачем вообще что-то делать статическим, если потенциально это создаст проблемы при тестировании
И куда вы положите Math.pow?
источник

PS

Pavel Shorokhov in Podlodka – IT Podcast
Как выше уже было сказано, чистые статические функции легко тестируются. И далеко не все в этом мире нужно мокать.
Выглядит как "нож плохой потому что им можно порезаться"
источник

E

Eugene in Podlodka – IT Podcast
Я просто подсказал, куда смотреть, чтобы “увидеть что-то плохое в статических функциях, если они чистые.”
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
А в чем проблема замокать статическую функцию?
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
struct PowerMaker { init(mathPowImpl: @escaping (Double, Double) -> (Double)) { ... } }
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
Если уж кому-то так хочется
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
Даже в objc можно было спокойно мокать сишные функции через указатели, хотя это больше похоже на извращение
источник

E

Eugene in Podlodka – IT Podcast
я слышал бывают и другие языки
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
Я слышал что там тоже есть first-class functions
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
А если их нет, то они эмулируются на конструкциях языка
источник

ВБ

Виктор Брыксин in Podlodka – IT Podcast
Если уж даже в С это можно сделать
источник

V

Vyacheslav in Podlodka – IT Podcast
Eugene
я слышал бывают и другие языки
Может и бывают, но они не нужны же. Очевидно.
источник

E

Eugene in Podlodka – IT Podcast
да вообще любые статические функции можно обернуть, понятное дело, но зачем продолжать их плодить?
Понятно что фукнцию pow, скорее всего даже мокать не нужно будет. Даже больше - если ее нужно мокать, то, возможно, проблема не в ней.
источник

E

Eugene in Podlodka – IT Podcast
Vyacheslav
Может и бывают, но они не нужны же. Очевидно.
с этим согласен
источник

b

battlmonstr in Podlodka – IT Podcast
Evgenii Elchev
struct LoginCredentials: Codable {
   let login: String
   let password: String
   
   init(login: String, password: String) {
       self.login = login
       self.password = password
   }
   
   func validate() -> Result<LoginCredentials> {
       let valid = login.count > 3 && password.count > 6
       return valid ? Result(value: self) : Result(error: .invalidLoginCredentials)
   }
}
v duhe Egora256 (a vsu ego filosofiu luchshe prinimat' imenno po duhu, a ne po bukve, inache budet beskonechniy holywar), doljen skazat', chto eto ujasniy klass. validate() ne doljno byt' metodom objekta. nevalidniy ob'ekt ne imeet prava byt' sozdannym! v etom sut' OOP. k tomu je ob'ekt ne doljen sam sebya validirovat', etim doljno zanimacca drugoe lico, chto namnogo bolee logichno s tochki zreniya real'nogo mira.

po povodu static: v nekotoryh populyarnyh yazykah (skajem swift, objc, java i dr.) ploho/slojno s namespaces, i static ispol'zuecca imenno dlya zanamespacivaniya nekotoryh funkciy. v etom net nichego plohogo, prosto nado ob etom myslit' kak o namespace, a ne o klasse. prosto est' takoe vot ogranichenie yazyka. Egor chasto eto ne  razdelyaet (dumau special'no po ponyatnyh prichinam). primer: Math.abs(), StringUtils.capitalize() i prochee v takom duhe. v dannom sluchae Math i StringUtils - ne nastoyaschie klassy, a prosto namespace.
источник

E

Eugene in Podlodka – IT Podcast
слишком сложно. а перевода нет?
источник

s

slavik.nychkalo in Podlodka – IT Podcast
в духе Егора256 (а всу его философиу лучше принимат' именно по духу, а не по букве, иначе будет бесконечниы холывар), долйен сказат', что ето уясниы класс. валидате() не долйно быт' методом обйекта. невалидниы об'ект не имеет права быт' созданным! в етом сут' ООП. к тому йе об'ект не долйен сам себя валидироват', етим долйно занимацца другое лицо, что намного более логично с точки зрения реал'ного мира.

по поводу статиц: в некоторых популярных языках (скайем свифт, обйц, ява и др.) плохо/слойно с намеспацес, и статиц испол'зуецца именно для занамеспацивания некоторых функциы. в етом нет ничего плохого, просто надо об етом мыслит' как о намеспаце, а не о классе. просто ест' такое вот ограничение языка. Егор часто ето не  разделяет (думау специал'но по понятных причинам). пример: Матх.абс(), СтрингУтилс.цапитализе() и прочее в таком духе. в данном случае Матх и СтрингУтилс - не настоясчие классы, а просто намеспаце.
источник

s

slavik.nychkalo in Podlodka – IT Podcast
намеспаце ору
источник

E

Eugene in Podlodka – IT Podcast
почему-то в мозгу читается это все голосом Гаврилова
источник