Archivio per la categoria 'Java'

Git, Mercurial e Bazaar a confronto

Ho discusso in un precedente blog i limiti di CVS e Subversion. In particolare ho evidenziato come i branch risultano difficili con CVS/SNV e di conseguenza poco utilizzati dai programmatori, anche se il loro utilizzo porterebbe diversi vantaggi.

La soluzione a questi problemi è arrivata negli ultimi anni da tre strumenti - Git, Mercurial e Bazaar - che si pongono come obiettivo non solo di semplificare il branching ma di dare una nuova prospettiva all’intero concetto di versionamento.
Leggi il testo completo »

Prestazioni di iBatis rispetto a JDBC

Ho fatto un veloce test per verificare l’overhead di iBatis rispetto a dei semplici statement JDBC. Ho scritto una query che estrae un solo record dato l’id. Ho scritto un programmino Java per far girare la query 100 mila volte sia in modo iBatis che in modo JDBC. L’id del record è sempre rimasto uguale: questo per garantire che il db utilizzasse sempre la sua cache in memoria. Il db utilizzato è stato Postgresql.

Ho ripetuto l’esperimento più volte e fatto la media. I tempi registrati (in microsecondi) sono stati i seguenti:

  • iBatis: 312usec
  • JDBC: 304usec

Quindi, sì, iBatis ha un impatto sulle prestazioni ma è solo del 3%, quindi minimo.

Un’ultima osservazione: facendo girare la query in psql e registrando i tempi con “explain analyze” i tempi sono costantemente di 51 microsecondi. Cioè Java vede tempi sei volte più lunghi di quello che il db è in grado di fornire. Hmmmm…

Perché CVS e Subversion non sono adatti ad un buon sviluppo del software

CVS e Subversion (SVN) sono strumenti di versionamento diffusissimi in ambito software. In quanto strumenti, dovrebbero aiutare il programmatore sollevandolo da compiti ripetitivi e proni a errori. In questo blog mostro come, utilizzando CVS e SVN al meglio, si ottenga esattamente l’effetto opposto, cioè un aggravio per il programmatore.
Leggi il testo completo »

Commons BeanUtils: accedere ai JavaBean con minimo sforzo

Apache Commons è una famiglia di progetti mirati a creare componenti Java di facile uso e riuso. Si tratta di componenti generici, piuttosto di base e generalmente ben testati di cui è utile conoscere l’esistenza per risparmiare tempo ed evitare di reinventare la ruota nei nostri progetti.

In questo blog mostro l’utilità di Commons BeanUtils, una libreria fondamentale della famiglia Commons. Leggi il testo completo »

Trascrizione del panel dal Java IDE Day di Genova

Ho messo on-line la trascrizione del panel dal Java IDE Day di Genova dove i tre panelist - Roman Strobl (Sun Microsystems), Paolo Ramasso (Oracle) e Vaclav Pech (JetBrains) - ci rivelano i loro pensieri sul futuro delle IDE per Java.

Java IDE Day Genova

Primi utilizzi di IntelliJ IDEA: refactoring di un metodo

Dopo la positiva esperienza del Java IDE Day, ho scaricato e cominciato ad utilizzare IntelliJ IDEA di JetBrains. So che è un’IDE molto potente e quindi la mia aspettativa è di apprenderla poco per volta. In questo blog analizzo una sola funzionalità, il refactoring di un metodo, per illustrare un po’ la filosofia di IDEA e alcune differenze rispetto alle altre IDE.

Leggi il testo completo »