I programmatori migliori usano meno IF/SWITCH



     Questa settimana ho visionato una quarantina di soluzioni di un test di programmazione.
Le implementazioni meno buone  avevano anche un numero elevato di if/switch (una 40na), quelle migliori anche nessun if/switch. Penso che non è un caso

     Resto sorpreso che tra gli skill avanzati di coding che sono assodati e riconosciuti da anni la capacità di evitare gli if/switch inutili e duplicati è ancora ignota a una gran parte di programmatori, e anche da alcuni programmatori di Microsof (vedi qui , mal comune  mezzo gaudio :D).



Tecniche per eliminare IF/SWITCH: vedi qui
Altri skill avanzati di coding: vedi qui
Il passo seguente: eliminare i for/while/lambda duplicati


Print | posted @ venerdì 27 marzo 2009 20.44

Comments on this entry:

Gravatar # re: I programmatori migliori usano meno IF/SWITCH
by Antonio Ganci at 27/03/2009 21.41

Puoi rendere pubblico il test e la soluzione secondo te migliore e quella peggiore?
Sono curioso di vederle.
  
Gravatar # re: I programmatori migliori usano meno IF/SWITCH
by Luca Minudel at 28/03/2009 0.13

@antonio

una delle peggiori racchiude tutta la logica in un switch + if + if nidificati lungo 3/4 schermate - è prolisso anche se molti concetti sono affogati nel codice invece che essere classi con tanto codice dove non serve e poco codice fragile e parziale per cose importanti

le 3 migliori hanno il codice assolutamente lineare - gli if (tutti in un caso) sono stati resi inutili da poliorfismo, una hash table che definisce una mappa di conversione incapsulata in un operatore di conversione e un algoritmo di spostamento nelle 4 direzioni (4 casi da discriminae con if) linearizzato trasformandolo in una somma di vettori. sono un po prolisse (molte classi) e questo assucura che ogni concetto è testato in isolamento negli unit test

poi c'è una quarta che ha concetti che non sono espressi come classi e qualche if - è chiara - con codice ben scitto e al posto giusto. è sintetica di contro i test sono parziali e poco unitari


Se ti basta qualche estrattp lo posso postare qui o posso inviartelo completo via mail
  
Gravatar # re: I programmatori migliori usano meno IF/SWITCH
by Raffaele Rialdi at 29/03/2009 11.53

Molti if possono essere evitati, e su questo siamo daccordo.
Lo switch/case in molti casi nasconde un mancato uso di polimorfismo, e questo è certamente un errore da non fare.
Ma cercare di ridurli a tutti i costi imho è sbagliato.
C# è un linguaggio imperativo e come tale lo devi usare. Se non vuoi gli if, vai a F# come dicevo nell'altro post.
  
Gravatar # re: I programmatori migliori usano meno IF/SWITCH
by Antonio Ganci at 29/03/2009 13.42

Giudica tu, se c'è qualche parte dove viene realizzata qualche soluzione particolarmente brillante magari pubblicalo come post sul blog, sarebbe un'interessante base di discussione sul disegno su un esempio di codice reale.
  
Gravatar # re: I programmatori migliori usano meno IF/SWITCH
by Luca Minudel at 30/03/2009 0.54

@Antonio @Raffaele

La risposta é sul nuovo post col codice di esempio

  

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 8 and 2 and type the answer here: