Questo pomeriggio è stato trasmesso il webcast di Lorenzo Barbieri dai requisiti ai casi d'uso. Come sempre argomento molto interessante e decisamente attuale. Aspetto con impazienza la seconda parte in cui spero si vada più a fondo su tematiche toccate in questo primo webcast.
Volevo solamente segnalare un paio di libri sull'argomento use case, il primo lo ho letto e lo ha citato anche Lorenzo, è il libro di Cockburn e si legge molto bene, l'altro lo ha consigliato Lorenzo ed è un libro un po datato ma che pare molto interessante.
In generale l'argomento degli use cases mi pare molto interessante, soprattutto perchè recenti problemi in alcuni progetti a cui ho partecipato sicuramente soffrivano di forti carenze nella gestione dei requisiti, in particolare per una cronica mancanza di processo nella raccolta e stesura del documento dei requisiti (SRS)




Ieri ho letto questo blog di Igor Damiani che riportava una sua brutta esperienza con il code review. Purtroppo trovo che questa pratica sia veramente sottovalutata da molti team, almeno per esperienza personale. Si consideri infatti che in alcune metodologie, come quelle agili, questo concetto viene portato all'estremo tanto che si arriva al "pair programming", non c'è riga di codice che non sia passata almeno per la code review del proprio compagno di programmazione.
PErsonalmente ritengo che una buona code review consenta di rilevare molti bug e soprattutto sia un'occasione per crescere insieme ed imparare a scrivere codice migliore dai propri errori. L'importante è che non sia utilizzata, come nel caso di Igor, a fini punitivi. In queste situazioni è sicuramente più dannosa che benefica.
Alk.
CLICCA QUI
Alk.
Il prodotto è naturalmente freeware e salva una grande quantità di informazioni anche se tralascia qualche informazione importante tipo le variabili di sessione che possono però essere aggiunte intervenendo direttamente sui sorgenti.
Prossimamente, cercherò di pubblicare un mini tutorial su come estendere elmah per effettuare il log di altre informazioni non attualmente tracciate da questo prodotto.
Alk.
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool
Questo errore viene generato quando nel codice si apre manualmente una connessione e si dimentica di chiamare il dispose, in questo caso la connessione non viene mai tornata al pool di connessioni che piano piano si esaurisce.
Come individuarlo
Il modo più rapido è utilizzare il perfmon.exe che ha al suo interno appositi contatori dedicati al monitoraggio, li trovate sotto le categorie .NET data provider for SqlServer o .NET CLR DATA. In questo modo potete navigare e vedere quando qualche pagina non rilascia le connessioni, in questo caso infatti ci saranno pagine o operazioni che aumentano sempre il numero di connessioni nel pool. Il contatore sicuramente che amo di più è il NumberOfReclaimedConnections che indica, come dice questo articolo, quante volte una connessione è stata liberata dal garbage collector. Se ci sono leak questo valore è maggiore di zero e basta guardare quale pagina lo fa aumentare per restringere il campo di ricerca.
Per evitare questo problema è sempre bene fare i test di carico dei propri siti, questo perché il pool tiene 100 connessioni e spesso in fase di sviluppo questi errori potrebbero non essere notati se non si utilizza il perfmon, ma con un test di carico si evidenziano quasi sempre.
Utilizzate sempre Try ..finally o la clausola using per assicurarvi che le connessioni siano sempre rilasciate.
Fate inoltre molta attenzione perché non solo le connessioni ma anche tutti gli altri oggetti di accesso ai dati ed in particolar modo il datareader debbono essere chiusi o rilasciati.
Alk.
EDIT: Un buon articolo sull'argomento che ho trovato oggi è questo vale la pena leggerlo.
Back Next






