Attualità e Information Technology

August 8, 2007

Rispondere ai cambiamenti

Filed under: IT

Poco fa, mentre attendevo l’inzio del Trofeo Birra Moretti, ho letto un post su UgiDotNet di Francesco Carucci dal titolo “L’ideale e’ minimizzare al massimo i cambiamenti”.

Riporto una parte:

L’ideale per me e’ Keira Knightley che si lava, non rompe mai le balle e ama solo me… ma non credo che accadra’ e allora perche’ sperarci?

In quindici anni che programmo non ho mai visto un progetto durante il quale le richieste fossero fisse, le feature necessarie non cambiassero mai, si sapesse in anticipo tutto cio’ che era necessario scrivere e come risolvere ogni problema, con richieste precise e circostanziate descritte nel dominio della soluzione.

Non e’ mai successo e allora perche’ sperarci?

Il primo pensiero che mi è venuto in mente è che sembra un ottimo spot per i metodi agili. Alla fine se si legge il manifesto un punto fondamentale è - cito testualmente - “Responding to change”.

Siamo tutti d’accordo che una buona progettazione, con un’analisi ben fatta, un’architettura ben definita, un design preciso, etc., sia il massimo, ma se per cercare di ottenerlo ci si irrigidisce con il rischio di non accontentare il cliente e allungare i tempi di sviluppo all’inverosimile, allora forse il gioco non vale più la candela.

Intendiamoci, non sono un fan sfegatato dei metodi agili, certi approcci li ritengo eccessivi, ma penso che buona parte della filosofia che vi sta dietro sia da abbracciare sempre e comunque. Come faceva notare Francesco, visto che tutti sappiamo che è impossibile riuscire ad arrivare a LE specifiche, nel senso di immutabili e precise, allora cerchiamo di arrivarci ma senza intestardircisi sopra e preparandosi mentalmente a quello che inevitabilmente avverrà.

O per riprendere l’esempio di Francesco, visto che difficilmente usciremo con Keira, proviamoci pure ma prepariamoci anche alla possibilità di uscire con qualcun’altra ;)

Technorati tags , ,

AddThis Social Bookmark Button

Tux

Filed under: Generale

Il famoso pinguino “disegnato” in maniera originale: http://www.100mb.nl/

Technorati tags , ,

AddThis Social Bookmark Button

Correttezza

Filed under: Generale

Citazione da Weeds:

- Ma non è corretto!
- Corretto? Corretto è il caffè quando ci aggiungi il liquore. Questo significa corretto per me.

Technorati tags , , ,

AddThis Social Bookmark Button

.NET 3.5

Filed under: IT, .NET

Riporto un veloce elenco di alcune delle novità del nuovo Framework di casa Microsoft, lato C# ovviamente.

Automatic Property

Per definire le property viene supportata una nuova sintassi estremamente concisa che ci permette di non esplicare la variabile privata alla quale la property fa generalmente riferimento.

    8 public class Persona

    9 {

   10     public string Nome { get; private set; }

   11     public string Cognome { get; private set; }

   12     public string Eta { get; set; }

   13 

   14     public Persona(string nome, string cognome)

   15     {

   16         Nome = nome;

   17         Cognome = cognome;

   18     }

   19 }

Mi è stato appena chiesto perchè, nel caso di Eta, usare una property invece che una normalissima variabile pubblica. Perchè ci guadagnamo, ad esempio, in termini di binding. Molte classi built-in “bindano” le property e non le variabili pubbliche.

var keyword

Onestamente è una cosa che non mi piace granchè, comunque ora è possibile definire delle variabili di tipo var. Questo permette di non specificare il tipo vero e proprio, ma non significa perdere la tipizzazione. Mi spiego meglio. Una volta che ad una variabile di tipo var assegnamo un valore, tale variabile viene tipizzata.

Esempio:

   20     var stringaDiProva = “pippo”;

   21     //a questo punto stringaDiProva è di tipo string

   22     int i = stringaDiProva.Lenght; //corretto

   23     string f = stringaDiProva; //corretto

   24     int j = stringaDiProva; //errore

N.B. var si può usare solo se mentre dichiariamo la variabile la inizializziamo anche, altrimenti il sistema non saprebbe come tipizzarla. Ergo scrivere semplicemente var stringaDiProva; darebbe errore.

var si può usare anche per gli array, l’importante è che nell’inizializzazione tutti gli oggetti siano dello stesso tipo.

   26     var numbers = new[] { 1, 2, 3 }; // int[]

   27     var values = new[] { 1, 1.5, 2 }; // double[]

   28     var names = new[] { “pippo”, “paperino” }; // string[]

   29     var set = new[] { 1, “A”, 2, “B”, 3, “C” }; // errore

Aspetto da considerare è che l’uso di var riduce notevolmente la leggibilità del codice creando solo gran confusione.

Ergo, serve per LINQ, ok, ma non usiamolo altrove.

HashSet

Finalmente anche in .NET abbiamo nativamente una Collection che rappresenta un Set (insieme). Spesso comodi, non dobbiamo più usare implementazioni di terzi.

Collection Initializers

Per inizializzare le Collection possiamo usare una sintassi simile a quella usata per gli Array:

   31     var lista = new List<string> { “paperino”, “pippo”, “pluto” };

Evitiamo quindi di dover creare lista e poi fare gli Add.

Technorati tags , , ,

AddThis Social Bookmark Button
   

Get free blog up and running in minutes with Blogsome | Theme designs available here