Introduzione a Jenkins

Introduzione a Jenkins DevOps “delicate” e  il nostro maggiordomo Jenkins Agli inizi della mia carriera come sviluppatore mi sono imbattuto in una discussione (su una mailing list) tra altri sviluppatori che riguardava l’utilizzo di uno script bash particolarmente delicato su una macchina condivisa tra tutto il team di sviluppo. Questo script, per funzionare, richiedeva che fosse invocato con una speciale...
Continue reading...

da Flux a Redux

da Flux a Redux In uno dei miei ultimi post ho parlato di Flux: un pattern alternativo a MVC sviluppato dagli ingegneri di Facebook. In questo nuovo articolo analizzerò Redux, nuovo pattern ideato da Dan Abramov che da molti è considerato un’evoluzione di Flux. Per cogliere meglio le differenze tra i due pattern affronteremo in Redux lo stesso problema affrontato...
Continue reading...

Java Annotation Processing

Nel lavoro di tutti i giorni può capitare di dover scrivere del codice boilerplate, senza valore aggiunto, magari ripetitivo o con classi che differiscono pochissimo tra loro. Se la logica è fatta in modo tale che non si riesce a mettere a fattor comune, magari conviene spostarsi ad un livello di programmazione dichiarativo con le annotations, interpretate tramite Reflection di...
Continue reading...

Testing di app Android con Dagger 2, Mockito e una rule JUnit

La Dependency Injection è la chiave per ottenere codice testabile, sfruttando questo costrutto è semplice sostituire un oggetto con un mock per cambiare e verificare il comportamento di una app Android o di un qualunque software. Dagger 2 è una libreria che permette di gestire le proprie classi sfruttando la depenncy injection, per le sue caratteristiche (prima fra tutte la...
Continue reading...

SPI: Java Service Provider Interface

Durante la programmazione in Java vi sarà capitato di imbattervi nell’acronimo SPI: non si tratta di un typo per API (la S è vici alla A d’altro canto…) ma di un altro acronimo, ovvero Service Provider Interface. Ma di cosa si tratta? In una parola, aderire a questo framework significa creare applicazioni “estendibili“, dove cioè si possono estendere certi servizi...
Continue reading...

JPA 2.1 Attribute Converters

Ormai si sa, molto spesso la piattaforma Java Enterprise prende, migliora e rende standard ciò che c’è di buono in giro e che alcuni vendor hanno sviluppato per spingere le specifiche Java EE sempre avanti con soluzioni praticamente già consolidate e apprezzate. Un esempio tra questi sono gli Attribute Converters JPA, già implementati in EclipseLink e a modo suo anche...
Continue reading...

IntelliJ & Android Studio shortcuts

IntelliJ IDEA è l’IDE sviluppato da JetBrains che sta diventando sempre più diffuso negli ultimi anni. La prima versione è del 2001 e storicamente è sempre stato un prodotto a pagamento. Soprattutto per questo motivo, ha avuto una nomea di prodotto di nicchia: non troppi utilizzatori ma molto contenti di pagare la licenza vista l’alta qualità del prodotto. Da un...
Continue reading...

TDD in javascript con RequireJS

TDD in Javascript con RequireJS Qualche tempo fa, scorrendo gli annunci di lavoro su LinkedIn, mi sono imbattuto in una descrizione molto simpatica (e significativa per l’argomento di questo post) di cosa era richiesto al candidato dalla società proponente. Tra le richieste più comuni (conoscenza delle tecnologie X e Y, approccio TDD, programmazione secondo i principi SOLID,….) spuntava in bella...
Continue reading...