Introduzione a Jenkins

200 - featured image

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...

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...

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...

Creazione di un plugin per Apache Cordova

Creazione di un plugin per Apache Cordova Di solito nello scegliere un framework per creare app mobile multipiattaforma ci si basa quasi esclusivamente sulla semplicità d’uso. In realtà la vera killer feature di questa tipologia di framework è un’altra: l’estendibilità attraverso plugin. Il motivo della centralità di questa caratteristica è presto detto: qualsiasi framework decideremo di utilizzare non potrà coprire...
Continue reading...

Una introduzione ai bot di Telegram

Lo scorso 24 Giugno, Telegram ha rilasciato la nuova piattaforma dedicata ai bot. E’ possibile ora migliorare l’esperienza utente tramite bot già disponibili oppure crearne uno personalizzato. La nuova piattaforma dispone di un accesso API tramite chiamate HTTP rendendo facile ed intuitivo l’interazione con i server di Telegram. In questo articolo vedremo solo alcuni meccanismi base, senza scendere nei dettagli...
Continue reading...