Sensibilità di un programmatore Java..

11 dicembre 2012

Java

I (nuovi) programmatori Java, mediamente non sono molto sensibili al consumo di memoria e allo spreco di risorse, vuoi perchè i computer sono veramente potenti, vuoi perchè nessuno ti ha mai obbligato esplicitamente a rilasciare le risorse acquisite..
Tutti sanno dell’esistenza del Garbage Collector, pochi sanno come funziona realmente..
Tutti sanno creare programmi java funzionanti, pochi sanno creare programmi robusti e performanti..
Scrivo quest’articolo per ricordare quanto sia importante prestare attenzione ad alcuni punti chiave, che nella programmazione quotidiana a volte ci sfuggono:

  • Quante volte avete sentito che è importante commentare il codice?! Bene! Puntualmente dove serve il commento non c’è!
    • È importantissimo commentare non solo le funzioni o le classi, ma anche parti di codice in cui ci sono delle particolari scelte, non comprensibili immediatamente da un nuovo collega.
  • Quante volte vi siete dimenticati di gestire un’eccezione?! Quasi sempre!
    • Le eccezioni vanno gestite dove oppurtuno o solleverla al chiamante. Può essere molto utile catturarle e poi risollevarle, in modo tale che possiamo utilizzare la finalize per rilasciare le risorse ad esempio.
  • Quante volte non abbiamo validato l’input?!Aaaahha quello sempre!
    • Bisogna considerare sempre l’eventualità che i parametri di un metodo vengano passati null o con valori strani che possono bloccare il metodo stesso. Prevenire è meglio che curare!
  • Conosciamo l’esistenza dei metodi “close,finalize,flush,dispose”?! Certamente!! Ma non li ho mai utilizzati..
    • Vi faccio un classico esempio per capire il concetto, stabiliamo una connessione al db con jdbc, apriamo una connessione, usiamo il resultSet, ecc.. e poi alla fine del metodo ritornamo il risultato e non chiudiamo/rilasciamo nulla.. Vi domanderete dove sta il problema?! La risposta è che se la nostra applicazione ha più di un utente, non ci vorrà molto a saturare le connessioni al db!
  • Io chiudo sempre le connessioni, ecc.. sono bravo?! Dipende.
    • Ho risposto dipende, perchè non basta chiudere le connessioni nel solo caso che il codice del metodo finisca positivamente, bisogna chiudere le connessioni anche se il programma incorre in un’eccezione durante la sua esecuzione! E come faccio questo? Semplice! Usare il try catch finally, e chiudere/rilasciare le connessioni nella finally che verrà sempre eseguita.

Credo che il post non sia finito, quindi forse lo aggiornerò col tempo 😉

Se ti è stato utile il mio articolo, spendi un secondo del tuo tempo e dammi un +1, Google ed io ne saremmo felici 🙂 Grazie mille 🙂

2 Responses to “Sensibilità di un programmatore Java..”

  1. Joker Says:

    Ehm pardon! Ma eccezione si scrive con una sola “z”.

    Per dovere di completezza verso chi lo sa….

    Credevo fosse un errore di battitura, ma ahimè, è scritto più volte….

    Consiglio: prima di professarvi guru della programmazione, perfezionate il vostro italiano perchè tutti comprendano bene e a fondo ciò che volte comunicare.

  2. Alessandro Musacchio Says:

    Grazie per la precisazione 😉 ogni tanto (spesso) sbaglio 😀
    Questo è uno spazio dove io scrivo ciò che può essere utile a me stesso prima di tutto e a voi altri.. Nessuno si sta professando guru della programmazione ma si tratta solo di un memo dei miei stessi errori..
    PS. Il guru dell’informatica comunque è un esperto di logica e matematica non di Italiano e latino 😉

Leave a Reply

*