Cristian Maraglino

Cristian Maraglino

07/07/2024

Be smart not lazy

Developer
Work
Efficiency

​​Strumenti e strategie per massimizzare l’efficienza nello sviluppo software​!

In un settore in rapida evoluzione come lo sviluppo software, lefficienza è la chiave per rimanere competitivi. Piccole inefficienze possono accumularsi, rallentando il progresso e consumando risorse preziose. Questo articolo esplora una serie di strumenti e strategie che possono aiutare gli sviluppatori a velocizzare le piccole operazioni quotidiane e a migliorare il loro flusso di lavoro. Quante volte vi siete trovati con la classica acqua alla gola per un rilascio prossimo, un effort esaurito o qualsiasi altro tipo di scadenza, maledicendo tutte quelle operazioni piccole o apparentemente semplici ma laboriose?

​Migliorare la qualità della tua giornata lavorativa​

Ad esempio, non dovendoti preoccupare troppo di riflettere 1:1 la struttura di un JSON in una classe C#, specialmente se abbastanza complessa, oppure controllare le differenze tra un codice caricato nel sistema e uno nel tuo repository locale, per constatare se sono state effettuate delle modifiche prima di “allineare” il repository con le ultime modifiche o se per un errore di comunicazione si sta lavorando sullo stesso file in contemporanea; ora immagina esaminare un codice di 100 linee o più…il tempo e la fatica per esaminarlo cresce esponenzialmente con la quantità e complessità delle linee di codice.

​​Alcuni tool che potrebbero esserti utili

​​Chiaramente voglio dare alcuni esempi, per entrare più nel dettaglio dei vantaggi nell’utilizzo di queste risorse​

​​Avere delle referenze è sicuramente importante per risparmiarti il tempo di andarti a cercare i tool che almeno io, ritengo basici (ovviamente rapportato alla mia esperienza di lavoro soprattutto in ambito Dynamics 365 CRM).​

​​Formattatori JSON​

​JSON Formatter​

​​Questo strumento online ti permette di formattare, validare e convertire dati JSON. Puoi anche visualizzare i dati in una struttura ad albero per una migliore comprensione. Ad esempio, quando ricevi una risposta API in formato JSON, puoi utilizzare questo strumento per formattarla in modo leggibile e identificare facilmente i campi desiderati, oppure ordinare il JSON che hai compilato per la tua request.

​Json2CSharp Toolkit

​Con questo toolkit, puoi convertire qualsiasi oggetto JSON in classi C# online. Ad esempio, se stai lavorando con dati JSON provenienti da un servizio esterno, puoi utilizzare questo strumento per generare automaticamente le classi C# corrispondenti. Questo semplifica la deserializzazione dei dati JSON nel tuo codice.​

Testare le API

Postman

Postman è una piattaforma completa per la gestione delle API. Con il suo client REST, puoi inviare richieste, ispezionare risposte e debuggare facilmente le API. Ad esempio, se stai sviluppando un'applicazione che si integra con un servizio esterno tramite API, puoi utilizzare Postman per testare le richieste e verificare che le risposte siano corrette.Puoi anche creare collezioni di richieste per automatizzare i test e condividerle con il tuo team.

Comparare il codice

Diffchecker

Diffchecker è uno strumento online per confrontare testo e trovare le differenze tra due file di testo. È utile per verificare le modifiche apportate al codice o ai documenti. Ad esempio, se stai collaborando con altri sviluppatori su un progetto e ricevi una nuova versione di un file di configurazione o di un documento, puoi utilizzare Diffchecker per identificare le modifiche e assicurarti che nulla venga perso o sovrascritto accidentalmente.

Gestione del repository

Git

Padroneggiare Git è essenziale per la collaborazione nello sviluppo software. Utilizza branches, commit e pull request per gestire il codice in modo efficiente e sicuro. Ad esempio, se stai lavorando su un progetto open source o con un team distribuito, Git ti permette di coordinare gli sforzi di sviluppo e mantenere una cronologia completa delle modifiche. Saper maneggiare i vari comandi di Git può portare a risolvere molti problemi e ad avere una struttura ottimizzata nel proprio repository, fondamentale per evitare perdita di codice o duplicazioni e modifiche non desiderate.

Ricerca di informazioni

Portali Dedicati

Stack Overflow, Reddit, Microsoft Developer Communities o GitHub Discussions, consultare questi portali è un ottimo modo per risolvere problemi e imparare da altri sviluppatori. Ad esempio, se ti trovi bloccato su un problema specifico o hai bisogno di consigli su una tecnologia o un framework, puoi cercare risposte su questi forum e partecipare alle discussioni. La capacità di utilizzare le giuste parole chiave e filtrare il più possibile la tua ricerca, sarà fondamentale per non spendere troppo tempo navigando “nella nebbia”.

Utilizzo delle IA

Chat GPT e Copilot

Un aiuto importante, su cui non fare ancora troppo affidamento La capacità di saper “consultare” le IA si fa sempre più importante, ma ad oggi (parere personale) ancora non “ci ruberà il lavoro” cit. Ovviamente potremmo trovarci di fronte a una logica complessa richiesta dal cliente e con difficoltà nello strutturare la nostra idea di codice… consultando una IA spesso mi ritrovo a non avere la soluzione (a volte si, ammetto che sia capitato) ma spunti per poi sviluppare un codice adeguato alle esigenze del cliente. A volte ci propone soluzioni a piccoli bug ed errori che trascuriamo, scartandoli come “ovvi”. Sicuramente quello della IA è un panorama del quale seguire attentamente lo sviluppo, poiché la loro evoluzione può rivelarsi il conseguimento di un assistente super efficiente a portata di mano.

Analisi delle risposte delle chiamate API

Strumenti di Debug

Utilizza strumenti come Postman per testare le tue API e analizzare le risposte. Questo strumento ti consente di visualizzare i dettagli delle risposte, verificare i codici di stato HTTP e identificare eventuali errori. Log Dettagliati Includi log dettagliati nel tuo codice per registrare le risposte delle API. Questo ti aiuterà a tracciare il flusso di dati e individuare eventuali problemi.

Analisi dei risultati delle operazioni del codice

DevTools:

Il devTools integrato nei browsers può essere uno strumento molto utile per analizzare l’esecuzione del codice, sia consultando la console per errori e warnings e leggere i log impostati, è anche possibile monitorare operazioni di rete, inserire breakpoints per esaminare il codice passo a passo durante la sua esecuzione, tutto ciò, seppur comportando lo sforzo nell’eseguire una indagine analitica, risulta utilissimo in rispetto a non avere nessun indizio riguardo l’errore in cui ci siamo imbattuti.

Analisi del traffico di rete dettagliata

Utilizza strumenti come Wireshark per analizzare il traffico di rete. Puoi catturare e ispezionare i pacchetti di dati per individuare eventuali problemi di comunicazione tra il tuo software e altri servizi. Log di Rete: Registra i dettagli delle richieste e delle risposte di rete nei tuoi log. Questo ti aiuterà a tracciare eventuali errori di connessione o problemi di latenza.

L’impegno costante alla base del successo:

Nonostante abbia illustrato strumenti per rendere “smart” il lavoro, non esiste un “deus ex machina” che possa risolvere tutti i nostri problemi e darci le risposte che cerchiamo, in Desution ovviamente puntiamo a trarre il massimo vantaggio da ogni strumento, ma senza mai mancare di quella scintilla necessaria per accendere la miccia che ci porta ai risultati della miglior qualità possibile nei servizi che offriamo, tra i quali spunta la customizzazione in ambiente Dynamics 365 CRM. Tra plugins, custom actions, custom API, javascript, typescript, Azure functions, Flows, PCFs e la vasta lista di possibilità offerte da Power Apps, avere dimestichezza con questi strumenti sopracitati (e non solo) ci permette di lavorare con il massimo focus sulle logiche e funzionalità più complesse, ottimizzando le tempistiche proprio riguardo le “piccole” ma “laboriose” operazioni.

CONCLUSIOnE:

In sintesi, u0tilizzare questi strumenti aiuta molto nel nostro lavoro:

  • Risolvere i problemi di debug grazie alla possibilità di analizzare gli errori step by step.
  • Avere più possibilità di rispettare le tempistiche concordate.
  • Ridurre lo stress e i micro-carichi di lavoro.
  • Sviluppare capacità di ricerca.
  • Focalizzarsi sui processi più impegnativi canalizzando correttamente sforzi e risorse.
  • Apprendere nuove nozioni da fonti esterne.
  • Non esitare a esplorare diverse strategie e strumenti per individuare e risolvere gli errori nel tuo codice. 🛠️