Как стать автором
Обновить

Комментарии 12

Некоторое время назад каждый считал своим долгом объяснить всем вокруг что такое есть монада. Каждый объяснял так, как это понял и кто во что горазд. Знаковый пример это объяснение, что "монада это котёнок, завёрнутый в буррито". Сейчас людей вроде отпустило и мода на объяснения монад прошла. Вы же решили вместо монады объяснять, по-своему что такое тайпкласс. Очень непонятно написано. Представив себе, что я не знаю, что такое есть тайпклассы, я бы точно ничего не понял бы из этого объяснения.

Зачем вообще нужна концепция тайпкласса? Какие проблемы он решает? Начать надо было с этого. Привести пример проблемы P. Потом привести несколько примеров тайпклассов начиная с самых распространенных, чтобы можно было пощупать на примерах что это такое. Потом показать как с помощью тайпклассов решается проблема P. И после этого уже можно дать формальное опеределение, а можно и не давать, от него всё равно никакого толку, слишком уж оно расплывчато сформулировано.

Подтверждаю - ничего не понятно ?‍♂️

Полагаю, что термин "контракт" в данной статье неуместен, либо дайте свое(новое определение этому понятию.

----------------------

Контракт — это документ, в котором фиксируют условия сотрудничества. В нем прописывают, о чем договорились стороны и в какие сроки обязуются это выполнить. Многие считают контракт синонимом договора, но по правилам российского законодательства контракт заключают только в определенных случаях.

В отличие от договора контракты используют в трех ситуациях: для оформления сделки с иностранными контрагентами, при прохождении государственной службы и для госзакупок.


Разные области могут иметь специфический смысл одного слова. Вы привели смысл в юридическом контексте. В программировании (и, возможно, ИТ) под контрактом обычно подразумевается формализованная договорённость сторон.

Вообще-то понятия "договор", 'контракт " существуют лишь в правовом т е юридическом смысле, так как они связаны с конкретизацией прав и обязанностей сторон.

При этом не имеет значение вид деятельности сторон договора - программирование или строительство или торговля борзыми щенками.

Если я ошибаюсь и для программирования есть специальное определение этих понятий, то дайте ссылку или укажите, что это ваше субъективное определение в рамках данной статьи.

Полагаю, что следует уточнять смысл применяемых понятий, иначе каждый читающий будет понимать ход Ваших рассуждений совершенно не предсказуемым образом.

Вообще-то понятия "договор", 'контракт " существуют лишь в правовом т е юридическом смысле, так как они связаны с конкретизацией прав и обязанностей сторон.

Вообще-то, нет.

Если я ошибаюсь и для программирования есть специальное определение этих понятий, то дайте ссылку или укажите, что это ваше субъективное определение в рамках данной статьи.

https://ru.wikipedia.org/wiki/Контрактное_программирование

В объектно-ориентированном программировании контракт метода обычно включает следующую информацию:

  • возможные типы входных данных и их значение;

  • типы возвращаемых данных и их значение;

  • ...

"контракт" и "контрактное программирование" - это два самостоятельных понятия, а не синонимы.

Именно в правовом смысле, во втором понятии существительное - программирование - и это главное, а контактное - это прилагательное.

Более того, это понятие относится к обязанностям людей, а не объектов языка как таковых.

из вашей ссылки:

Он предполагает, что проектировщик должен определить формальные, точные и верифицируемые спецификации интерфейсов для компонентов системы.

Я ж вам специально даже цитату привёл

В объектно-ориентированном программировании контракт метода обычно включает следующую информацию

Прочитайте целиком статью, а не куски из неё

Вы сами-то читали из Вашей же ссылки:

Данные спецификации называются «контрактами» в соответствии с концептуальной метафорой условий и ответственности в гражданско-правовых договорах.

Вам слово метафора ни о чем не говорит? И процитированный мной выше дважды кусок

Но вообще я теряю суть диалога. Вы сказали, что контракт - это документ. Я привёл аргументы, что в ИТ термин используется в другом смысле. Вы не согласны?

Мета́фора (др.-греч. μεταφορά «перенос; переносное значение», от μετά «над» + φορός «несущий») — слово или выражение, употребляемое в переносном значении, в основе которого лежит сравнение предмета или явления с каким-либо другим на основании их общего признака.

А Вам о чем говорит слово "метафора"?

Классы типов задают определенное поведение.

Если бы от класса типа зависело поведение. Как раз наоборот - поведение определяет класс типа.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории