Coding Horror #2

Some time ago I started writing a series of blog post (only one for precision) about some “absurd” code I meet in my daily work.

I called this series “Coding horror”, and, so far I have written only one post, this one.

This is the second one.

About the code below, I thing that every comment is unnecessary because it speaks for itself.

if (myVar == null)
    return myVar = null;

As an additional reason, the Resharper tooltip about the row number 2 is:

“Destination has the same value before assignment”.

It could not be much clearer than that.

Technorati Tags:

Coding Horror #1

Se c’è un aspetto che lo sviluppatore medio non tiene nella giusta considerazione quando scrive il codice è il cast tra tipi. Questo lo deduco solo dalla mia esperienza sul campo, ovvio.

Sto parlando del cast ridondante, cioè quel cast semplicemente inutile e che potrebbe essere tranquillamente evitato, basterebbe solo un pò di attenzione in più, e forse un pò di copia ed incolla in meno

Spesso un cast ridondante non è immediatamente percepibile.

Se si scrive una cosa del genere:

non è immediatamente visibile (ad occhio, intendo) il cast ridondante della riga 4, poichè un oggetto XmlDocument può essere tranquillamente assegnato ad un oggetto XmlNode in quanto quest’ultimo è la classe da cui deriva, e quindi per i principi basilari del polimorfismo o per il principio di sostituzione di Liskov (al secolo Barbara Liskov, è quindi una donna ) , fate voi, per cui, se B è una classe derivata da A, allora oggetti di tipo A possono essere sostituiti da oggetti di tipo B senza alterare la correttezza dei risultati.

Quindi il codice precedente può essere riscritto senza la ridondanza del cast, cosi:

Ma quando vedo cose del genere:

non riesco proprio a non rabbrividire, anche con il caldo torrido di questi giorni .

Ma come è possibile effettuare un cast del valore zero verso un tipo Byte !?!?!, quando, lo sanno pure i bambini, il tipo primitivo Byte rappresenta un valore intero senza segno compreso tra 0 e 255 ?.

Scusate lo sfogo…..