Domanda

Ho intenzione di avviare un progetto tutto mio, che sarà ASP.NET MVC + Fluent NHibernate. Voglio usare approccio test-prima come più possibile. Così, esattamente dove posso cominciare? schema del database? modello di dominio? Mappatura classi del modello di dominio per il database?

È stato utile?

Soluzione

Se avete poca esperienza nella scrittura test, è il più facile da iniziare dal modello di dominio (o un livello più alto appena sotto l'interfaccia utente). Dopo aver guidato la progettazione del modello di dominio con TDD, allora saprete che quello che lo schema del database deve essere come. Essa può essere buona di rinviare l'introduzione di un database per il sistema, in quanto si tratta di migrazione dello schema del database aggiungerà un certo overhead allo sviluppo. E che anche portare a una migliore progettazione, perché allora il modello di dominio sarà meglio disaccoppiato dal livello di database.

Se siete esperti in prove di scrittura e in TDD, può essere utile iniziare da un test end-to-end (in questo caso si sarebbero scritti contro l'interfaccia utente Web) e produrre una fetta sottile di funzionalità che tocchi tutte le parti architettoniche del sistema (come indicato in GOOS ). In altre parole, creare uno scheletro piedi. I vantaggi di questo approccio sono che (1) si sarà in grado di affrontare e risolvere i problemi di integrazione fin dall'inizio, (2) quando il test end-to-end vengono utilizzati per guidare la progettazione, può aiutare a evitare attuazione parti superflue, e (3) la difficoltà di scrivere i test end-to-end pressure a migliorare l'architettura e aggiungere ganci monitoraggio, che possono anche essere utili nel monitoraggio del sistema produttivo. (Sarà ancora necessario unit test mirato, perché forniscono pressione di progetto a livello di classe, più che correre più veloce e fornire un feedback più veloce quindi.)

Ho scritto più su questo secondo approccio al Design per Integrabilità .

Altri suggerimenti

raccolta dei requisiti.

Inizia con un finto / prototipo (ad esempio Balsamiq Mocks) dell'applicazione, quindi writre i punti di vista, beffardo controllori come si va avanti, quindi scrivere la logica di controllo, beffardo il DAO / Repositorys lungo la strada. Con il tempo di iniziare a scrivere il DAO / Repository, avrete una buona idea del vostro gli oggetti del dominio richiesti. Knock quelli fuori e utilizzare Fluent NHibernate per costruire la vostra base di dati.

Almeno questo è il loro modo sto cercando di fare le cose.

S # arp Architettura progetto che utilizza le migliori pratiche che combina:

  • NHibernate
  • FluentNhibernate
  • TDD / DDD con il modello flirta avvicinano con database SQLite per unit testing
  • Mocking
  • Pattern Repository

È anche possibile installare S # arp arch. modello per IDE di Visual Studio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top