powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Контрактное программирование в Java.
7 сообщений из 7, страница 1 из 1
Контрактное программирование в Java.
    #39228388
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Применяется ли в Java контракное программирование ( design by сontract ), и если да, то насколько широко?
Варианты:
1). Использование конструкции assert .
2). Использование библиотек или фреймворков, например SpringContracts .
3). Можно ли заменить контрактное программирование тестированием? Если я правильно понимаю - контрактное программирование применяется для тестирования и проверки состояния данных внутри методов на этапе разработки.

В готовом проекте механизм применяемый для контрактного программирования отключается ?

ps. Прочитал про design by contract обзорно, возможно где то чего то недопонял, интересует нужно ли копать дальше по этой теме, будет ли это полезным. Буду рад любой полезной информации.
...
Рейтинг: 0 / 0
Контрактное программирование в Java.
    #39228524
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreenЕсли я правильно понимаю - контрактное программирование применяется для тестирования и проверки состояния данных внутри методов на этапе разработки. DbC - В общем выглядит, как попытка сделать валидацию входных данных на "стороне"
от основного кода (метода/процедуры/и т.д.). По принципу - "проверили один раз и хватит" .
имхо

P.S.
Рекомендую также посмотреть в сторону АОП
...
Рейтинг: 0 / 0
Контрактное программирование в Java.
    #39228672
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen3). Можно ли заменить контрактное программирование тестированием? Если я правильно понимаю - контрактное программирование применяется для тестирования и проверки состояния данных внутри методов на этапе разработки.

requie остаётся всегда, ensure удаляется в прод-коде. инвариант- не помню.

Т.к. контракт наследуется, то я не знаю, как это сделать в java. Разве что сделать специальные аннотации (в принципе, ничего запредельно сложного нет, но есть где душе развернуться).

PS: АОП не замена .
...
Рейтинг: 0 / 0
Контрактное программирование в Java.
    #39228683
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominАОП не замена .DbC - это частный случай применения АОП.Alexey TominТ.к. контракт наследуется, то я не знаю, как это сделать в java.Решается при помощи "сквозной" функциональности
...
Рейтинг: 0 / 0
Контрактное программирование в Java.
    #39228722
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanAlexey TominАОП не замена .DbC - это частный случай применения АОП.Alexey TominТ.к. контракт наследуется, то я не знаю, как это сделать в java.Решается при помощи "сквозной" функциональности

Можно пример "require or"?
Т.е. когда при попытке в наследнике ужесточить контракт код не компилируется?
...
Рейтинг: 0 / 0
Контрактное программирование в Java.
    #39228767
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin,

Contract enforcement with AOP
Alexey TominТ.е. когда при попытке в наследнике ужесточить контракт код не компилируется?Осталось только запилить поддержку аннотаций (:
...
Рейтинг: 0 / 0
Контрактное программирование в Java.
    #39228818
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanAlexey Tomin,

Contract enforcement with AOP
Alexey TominТ.е. когда при попытке в наследнике ужесточить контракт код не компилируется?Осталось только запилить поддержку аннотаций (:

Не вижу там поддержку requie or.

И вообще не понимаю, как сделать так, чтобы возникала ошибка КОМПИЛЯЦИИ
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class V1{
  @Require("x>=0") 
  public getY(int x) { ... }
}

public class V2 extends V1{
  @Require("x>=1") <-- Это не должно проходить компиляцию. Или требовать @RequireOr(...), а @Require не допускать вообще
  public getY(int x) { ... }
}
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Контрактное программирование в Java.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]