760 likes | 899 Views
UGIALT.NET Conference - 14 Giugno 2008. UGIALT.NET Conference II. Agenda della conference. 10:00 – Benvenuto 10:15 – Introduzione a UGIALT.NET 10:30 – Lightning talks 11:00 – Pausa 11:15 – Prioritizzazione user stories 11:30 – Prima User Story introduttiva
E N D
UGIALT.NET Conference - 14 Giugno 2008 UGIALT.NET Conference II
Agenda della conference • 10:00 – Benvenuto • 10:15 – Introduzione a UGIALT.NET • 10:30 – Lightning talks • 11:00 – Pausa • 11:15 – Prioritizzazione user stories • 11:30 – Prima User Story introduttiva • 12:00 – Users Stories • 13:30 – Pranzo • 14:30 – User Stories cont. • 17:30 – ChiusuraLavori e futuro
Agenda • Manifesto • Storia • Cosasignifica ALT.NET • Perchè ALT.NET
Manifesto • Sei un dev cheusaquellochefunziona ma seisempreallaricercadiqualcosadimeglio • Tienid’occhioilresto del mondo per adottareilmegliodaogni community: Open Source, Agile, Java, Ruby, ecc… • Non seicontento del tuostatoattuale. Le cosepossonosempreesseremigliorarate, codicepiùelegante e semplice, piùmanutenibile e dimaggiorequalità • Saiche I tools sonoimportanti, ma non tiportano molto lontano. Sonoiprincipi e la conoscenzachecontano. I tool migliorisonoquellicheincorporano la conoscenza e incoraggiano I principi (ad. Es. Resharper)
Un po’ di storia • Aprile 2007 – Il termine ALT.NET appare per la prima volta in un post di David Laribee • Ottobre 2007 – Prima ALT.NETConference ad Austin (TX) • Novembre 2007 – Nasce UGIALT.NET • Febbraio 2008 – 1° ConfUGIALT.NET • Aprile 2008 – ALT.NETconf a Seattle
Cosasignifica ALT • ALT !=Alternativo • ALT ==Avere Alternative
Perchè ALT.NET • UserGrouptradizionalisono “about technology” • Piùimportante: • Principi base dell’OOP • Processi e metodologie di sviluppo • Tool Alternativi
Agenda • Agilità (Emanuele DelBono) • TDD (Roberto Valenti) • Mocking – Rhino (Claudio Maccari) • IoC/DI (Simone Busoli) • MVC/MVP (Simone Chiaretta) • ORM (Matteo Baglini)
Emanuele DelBono emanuele@codiceplastico.com http://blog.codiceplastico.com Agilità
I tre capisaldi • La femmina • Il danaro • La mortazza
I tre capisaldi (quelli veri) Iterazioni Collaborazione Adattabilita’
Perché? • Fornire valore al cliente in breve tempo • Gestire il cambiamento • Ridurre il rischio • Migliorare la qualità • Per divertirsi mentre si lavora!
Cos’è XP? • XP è una metodologia basata su un insieme di pratiche: • Whole Team • Planning Game • CustomerTests • SmallReleases • Simple Design • PairProgramming • Test DrivenDevelopment • Design Improvement • ContinuousIntegration • Collective Code Ownership • Coding Standard • Metaphor • Sustainable Pace
Cos’è Test Driven Development • Praticadi XP • Sviluppofunzionalitàguidatodai Test • Attivitàdiprogettazione : • Red : definireilcomportamentoatteso con asserzioni • Green : rendereeseguibili con successoi test, le asserzionisonoverificate • Refactor : effettuare refactoring mantenendoverificateasserzioni (eliminareduplicati, design pattern …)
Refactoring • Migliorareil software tramite l’ applicazionediunaseriedimodifiche interne che non cambianoilcomportamentoesterno.
Scopoprincipale del TDD • Non è testareilcodice. • Aiutaresviluppatori e clientiduranteilprocessodisviluppodefinendorequisiti non ambigui. • TDD = Design (design emergente)
Benefici • Codicesemplice e funzionante (Simple Design Principle) “Simplicity is more complicated than you think. But it’s well worth it” – Ron Jeffries • CodiceTestato (Test Behaviour Not Code) • Facilmentemanetunibile (Embrace Change) • YAGNI (You ArentGonna Need It) = No over design
Claudio Maccari Mail: cmaccari@absistemi.it Blog (ITA): http://blogs.ugidotnet.org/makka Blog (ENG):http://testdrivendevelopment.wordpress.com/ Rhino.Mocks
Cos’èRhino.Mocks? • Framework mock object per .net • http://www.ayende.com/projects/rhino-mocks.aspx • Si parladi test… unit testing • Oradisponibileversione 3.4
Rendepiùsemplice lo unit testing Fake the hard stuff • Risorseesterne • Networks • Databases • Altrisistemi • Risorse interne • Qualsiasicosa con setup complesso • Legacy code
Si trattadiinterazione Objects talking to objects • “State based testing”vabene • “Interaction based testing” e piùinteressante
Strutturadi un test con Rhino.Mock • Creazionedi un mock • Definizionedellecomporamentoatteso • Esecuzione del codice sotto datestare • Verificadelleaspettative • Asserts addizionali
Bastachiacchiere Lets see some code!
Registra e ripeti • La soluzione sta nel mezzo ?
Rhino.Mocks … Rocks! • Download • http://www.ayende.com/projects/rhino-mocks.aspx • Wiki • http://www.ayende.com/Wiki/ • Quick Reference (ottimodocumento) • http://www.ayende.com/Wiki/GetFile.aspx?File=Rhino+Mocks+3.3+Quick+Reference.pdf
Q & A • Dopo
Simone Busoli 14/06/2008 - Milano Dependency Injection Inversion of Control
Di cosasitratta • ComunementeDI - IoC • Principicomunididisegno software • Alta coesione • Basso accoppiamento • … • Basso accoppiamento • Riduzionedelledipendenzetracomponenti software • Chi conosce chi? • Risoluzionedipendenzetracomponenti
Scenario • Voglio poter registrare le iscrizioni ad un evento • Persistere i dettagli dell’iscritto • Comunicare se l’iscrizione è andata a buon fine tramite mail
DependencyInjectionElevato accoppiamento • SubscriptionService conosce direttamente i dettagli di EmailService e PersonRepository BAD
Dependency InjectionCambiamento di paradigma • Il servizio conosce solo l’interfaccia dei componenti che utilizza GOOD
DependencyInjection • Iniettare dipendenze dall’esterno rende più onerosa l’istanziazione di componenti • Necessario conoscere tutte le dipendenze