Approfondimenti29/10/2024

Linting, perché?

agile software development

Articolo a cura di

Roberto Quaranta

Senior Software Developer

Linkedin

Con il termine Linting si intendono tutte quelle attività volte ad analizzare e migliorare la qualità del codice sorgente. 

Immaginate di lavorare in un team di sviluppo composto da 80 o 90 persone, tutte impegnate a collaborare su un unico repository di codice. Ogni giorno vengono proposte centinaia di modifiche, da sviluppatori con stili di programmazione differenti, che lavorano su funzionalità e parti di codice diverse. In questo scenario, il pericolo di difformità e di bassa qualità del codice è altissimo. Senza uno standard condiviso e senza strumenti adeguati per monitorare la qualità, il codice rischia di diventare presto ingestibile. 

Esistono dei tool che associati all’IDE di sviluppo riescono a garantire che il codice sia uniforme e conforme agli standard, e aiutano anche a prevenire bug, vulnerabilità e cattive pratiche che potrebbero compromettere la stabilità del progetto. 

Due strumenti ampiamente utilizzati per raggiungere questo obiettivo sono SonarLint ed ESLint.

SonarLint: un valido alleato per il tuo IDE

SonarLint è un'estensione progettata per identificare e risolvere i problemi di qualità del codice direttamente all'interno dell'IDE mentre lo sviluppatore scrive. È uno strumento leggero, che si integra facilmente con ambienti di sviluppo come Visual Studio Code, IntelliJ IDEA, Eclipse e molti altri, fornendo un feedback immediato durante la codifica. 

Le caratteristiche principali di SonarLint possono essere sintetizzate in questi 4 punti:

  • Rilevamento di Bug e Vulnerabilità: SonarLint rileva in tempo reale bug, vulnerabilità di sicurezza e code smell, permettendo agli sviluppatori di correggerli immediatamente. 
  • Suggerimenti Contestuali: Quando rileva un problema, SonarLint offre suggerimenti su come risolverlo, permettendo di apprendere buone pratiche mentre si scrive.  
  • Integrazione con SonarQube/SonarCloud: Per chi utilizza SonarQube o SonarCloud in azienda, SonarLint può essere sincronizzato per applicare le stesse regole di qualità, garantendo coerenza tra il codice controllato localmente e quello analizzato a livello centrale.  
  • Supporto Multilinguaggio: SonarLint supporta diversi linguaggi di programmazione, tra cui Java, JavaScript, Python, PHP, C# e altri, rendendolo uno strumento versatile per progetti che coinvolgono tecnologie diverse.

Uno strumento per gli sviluppatori front-end: ESLint

ESLint è uno strumento di linting progettato per individuare e correggere errori nel codice, promuovendo al contempo uno stile di codifica uniforme. È particolarmente utilizzato nel mondo dello sviluppo front-end. 

Eslint presenta le seguenti caratteristiche:

  • Regole Personalizzabili: ESLint offre la possibilità di definire regole personalizzate o di applicare standard di codifica predefiniti, come quelli di Airbnb o Google, garantendo che il codice segua uno stile uniforme. Le regole applicate di default sono disponibili nella pagina della documentazione ufficiale: https://eslint.org/docs/latest/rules/  
  • Plug-in per Framework e Librerie: ESLint dispone di una vasta gamma di plug-in che permettono di integrare facilmente il supporto per framework come React, Vue.js o Angular, permettendo di applicare regole specifiche per tali ambienti.  
  • Risoluzione Automatica degli Errori: molti errori rilevati da ESLint possono essere risolti automaticamente con un semplice comando, risparmiando tempo prezioso agli sviluppatori. 
  • Integrazione IDE: Come SonarLint, anche ESLint si integra perfettamente con ambienti di sviluppo come Visual Studio Code, fornendo feedback immediati e suggerimenti di miglioramento.

Perché utilizzare strumenti di linting

Concludendo SonarLint ed ESLint sono strumenti indispensabili per qualsiasi team di sviluppo che desideri mantenere elevati standard di qualità del codice. SonarLint, con la sua analisi in tempo reale, aiuta a prevenire l'introduzione di bug e vulnerabilità, mentre ESLint garantisce che il codice JavaScript/TypeScript sia uniforme e conforme agli standard predefiniti. 

Insieme, questi strumenti contribuiscono a migliorare la qualità complessiva del codice, facilitando la collaborazione tra sviluppatori e riducendo il tempo dedicato alla correzione di errori. 

Link utili 
https://www.sonarsource.com/products/sonarlint/  
https://eslint.org/ 

Plugin IntelliJ 
https://plugins.jetbrains.com/plugin/7973-sonarlint  
https://www.jetbrains.com/help/idea/eslint.html