Principi

Kiss

Definizione Keep It Simple, Stupid, ossia "falla semplice, in modo stupido". Note Rendi semplici le cose difficili. Domina la complessità scomponendola. Evita di pensare alle ottimizzazioni all'inizio, perchè se hai progettato correttamente la tua applicazione potrai aggiungerle nelle successive fasi dello sviluppo. http://it.wikipedia.org/wiki/KISS_(informatica)  

Don't Repeat Yourself

Obbiettivo Non scrivere codice rindondante Note Conoscuto anche come "Single Point of Truth" o "Once and Only Once" o "Duplication is Evil"

Interface Segregation

Definizione Note Non devo essere costretto a implementare parti di interfaccie che non mi servono

Dependency Inversion

Definizione I moduli di alto livello non devono dipendere da quelli di basso livello. Le astrazioni non devono di pendere dai dettagli, piuttosto i dettagli devono dipendere dalle astrazioni. Obbiettivo Lavorare per interfacce

Liskov Substitution

Definizione Le sottoclassi devono sempre esporre la stessa interfaccia pubblica della loro superclasse più astratta, senza aggiungere né togliere nulla Note Le uniche differenze ammesse nelle sottoclassi sono differenze di comportamento. Esempio Rettangolo -> Quadrato

Open Closed

Definizione Una classe deve essere aperta alle estensioni e chiusa alle modifiche Note Rendere i campi di una classe accessibili tramite le proprietà pubbliche corrispondenti. Non utilizzare variabili globali. Link http://msdn.microsoft.com/it-it/magazine/cc546578.aspx

Single responsibility

Definizione Una classe dovrebbe avere un unico motivo per cambiare Obbiettivo Una classe un metodo devono avere una sola reponsabilità Link http://www.objectmentor.com/resources/articles/dip.pdf

High Cohesion

Definizione La coesione è la misura di quanto le responsabilità di un particolare modulo siano correlate fra loro. Obbiettivo Avere una Alta Coesione tra gli elementi Note Un modulo con bassa coesione fa tante cose insieme, svolgendo molto lavoro "sparso" e non correlato (ha troppe responsabilità). In questo caso il modulo risulta essere: –difficile da isolare; –complesso da riutilizzare; –complicato da manutenere; –delicato e critico in quanto soggetto a continui cambiamenti. Una bassa coesione comporta principalmente tre effetti negativi. –Scarsa riusabilità: è difficile riusare codice così critico e soggetto a continui cambiamenti che riguardano aspetti diversi tra loro. –Scarsa comprensibilità: è difficile capire cosa esattamente faccia una classe non coesiva con...

Low Coupling

Definizione L'accoppiamento è la misura di quanto fortemente un entità è connessa, conosce e/o dipende da altre entità. Obbiettivo Mantenere sempre un Basso Accoppiamento. Metrica Il numero di dipendenze fra metodi, oggetti, classi, namespace, assembly Note Per quantità di dipendenze si intende quanto un modulo ha conoscenza di altri moduli, quanto ad essi affida esternamente responsabilità di varia natura, in generale quanto il suo corretto funzionamento dipende dagli altri moduli. Le responsabilità possono essere di due tipi: – responsabilità di fare – responsabilità di conoscere Un modulo caratterizzato da un basso accoppiamento non dipende da tanti altri moduli (la quantità è relativa e dipende dal contesto). Viceversa un alto accoppiamento...

«June»
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456