Size: a a a

2021 January 06

V

V in pro.elixir
Борщевик Ёбаный
проектирование через ООП это какой-то неправильный путь?
Правильный, если ты любишь не только бананы, но и горилл
источник

БЁ

Борщевик Ёбаный... in pro.elixir
очень абстрактно.
источник

БЁ

Борщевик Ёбаный... in pro.elixir
я просто поймал себя на мысли, что 90% макросов, которые когда-либо писал на эликсире
это я переизобрёл классы тупо
источник

БЁ

Борщевик Ёбаный... in pro.elixir
иначе код совсем в хлам превращается, и макросами его получается неплохо задраить
только в итоге получаются классы
источник

БЁ

Борщевик Ёбаный... in pro.elixir
не глубокое ооп, просто макрос это abstract class
каждый модуль, который его подключает через use становится тупо наследником
с помощью dsl переизобретает переопределение полей, да и defoverridable туда же
источник

БЁ

Борщевик Ёбаный... in pro.elixir
у всех же так?
источник

PR

Peter Rezikov in pro.elixir
Вы прям по антипаттернам из книжек по элексиру все сделали.
источник

БЁ

Борщевик Ёбаный... in pro.elixir
я прочитал вроде бы все
источник

БЁ

Борщевик Ёбаный... in pro.elixir
не понимаю, про какие антипаттерны речь
источник

AB

Alex Bubnov in pro.elixir
V
Небось через ООП всё делали?
ООП там особого не было, поначалу там ничего такой ddd-like код был, а дальше ребята начали удлинять fsm в разные стороны, и вот тут всё пошло не так.
источник

AB

Alex Bubnov in pro.elixir
Борщевик Ёбаный
не глубокое ооп, просто макрос это abstract class
каждый модуль, который его подключает через use становится тупо наследником
с помощью dsl переизобретает переопределение полей, да и defoverridable туда же
Это типа как use genserver?
источник

V

V in pro.elixir
Борщевик Ёбаный
очень абстрактно.
https://clojure.org/about/state

There is no way to obtain the state independent of the identity other than copying it. There is no way to observe a stable state (even to copy it) without blocking others from changing it. There is no way to associate the identity’s state with a different value other than in-place memory mutation. In other words, typical OO has imperative programming baked into it! OO doesn’t have to be this way, but, usually, it is (Java/C++/Python/Ruby etc).
источник

PR

Peter Rezikov in pro.elixir
defoverridable, макросы там где не неужно, использование акторов как классов. Но это я так вижу по скудным данным, может быть не все так. Я плохо понимаю как DRY вообще с OOP связан.
источник

БЁ

Борщевик Ёбаный... in pro.elixir
V
https://clojure.org/about/state

There is no way to obtain the state independent of the identity other than copying it. There is no way to observe a stable state (even to copy it) without blocking others from changing it. There is no way to associate the identity’s state with a different value other than in-place memory mutation. In other words, typical OO has imperative programming baked into it! OO doesn’t have to be this way, but, usually, it is (Java/C++/Python/Ruby etc).
вы почему-то примешиваете мутабельность к ооп
источник

БЁ

Борщевик Ёбаный... in pro.elixir
отлично можно вывозить на иммутабельных классах, где изменение класса это копия
источник

БЁ

Борщевик Ёбаный... in pro.elixir
без сеттеров
источник

БЁ

Борщевик Ёбаный... in pro.elixir
но просто иметь классы как инструмент для проектирования
источник

V

V in pro.elixir
ну это классическое понимание ооп: классы - это прототипы инстансов. дальше что?
источник

БЁ

Борщевик Ёбаный... in pro.elixir
а дальше идём работать!
источник

AI

Alexis IV Mobius in pro.elixir
Alex Bubnov
Fsm как модель описания некого процесса в коде очень теряет читабельность по мере усложнения процесса.
ну их можно друг в друга вкладывать, в gen_statem даже поддержку для этого говна вон добавили
источник