Logo Tom's Hardware
  • Hardware
  • Videogiochi
  • Mobile
  • Elettronica
  • EV
  • Scienze
  • B2B
  • Quiz
  • Tom's Hardware Logo
  • Hardware
  • Videogiochi
  • Mobile
  • Elettronica
  • EV
  • Scienze
  • B2B
  • Quiz
  • Forum
  • Sconti & Coupon
Offerte & Coupon
Accedi a Xenforo
Immagine di La "greppability" tra le misure più importanti della qualità del codice
Business
Immagine di Vuoi diventare un SOC Manager? Segui questa guida Vuoi diventare un SOC Manager? Segui questa guida...
Immagine di Le startup ad alto contenuto scientifico cominciano a fare sul serio Le startup ad alto contenuto scientifico cominciano a fare s...

La "greppability" tra le misure più importanti della qualità del codice

La "greppability" è una misura molto utile che determina la qualità del codice e aiuta gli sviluppatori a manutenere la codebase.

Avatar di Marina Londei

a cura di Marina Londei

Editor @Tom's Hardware Italia

Pubblicato il 04/09/2024 alle 16:00
Quando acquisti tramite i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Scopri di più

Affinché una codebase sia facilmente manutenibile, il codice deve essere il più possibile di qualità. Un buon codice è leggibile, ben documentato, poco complesso, portabile, riusabile e testabile; a questi indicatori poi si può aggiungere la "greppability", ovvero la facilità con cui è possibile cercare nomi di variabili, funzioni  o altri elementi nella codebase.

Immagine id 33138

 

Il nome dell'indicatore deriva dal comando "grep", filtro usato per cercare occorrenze di stringhe o espressioni regolari nei file di sistema. Quando si ha a che fare con del codice su cui non si ha mai lavorato oppure che non si analizza da molto tempo, è fondamentale riuscire a trovare facilmente nomi di funzioni e classi, messaggi d'errore o variabili nel caso ci sia una modifica da fare, sia per la correzione di un bug che per un refactoring.

"Se non riesco a trovare ciò che cerco, nel caso migliore è frustrante, e nel caso peggiore si arriva a situazioni pericoloso dove ipotizzo che una cosa non serve più perché non trovo riferimenti nella codebase" spiega lo sviluppatore Moriz Büsing.

 

Nel suo blog Büsing condivide una serie di indicazioni per rendere il codice "greppable" e migliorarne la qualità complessiva; una di queste consiste nell'evitare di creare identificatori in maniera dinamica.

Anche se questa pratica rende il codice più pulito e asciutto, la manutenibilità cala perché gli sviluppatori che si occuperanno del progetto in futuro faranno fatica a cercare variabili e campi con il loro nome. 

Büsing consiglia anche di scegliere una rappresentazione "flat" per oggetti con proprietà innestate, in modo trovare facilmente i riferimenti alle chiavi a cui si sta accedendo. 

Se, per esempio, si ha una struttura del genere:

{
    "auth": {
        "login": {
            "title": "Login",
            "emailLabel": "Email",
            "passwordLabel": "Password",
        },
        "register":
            "title": "Register",
            "emailLabel": "Email",
            "passwordLabel": "Password",
        }
    }
}

è preferibile renderla in maniera flat:

{
    "auth.login.title": "Login",
    "auth.login.emailLabel": "Email",
    "auth.login.passwordLabel": "Password",
    "auth.register.title": "Login",
    "auth.register.emailLabel": "Email",
    "auth.register.passwordLabel": "Password",
}

Immagine id 31477

Infine, un altro consiglio che dà Büsing è di non rinominare i campi che si riferiscono a uno stesso oggetto, per esempio quando si convertono gli identificatori snake_case in camelCase. Ciò complica la ricerca di un nome e occorre cercare due stringhe al posto di una.

Una codebase di qualità non deve essere comprensibile solo per chi la scrive, ma soprattutto per chi dovrà leggerla e modificarla senza avere la minima conoscenza del codice; in tal senso, è necessario applicare buone pratiche per rendere la codebase navigabile, facilitando la manutenzione. 

Le notizie più lette

#1
VPN gratis o VPN a pagamento: quali sono le differenze?
1

Hardware

VPN gratis o VPN a pagamento: quali sono le differenze?

#2
VPN, perché la sede dei provider e dei server fa la differenza
4

Hardware

VPN, perché la sede dei provider e dei server fa la differenza

#3
Come nascondere il proprio indirizzo IP
1

Hardware

Come nascondere il proprio indirizzo IP

#4
5 motivi per cui dovreste usare una VPN
1

Hardware

5 motivi per cui dovreste usare una VPN

#5
Cos'è una VPN (Virtual Private Network)
1

Hardware

Cos'è una VPN (Virtual Private Network)

👋 Partecipa alla discussione!

0 Commenti

⚠️ Stai commentando come Ospite . Vuoi accedere?

Invia

Per commentare come utente ospite, clicca triangoli

Cliccati: 0 /

Reset

Questa funzionalità è attualmente in beta, se trovi qualche errore segnalacelo.

Segui questa discussione

Ti potrebbe interessare anche

Le startup ad alto contenuto scientifico cominciano a fare sul serio

Sponsorizzato

Le startup ad alto contenuto scientifico cominciano a fare sul serio

Di Valerio Porcu
Vuoi diventare un SOC Manager? Segui questa guida
2

Business

Vuoi diventare un SOC Manager? Segui questa guida

Di Antonino Caffo
L'AI non usa la rete: la riscrive. Ma c’è un conto da pagare

Business

L'AI non usa la rete: la riscrive. Ma c’è un conto da pagare

Di Valerio Porcu
3 Prompt per creare le policy AI aziendali gratis

Business

3 Prompt per creare le policy AI aziendali gratis

Di Roberto Buonanno
QNAP stringe il formato enterprise: il TS-h1077AFU porta lo storage all-flash in 1U

Business

QNAP stringe il formato enterprise: il TS-h1077AFU porta lo storage all-flash in 1U

Di Valerio Porcu
Footer
Tom's Hardware Logo

 
Contatti
  • Contattaci
  • Feed RSS
Legale
  • Chi siamo
  • Privacy
  • Cookie
  • Affiliazione Commerciale
Altri link
  • Forum
Il Network 3Labs Network Logo
  • Tom's Hardware
  • SpazioGames
  • CulturaPop
  • Data4Biz
  • SosHomeGarden
  • Aibay
  • Coinlabs

Tom's Hardware - Testata giornalistica associata all'USPI Unione Stampa Periodica Italiana, registrata presso il Tribunale di Milano, nr. 285 del 9/9/2013 - Direttore: Andrea Ferrario

3LABS S.R.L. • Via Pietro Paleocapa 1 - Milano (MI) 20121
CF/P.IVA: 04146420965 - REA: MI - 1729249 - Capitale Sociale: 10.000 euro

© 2026 3Labs Srl. Tutti i diritti riservati.