Size: a a a

Elm Lang сообщество разработчиков

2017 April 24

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
staticmethods я опускаю, как "в целом странную фичу"
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
Хммм
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
Т.е. ты предлагаешь не создавать надкласс, в котором я могу прописать метод общего вида, а потом наследоваться от него?
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
ООП - хороший инструмент, но это не серебряная пуля. И ООП должен применяться только для управления сложностью, а не как самоцель (что, увы, часто бывает)
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
А в каждом конкретном подклассе подробно расписывать, к примеру, все ключи условного словаря, с которым должен работать именно этот класс
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
http://www.poodr.com/
Тут тетя настоятельно рекомендует отделять поведение от даты
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Я предлагаю использовать ООП по назначению :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Jan ¥ JoJohn $
http://www.poodr.com/
Тут тетя настоятельно рекомендует отделять поведение от даты
Это неправильное трактование и использование ООП
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
Понимаю, что фишка ооп как раз в этих самых изменениях объектов
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Именно!
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
Но внутри объекту что мешает делать эту самую иммутабельность
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Вся фишка в инкапсуляции - обеспечении самодостаточности объекта за счёт складывания в оный и всего нобходимого поведения и всех необходимых данных.
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Все "столпы" ООП работают на одну цель - абстракцию. Отделение данных от поведения ведет к протеканию этой самой абстракции
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
Вот
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
При этом "объект" и "метод" - штуки условные. В go я могу (не стану, конечно, ведь го - убогий :)) запустить горутину - это будет объект - и слать горутине сообщения в канал - это будет вызов методов. При этом поведение горутины и её данные будут инкапсулированы!
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Ровно так же "ООП" получается в Эрланге - весь стейт инкапсулирован и меняется только посылкой сообщений.
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Вот это - настоящий ООП, каким он должны быть и каким он был в SmallTalk, например
источник

Jan ¥ JoJohn $ in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Ровно так же "ООП" получается в Эрланге - весь стейт инкапсулирован и меняется только посылкой сообщений.
Дружбан есть, который ушел из руби в эрланг, говорил то же самое
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Ну дак Ruby делался под впечатлением от SmallTalk - "объекты , посылающие друг другу сообщения"
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
А в Эрланге сообщениями обмениваются акторы :)
источник