mboost-dp1

Contracts for Java


Gå til bund
Gravatar #1 - arne_v
7. feb. 2011 20:42
.NET har længe været langt foran Java med hensyn til code contracts.

Tilsyneladende ønsker Google at ændre på dette, så der har releaset et open source contract framework for Java under LGPL licens.

http://google-opensource.blogspot.com/2011/02/cont...
http://code.google.com/p/cofoja/
Gravatar #2 - Windcape
8. feb. 2011 04:03
Som annotations? Det virker ikke helt ligeså praktisk som man oplever det i .NET

Derudover er det jo string baseret, f.eks.

@ThrowEnsures({"SomeException", "isEmpty()"})

Har Java annotations ikke support for generics???

Derudover synes jeg der mangler muligheder for at have en hel metode som class-invariants frem for en annotation.

Det er da et skridt fremaf, men jeg synes overordnet at det er fejldesignet.

code-contracts i .NET er library-based, så jeg kan ikke se hvorfor at Google ikke kunne porte Mono's contract implementation, og bygge videre på den?
Gravatar #3 - illishar
8. feb. 2011 12:09
Huh, jeg ville nu mene at Java har haft forskellige former for "Design by Contract" ret længe. Men jeg kan tage fejl.
Og de har en ThrowEnsures. Nice, den slags mangler der i .NET-versionen.
Gravatar #4 - Windcape
8. feb. 2011 12:19
illishar (3) skrev:
Nice, den slags mangler der i .NET-versionen.
Nej??

Der er intet problem i at have en post-condition der sikre at en exception bliver kastet hvis IsEmpty == true.

illishar (3) skrev:
jeg ville nu mene at Java har haft forskellige former for "Design by Contract" ret længe.
Dette her handler mere om statisk analyse kombineret med kontrakter.

Men uden seriøs IDE integration bliver det ikke til noget. (Og nej, Eclipse integrationen er ikke denne verden værdigt)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login