Pull to refresh

Google упрощает контрактное программирование

Java *
Google выпустил открытую библиотеку Contracts for Java, которая упрощает реализацию методов контрактного программирования в Java. С помощью библиотеки Contracts for Java предусловия, постусловия и инварианты можно добавлять в Java как булевые выражения внутри аннотаций.

Как сказано в официальном анонсе, библиотека разработана двумя программистами Google в свободное от основной работы время (20% на личные проекты) и основана на Modern Jass и сделана под впечатлением от языка Эйфель, в котором впервые был реализован метод контрактного программирования.

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

Всё это нужно для того, чтобы как можно точнее находить место ошибки в коде. Google приводит такой пример: если в стандартном коде место сбоя может быть довольно далеко от места ошибки,



… то в случае нарушения контракта место ошибки сразу локализуется.



Более подробно о контрактном программировании можно почитать в литературе и описании методологий, использованных в Contracts for Java.
Tags:
Hubs:
Total votes 49: ↑39 and ↓10 +29
Views 2.3K
Comments Comments 36