Size: a a a

2021 March 31

VS

Vladimir Sekisov in pro.elixir
Dmitry Ponyatov
а кто сказал что в ООП есть контракты?
сообщение (вызов) приходит к объекту, и проваливается в сортирную дырку NotImplementedException
Автор Eiffel как минимум.
источник

I

Ilya in pro.elixir
никто не использовал elixir-ls на wsl?
источник

AB

Alex Bubnov in pro.elixir
Dmitry Ponyatov
а кто сказал что в ООП есть контракты?
сообщение (вызов) приходит к объекту, и проваливается в сортирную дырку NotImplementedException
источник

AB

Alex Bubnov in pro.elixir
даже если брать стандартное наркоманское "ооп это посылка сообщений", что в мире, данном в ощущениях, конечно же, уже давно не так, понятие контракта формулируется и применительно к посылке сообщений
источник

AD

Aaron Delarge in pro.elixir
Lama Lover
Ой, искренне прошу прощения, ваше величество. Не узнал вас в этом чатике
Чем я могу служить вам, Король Зануд?
источник
2021 April 02

T

Tharin in pro.elixir
Dmitry Ponyatov
а кто сказал что в ООП есть контракты?
сообщение (вызов) приходит к объекту, и проваливается в сортирную дырку NotImplementedException
А что мешает самому реализовать контракты, пусть и на сортирной дырке? Вау, вот это да, ведь так, оказывается, можно было, и никто не пострадал. Контракты работают потому, что есть проверки во время компиляции, но никто не мешает сделать себе такую абстракцию и работать с ней.
источник

DP

Dmitry Ponyatov in pro.elixir
Tharin
А что мешает самому реализовать контракты, пусть и на сортирной дырке? Вау, вот это да, ведь так, оказывается, можно было, и никто не пострадал. Контракты работают потому, что есть проверки во время компиляции, но никто не мешает сделать себе такую абстракцию и работать с ней.
ну например потому что контракты это к системе типов относится, а не к ООП — вообще вещи пинпирдикулярные
источник

VS

Vladimir Sekisov in pro.elixir
Те вместо того, чтобы погуглить "design by contract",
изобретем собственное мнение.
источник

V

V in pro.elixir
Dmitry Ponyatov
ну например потому что контракты это к системе типов относится, а не к ООП — вообще вещи пинпирдикулярные
идея контрактов в ооп приходит достаточно быстро, потому что без них ооп - вообще тухляк
источник

A

Aleksey @cheatex in pro.elixir
Dmitry Ponyatov
ну например потому что контракты это к системе типов относится, а не к ООП — вообще вещи пинпирдикулярные
Контракты - относится к процессам в голове программиста. Отсутствие системы типов никак не мешает контракт придумать, выполнять в коде и даже иногда проверять. Этим успешно занимались в языках с крайне простыми системами типов, без классов, без объектов и без исключений.
источник

V

V in pro.elixir
Очевидно же вроде, что "полиморфизм через наследование" ну или просто "наследование" предполагает наличие контракта. У родителя есть сигнатура, потомки должны её соблюсти - вот тебе контракт.
источник

DP

Dmitry Ponyatov in pro.elixir
Vladimir Sekisov
Те вместо того, чтобы погуглить "design by contract",
изобретем собственное мнение.
В объектно-ориентированном программировании контракт метода обычно включает следующую информацию:
- возможные типы входных данных и их значение;
- типы возвращаемых данных и их значение (диапазон?);
- условия возникновения исключений, их типы и значения;
источник

DP

Dmitry Ponyatov in pro.elixir
я ж говорю — ООП и контракты вещи ортогональные
источник

БЁ

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

DP

Dmitry Ponyatov in pro.elixir
даже если на формализьмы посмотреть:
- ФП лябмда-исчисление
- ООП пи-исчисление
- DbC логика Хоара, в т.ч. и некоторые системы типов (HTT)
источник

БЁ

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

A

Aleksey @cheatex in pro.elixir
Проснуться
источник

((

(fun () -> ()) in pro.elixir
даже такие на эликсире пишут
источник

A

Azat in pro.elixir
все, кто пишут на эликсире - секси
источник

LL

Lama Lover in pro.elixir
Dmitry Ponyatov
В объектно-ориентированном программировании контракт метода обычно включает следующую информацию:
- возможные типы входных данных и их значение;
- типы возвращаемых данных и их значение (диапазон?);
- условия возникновения исключений, их типы и значения;
Ты опять не прав, это в статически типизированных языках так. В динамически типизированных языках дай бог укажут арность функции. И то, что ты написал, называется сигнатурой. И да, при описании контрактов указывают сигнатуры (как и практически во всех языках) и не все сигнатуры содержат информацию о типах

И всё-таки, в java-style ООП присутствует свой собственных подход к контрактам. Например, через интерфейсы или даже абстрактные классы

Так что в ООП есть контракты
источник