Posts

Showing posts with the label ingegneria del software

LA DISILLUSIONE DEL CODICE: QUANDO IL SOGNO INCONTRA LA REALTA'

Image
Ho intrapreso la carriera nell'ambito della programmazione e dell'ingegneria del software un po' per caso, come spesso accade per le scelte che poi definiscono la nostra vita professionale. Il movente principale era però il fatto che, tramite il codice e la programmazione, sentissi la possibilità di fare tutto quello che mi saltava per la testa: costruire mondi digitali, risolvere problemi complessi, dare vita a idee che prima esistevano solo nella mia immaginazione. Credo che tutto dipenda dal fatto che sono nato in un contesto in cui la tecnologia, i computer ed i cellulari erano dominanti: facevano parte del paesaggio quotidiano, non più oggetti misteriosi ma strumenti di creazione infinita. In quegli anni, programmare sembrava davvero una forma di magia moderna, dove bastava conoscere le giuste incantesimi - i linguaggi di programmazione - per materializzare qualsiasi fantasia digitale. Tuttavia, con il passare degli anni, quel sogno ha lasciato spazio alla realtà, spes...

INTERVISTA A FABIO CASTALDI - SOLUTION DEVELOPER @ENGINEERING

Ed eccoci giunti alla terza puntata di  Intervista a , format nel quale pongo domande a coder, sviluppatori software, devops ed architetti che ho, direttamente o indirettamente, incontrato nel mio percorso lavorativo e che sono stati fonte di grande ispirazione. Dopo l'intervista a Leanid e Gennaro, ho voluto somministrare  il questionario a Fabio: di lui posso dire che è un leader nato, un animo commerciale ma al tempo stesso analitico. Credo che averlo avuto nel team - in passato eravamo colleghi - sia stato fondamentale sia in termini di produttività che di gestione dell'umore e delle dinamiche sociali e di gruppo. Ma, non mi perdo in ulteriori chiacchiere e lascio a lui l'onere di presentarsi e spiegare la sua attività lavorativa. 1) Ciao Fabio, puoi fornire ai lettori una piccola introduzione di chi sei, di cosa ti occupi e da quanto svolgi il ruolo di sviluppatore software? Certamente! Sono Fabio Castaldi e faccio lo sviluppatore da quasi 10 anni. Attualmente, oltre a...

THREAD VIRTUALI IN JAVA: UNA NUOVA ERA DEL MULTITHREADING

Image
Java ha sempre avuto un supporto robusto per il multithreading sin dai suoi esordi, ma la gestione dei thread tradizionali non è priva di limitazioni. Con l'introduzione dei thread virtuali a partire dalla JDK 19 come funzionalità preview e stabilizzati nella JDK 21 , il linguaggio ha compiuto un grande passo avanti nella gestione delle applicazioni concorrenti. In questo articolo, esploreremo cosa sono i thread virtuali, perché sono utili e come si confrontano con i thread tradizionali e le soluzioni offerte da altri linguaggi di programmazione. Cosa Sono i Thread Virtuali? I thread virtuali sono un nuovo tipo di thread leggero introdotto nel progetto "Project Loom" di Java. A differenza dei thread tradizionali (spesso chiamati thread di piattaforma), che sono strettamente legati a un thread del sistema operativo, i thread virtuali sono gestiti dalla JVM (Java Virtual Machine) e non richiedono una corrispondenza uno-a-uno con i thread del sistema operativo. Questi threa...

INTERVISTA A GENNARO CESARO - SOFTWARE ENGINEER @RELATECH

Ed eccoci giunti alla seconda puntata di Intervista a , format nel quale pongo domande a coder, sviluppatori software, devops ed architetti che ho, direttamente o indirettamente, incontrato nel mio percorso lavorativo e che sono stati fonte di grande ispirazione. Dopo l'intervista a Leanid, ho voluto somministrare  il questionario a Gennaro: di lui posso dire che è un tuttofare, un tipo silenzioso che compensa le poche parole con il codice. Credo che averlo avuto nel team - in passato eravamo colleghi - sia stato fondamentale sia in termini di produttività che di motivazione. Ma, non mi perdo in ulteriori chiacchiere e lascio a lui l'onere di presentarsi e spiegare la sua attività lavorativa. 1) Ciao Gennaro, puoi fornire ai lettori una piccola introduzione di chi sei, di cosa ti occupi e da quanto svolgi il ruolo di sviluppatore software? Ciao a tutti, sono Gennaro Cesaro, ma se proprio volete, potete chiamarmi come mi chiamano i miei colleghi: capo. Ora, non è che io sia un g...

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

L'IMPORTANZA DEI FEATURE FLAG NEI PROCESSI DI RILASCIO DEL SOFTWARE

Nel mondo dello sviluppo software Agile, la capacità di rilasciare rapidamente e frequentemente nuove funzionalità è cruciale. Una delle tecniche che permette di raggiungere questo obiettivo è l'uso dei feature flag . I feature flag, noti anche come toggle , consentono ai team di attivare o disattivare specifiche funzionalità del software senza dover distribuire nuove versioni del codice. In questo articolo esploreremo l'importanza dei feature flag nei processi di rilascio Agile, fornendo un esempio pratico e citando riferimenti accademici per supportare le nostre affermazioni. L'Importanza dei Feature Flag nei Processi di Rilascio Agile - Incremento della Flessibilità e della Gestione del Rischio I feature flag offrono una flessibilità senza precedenti nel controllo del rilascio delle funzionalità. Permettono ai team di rilasciare il codice in produzione con nuove funzionalità disattivate, attivandole solo quando si è sicuri che siano pronte e stabili. Questo approccio rid...

INTERVISTA A LEANID HERASIMAU - SENIOR SOFTWARE DEVELOPER @ SPINDOX

Nei precedenti post, vi avevo preannunciato della grandi novità...ed eccomi qui ad inaugurare la serie di interviste a coder, sviluppatori software, devops ed architetti che ho, direttamente o indirettamente, incontrato nel mio percorso lavorativo e che sono stati fonte di grande ispirazione. Il primo a cui ho sommistrato il questionario non poteva non essere che lui, Leo: credo sia stata la persona più intelligente ma al tempo stesso umile che io abbia mai incontrato nella mia vita. Non mi perdo in chiacchiere ma lascio a lui l'onere di presentarsi e spiegare la sua attività lavorativa. 1) Ciao Leo, puoi fornire ai lettori una piccola introduzione di chi sei, di cosa ti occupi e da quanto svolgi il ruolo di sviluppatore software? Ciao a tutti, sulla carta mi chiamo Leanid, ma potete chiamarmi Leonid o Leo, a meno che non preferiate avere a che fare con la mia versione bielorussa ufficiale :) Facciamo un salto indietro al 2014, ok? Ero lì, a lavorare in una gioielleria, e diciamoce...

IL DESIGN PATTERN FACTORY IN JAVA: CREARE OGGETTI CON ELEGANZA E FLESSIBILITÀ

Il design pattern Factory è una delle soluzioni più utilizzate nel mondo dello sviluppo software per gestire la creazione di oggetti in modo flessibile ed elegante. Questo pattern appartiene alla categoria dei creazionali e si concentra sulla creazione di oggetti senza specificare la loro classe concreta. Vediamo come funziona questo pattern e come implementarlo in Java, con un esempio pratico. Concetto di Factory Pattern Il Factory Pattern delega la responsabilità della creazione di oggetti a una classe separata, chiamata "Factory". Questa classe ha il compito di istanziare gli oggetti desiderati senza esporre i dettagli di implementazione. In questo modo, il client (chi utilizza la Factory) non è vincolato a conoscere la logica di creazione degli oggetti. Vantaggi del Factory Pattern Astrazione della Creazione : Il Factory Pattern fornisce un'astrazione chiara tra il processo di creazione degli oggetti e il loro utilizzo. Il client non ha bisogno di conoscere i dettagl...

Popular posts from this blog

FONDO COMETA: UNA GUIDA COMPLETA AL FONDO PENSIONE DEI METALMECCANICI

QUERY E SPRING DATA

QUEI COPIONI DEGLI ETF

STRATEGIE D'INVESTIMENTO A CONFRONTO: DOLLAR-COST AVERAGING VS VALUE AVERAGING

AGGIORNAMENTO INVESTIMENTI 2° TRIMESTRE 2024

UNA PICCOLA INTRODUZIONE A DART

SOFTWARE TESTER ONLINE CON TESTBIRDS