2012-04-18 2 views
5

Ho visto una fantastica demo di contratti di codice C# e voglio iniziare a implementarli in codice may. Vorrei averli già nel mio codice. Da dove inizia?Da dove iniziare con i contratti di codice?

Non sono riuscito a rimuovere qualsiasi materiale stampato dalla demo. Qualche lettura suggerita?

Qualche suggerimento per un principiante con contratti di codice?

Grazie in anticipo per il vostro aiuto.

+2

http://devjourney.com/blog/code-contracts-part-1-introduction/ – albertjan

+2

Fare attenzione che le annotazioni dei Contratti di codice nel .NET Framework BCL sono alquanto macchiate. Ad esempio, molti metodi che restituiscono sempre un oggetto non nullo (a meno che non lanci, ovviamente) non sono contrassegnati come tali. Questo ti costringe a sparpagliare il tuo codice con assegni null o chiamate 'Assume' per soddisfare l'analizzatore statico. – phoog

+2

@phoog che è corretto, ma il team di Code Contracts ha lavorato per aggiungere contratti a un numero sempre maggiore di BCL, quindi questo ha migliorato quasi tutte le versioni. – Andy

risposta

6

Vorrei iniziare con questo Wiki che descrive Design by Contract. Quindi tuffati nella documentazione su MS' implementation. Per farlo funzionare nel tuo codice, suppongo che potresti iniziare quasi ovunque, ma forse iniziare con aree che hanno meno probabilità di avere un impatto. Quindi, se necessario, aggiungere alcuni Contract.Requires agli argomenti del ctor. Quando sei più a tuo agio, puoi aggiungerli alle interfacce, ma sappi che questo potrebbe far saltare in aria le cose ... ma in senso positivo. Errori o avvisi indicano che stai violando DbC e probabilmente lo Liskov Substitution Principle.

5

Il numero user manual fornito nella pagina del progetto Code Contracts fornisce una descrizione molto buona di come utilizzare e le possibilità dei Contratti di codice.