Posts

BEST PRACTICES PER PROGETTI JAVA E SPRING BOOT: EFFICIENZA ENERGETICA E SOSTENIBILITA'

Image
Nel panorama attuale, la sostenibilità ambientale sta diventando una priorità anche nel settore IT. Con l’aumento dei consumi energetici e l'impatto ambientale dei data center, è importante adottare soluzioni di sviluppo che non solo garantiscano performance elevate, ma che siano anche efficienti dal punto di vista energetico. Per i progetti Java e Spring Boot, alcune best practices possono contribuire a ridurre il consumo della CPU, la gestione ottimizzata della memoria, e a minimizzare il rischio di memory leaks, rendendo le applicazioni più green . Vediamo come. 1. Gestione della Memoria e Prevenzione dei Memory Leaks Una gestione inefficiente della memoria può portare a un incremento nel consumo energetico. I memory leaks sono uno dei problemi più comuni in Java, e quando non vengono gestiti adeguatamente, portano a un uso massiccio di memoria e quindi di energia. Best Practices: Evita oggetti non necessari: Evita di creare oggetti non necessari, come istanze di classi "

INTRODUZIONE AI RECORD ED ALLE CLASSI SEALED IN JAVA

Image
Con il rilascio di Java 14 (marzo 2020), è stato introdotto un nuovo tipo di classe chiamato record . I record sono stati progettati per semplificare la creazione di classi che principalmente contengono dati. Inoltre, con Java 15 è stato introdotto anche il modificatore sealed per le classi, offrendo un controllo maggiore su come le classi possono essere estese. Esploriamo questi concetti in dettaglio, con esempi pratici. Cos'è un Record in Java? Un record è un tipo speciale di classe introdotto per rappresentare dati immutabili. In pratica, un record è una classe compatta e concisa che gestisce automaticamente le sue componenti principali come il costruttore, i metodi equals , hashCode e toString , il tutto senza la necessità di definire manualmente questi elementi (come suggeruti da un mio caro collega, con il record abbiamo un lombok nativo). I record sono ideali per rappresentare semplici strutture di dati come modelli di risposta API, coordinate o coppie di valori. Quando e

IMPRESSIONI E SENTIMENTI DAL CODEMOTION 2024

Image
Sono appena tornato dal Codemotion, conferenza sul mondo tech e digital tenutasi a Milano ad inizio settimana. E devo dirvi che....sono stati due giorni che mi hanno motivato tantissimo e fornito nuova energia per il futuro, sia lavorativo che personale.  Un'edizione, quella del 2024, in cui l'intelligenza artificiale l'ha fatta da padrona: molti talk vertevano su tecnologie finalizzate allo sviluppo di applicazioni in ambito AI o che assistono nello sviluppo mediante l'AI (è il caso ad esempio di Github Copilot); altri ancora ponevano il focus, invece, sui limiti  e di come sia importante utilizzarla con cautela prima che la stessa prenda il sopravvento sullo sviluppatore e sui fruitori del codice. Ho seguito molti speech, partecipato a dibattiti e ricevuto feedback da varie persone su ciò che faccio anche in questo blog: non mi aspettavo che fra i vari attendees vi fossero anche lettori abituali di queste pagine...segno evidente che il lavoro inizia a produrre i suoi

GESTIONE DELLA MEMORIA IN JAVA: IL RUOLO DEL GARBAGE COLLECTOR

Image
In Java, uno degli aspetti fondamentali della gestione della memoria è il Garbage Collector (GC) . Questo strumento automatizza il processo di gestione della memoria, liberando la memoria occupata dagli oggetti non più utilizzati. A differenza di linguaggi come il C o il C++, dove la gestione della memoria è manuale, Java affida il compito di allocazione e deallocazione della memoria al Garbage Collector, rendendo il codice più sicuro e meno incline a errori come i memory leaks . Aree di Memoria Coinvolte nel Garbage Collector La gestione della memoria in Java è suddivisa in varie aree, che includono lo Heap e lo Stack , e in particolare l'Heap viene ulteriormente suddiviso in sezioni che sono di interesse per il Garbage Collector: Stack: Utilizzato per la gestione delle chiamate di metodo e delle variabili locali. Ogni thread ha il proprio Stack, e la memoria viene allocata e deallocata in modo automatico quando le funzioni entrano ed escono dal contesto. Heap: Lo Heap è l'ar

INTRODUZIONE AI DESIGN PATTERN

Image
  I design pattern sono soluzioni comuni e riutilizzabili a problemi ricorrenti nella progettazione del software. Invece di reinventare la ruota ogni volta che ci si confronta con un problema, i pattern offrono una struttura già testata e ben definita per affrontare le sfide comuni di sviluppo. Tra i principali contributi in questo ambito vi è il libro "Design Patterns: Elements of Reusable Object-Oriented Software" , scritto dai cosiddetti Gang of Four (GoF) – Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides – che classifica i pattern in tre grandi categorie: creazionali , strutturali e comportamentali . Categorie di Design Pattern Creazionali : Questi pattern si concentrano sulla modalità con cui vengono create le istanze degli oggetti. Si preoccupano di astrarre il processo di instanziazione e di nascondere i dettagli di implementazione. Strutturali : I pattern strutturali si concentrano sull'organizzazione e composizione delle classi o degli oggetti per for

AGGIORNAMENTO INVESTIMENTI 3° TRIMESTRE 2024

Image
Nuovo trimestre e nuovo report sul mio patrimonio ed i miei investimenti. Se ti sei perso la puntata precedente, leggi l'articolo qui . Prima di iniziare la solita panoramica sui vari comparti finanziari ed ancor prima di procedere con il solito disclaimer, vorrei spendere due minuti sulle motivazioni che mi hanno spinto e, tutt'ora mi invogliano, a realizzare questa rubrica sul blog. Sono stati in molti a scrivermi in privato chiedendomi il perché io stessi flexando - termine molto in voga tra i giovani di oggi - il mio patrimonio. In realtà le ragioni dietro questi articoli sono principalmente due: creare questi report mi obbliga a gestire meglio e con più raziocinio le mie finanze rafforzando il mio committment anche per la fase di budgeting; stimolare un dibattito sul tema denaro, sfatando un po' il tabù culturale e promuovendo un nudismo finanziario. Parlare pubblicamente di soldi, stipendi e motivazioni economiche è il primo passo per eliminare il "blocco mentale

COME HO USATO HANDLEBARS.JS NEL MIO SITO PERSONALE

Handlebars.js favorisce la separazione della logica di presentation da quella di business: è in sostanza un templating language, basato su Moustache , che a partire da un template ed da un oggetto di input è in grado di generare codice html per la visualizzazione di dati seriali in formato json. Sebbene non sia una tecnologia così fresh, su Github il progetto ha più di 15.000 stars ma l'ultima release risale al 1 agosto del 2023, continuo ad usarlo su alcuni miei progetti che si basano su jQuery o su Javascript puro e che non utilizzano librerie e framework moderni come ad esempio Angular o React. La mia esigenza era quella di rendere più dinamico l'update dei contenuti del sito personale e del blog, oltre che come detto poc'anzi separare il codice javascript dal layer deputato dalla parte di visualizzazione dei dati. Per far ciò, servendomi di questa semplice ma potente libreria, ho creato una cartella templates a livello della root del progetto ed al cui interno ho, per i