Come Pulire il Codice ABAP Utilizzando ABAP Cleaner | SapProfession gtag('config', 'AW-858385100');

Come Pulire il Codice ABAP Utilizzando ABAP Cleaner

Come sviluppatore ABAP, riesci a immaginare un mondo privo di strumenti come Pretty Printer o ABAP Formatter?

Pensa a un contesto in cui devi continuamente attivare e disattivare il blocco delle maiuscole per ogni parola chiave di ABAP, a dover sistemare manualmente l'indentazione di ogni riga di codice, e a perdere tempo prezioso in ogni revisione del codice spiegando cosa dovrebbe essere in maiuscolo o in minuscolo. Probabilmente, questa non è una situazione che vorresti immaginare!

More...

In modo molto simile, credo che dopo oggi non vorrai più nemmeno pensare al mondo dello sviluppatore ABAP senza lo strumento di pulizia ABAP. Questo perché la gestione di maiuscole/minuscole e l'indentazione, come quelle effettuate dal Pretty Printer, sono solo due delle molteplici sfide legate a un codice ben formattato, leggibile, mantenibile e testabile (in altre parole: pulito). E ci sono molte altre sfide che, come si scopre, possono essere automatizzate!

ABAP Cleaner: Automate Whatever Can be Automated!

A partire da ora, ABAP Cleaner offre 65+ regole di pulizia, che possono essere applicate al tuo codice ABAP con una sola pressione di un tasto.

abap cleaner

 

L'utilizzo di ABAP Cleaner è molto simile all'utilizzo di Pretty Printer, ma con un ambito molto più ampio di regole di pulizia e con la possibilità di configurare esattamente come dovrebbe apparire il codice pulito. E poiché ABAP cleaner copre anche l'ambito di Pretty Printer, potresti davvero finire in un mondo senza Pretty Printer dopo oggi!

 

Come installare ABAP Cleaner

ABAP cleaner è un progetto open source che è stato pubblicato su GitHub nell'aprile 2023 e continua ad evolversi.

 

Per installare il plug-in ABAP Cleaner per ABAP Development Tools (ADT), è sufficiente avviare ADT, selezionare il menu 'Aiuto/Installa nuovo software...', copiare il link https://sap.github.io/abap-cleaner/updatesite nel campo 'Lavora con', premere Invio e seguire i passaggi di installazione, confermando l'installazione di ABAP Cleaner (il contenuto non è attualmente firmato). Per i dettagli e la risoluzione dei problemi, fare riferimento a Requisiti e installazione.

adt installation

 

 

In alternativa, se non è possibile utilizzare ADT, è disponibile una versione autonoma di ABAP cleaner per Windows, macOS e Linux che può essere scaricata qui. Questa versione, tuttavia, richiede l'utilizzo degli Appunti per ottenere il codice ABAP in entrata e in uscita da ABAP Cleaner. Si consiglia pertanto di utilizzare ADT e il plug-in ABAP cleaner.

 

Come utilizzare il plug-in ABAP Cleaner per gli strumenti di sviluppo ABAP

Dopo aver installato ABAP Cleaner e aver aperto un editor di codice ABAP in ADT, troverai tre voci di menu aggiuntive nel menu Codice sorgente:

 

adt integration

Pulizia automatizzata

L'utilizzo della pulizia automatica è semplice come l'utilizzo di Pretty Printer: selezionare qualsiasi quantità di codice, da una singola istruzione fino all'intero codice, nell'editor di codice corrente e premere Ctrl+4 o selezionare il menu "Codice sorgente/Pulisci con ABAP Cleaner automatizzato":

adt menu

 

 

In questo modo verranno eseguite tutte le regole di pulizia attive sul codice contemporaneamente, con le impostazioni predefinite di ABAP Cleaner o in base alla configurazione, come descritto di seguito.

 

Suggerimento 1: La selezione viene sempre estesa a intere istruzioni ABAP, quindi la selezione di una sola riga o anche di un solo carattere di un'istruzione è sufficiente per fare in modo che ABAP più pulito includa l'intera istruzione nella pulizia.

 

Suggerimento 2: invece di selezionare il codice da pulire, puoi anche non selezionare alcun codice. In questo caso, Ctrl+4 pulirà automaticamente il metodo corrente, la subroutine, ecc. in cui è posizionato il cursore, o la sezione di definizione corrente, ad esempio PUBLIC SECTION.

 

In base alla nostra esperienza, presto utilizzerai la pulizia automatica con la stessa regolarità con cui usavi Pretty Printer e, in effetti, la scorciatoia Ctrl+4 è stata selezionata per essere facilmente combinata con Ctrl+F2 (per il controllo della sintassi) e Ctrl+F3 (per l'attivazione). Ctrl+4 non deve essere confuso con Ctrl+F4, poiché quest'ultimo chiuderebbe effettivamente la scheda dell'editor. Quando inizi a usare ABAP cleaner, probabilmente vorrai muoverti un po' lentamente all'inizio e vedere cosa succede!

Pulizia interattiva

Per utilizzare la pulizia interattiva, selezionare qualsiasi codice nell'editor (o nessun codice per pulire il metodo corrente, ecc.) e premere Ctrl+Maiusc+4 o selezionare il menu "Codice sorgente/Pulisci con ABAP Cleaner interattivo...":

adt menu interactive

 

 

Visualizzazione delle differenze

Si aprirà la finestra principale di ABAP cleaner, che mostra una vista diff del codice in arrivo sul lato sinistro e il risultato della pulizia sul lato destro:

diif view

 

 

Lo sfondo giallo e arancione evidenzia i cambiamenti, lo sfondo rosso e verde mostra le righe cancellate e aggiunte. È possibile utilizzare i tasti freccia sinistra e destra (e molte altre scorciatoie) per passare alla differenza precedente o successiva.

Regole utilizzate nella selezione corrente

Quando si selezionano una o più istruzioni nella visualizzazione delle differenze, l'elenco Regole utilizzate nella selezione corrente mostrerà quali regole di pulizia sono state utilizzate per apportare le modifiche selezionate:

main windows rules

 

 

È possibile disattivare i segni di spunta per annullare localmente una modifica. Si noti che questo NON disattiva la regola di pulizia in generale, ma solo le modifiche attualmente selezionate nella vista delle differenze.

 

IInvece di disattivare localmente una regola dall'elenco, è possibile fare Ctrl+clic sulla regola per regolare le sue opzioni di configurazione in base alle proprie esigenze, o anche disattivare completamente la regola di pulizia nel profilo corrente (vedere "Come configurare ABAP Cleaner" di seguito).

Opzioni di visualizzazione

Se il display è tutto giallo a causa di molte modifiche, è possibile disattivare l'evidenziazione di alcuni tipi di modifiche meno significative, in genere rientro, spazio interno e modifiche maiuscole/minuscole. La visualizzazione delle differenze evidenzierà e passerà solo alle modifiche "testuali":

main-window-display-settings

 

Altre impostazioni di visualizzazione si trovano nel menu "Visualizza", dove è possibile ingrandire e rimpicciolire, evidenziare le dichiarazioni e le variabili nelle posizioni di scrittura.

Cleanup Settings

-main-window-cleanup-settings

Nell'angolo in alto a destra, troverai tre impostazioni importanti per la tua pulizia:

 

 

La prima di queste impostazioni consente di selezionare un profilo di pulizia. Ogni profilo memorizza l'attivazione (o la disattivazione) di tutte le regole di pulizia disponibili e la configurazione dettagliata di tali regole. Vedremo di seguito come creare e configurare i propri profili. Si noti che l'ultimo profilo selezionato nella finestra di pulizia interattiva verrà quindi utilizzato per la pulizia automatica con CTRL+4.

 

L'impostazione dell'intervallo di pulizia predefinito consente di determinare la quantità di codice da pulire se non viene selezionato alcun codice mentre si preme CTRL+MAIUSC+4: l'istruzione corrente, il metodo corrente, la classe corrente o l'intero documento di codice.

 

Infine, è possibile limitare le regole alla sintassi di una determinata versione ABAP. In questo modo si eviterà l'introduzione di sintassi più recenti, ad esempio le assegnazioni di calcolo (+=, *= e così via), nel codice se la versione specificata non le supporta ancora. Nel plug-in ADT, questa restrizione viene selezionata automaticamente per la versione ABAP del codice; tuttavia, è possibile limitare ulteriormente la versione se lo stesso codice viene successivamente trasferito a una versione ABAP precedente.

Applica modifiche

Se si accettano le modifiche suggerite da ABAP cleaner, è possibile chiudere la finestra premendo Applica e Chiudi. In questo modo le modifiche verranno trasferite all'editor ADT, dove sarà possibile attivarle. In alternativa, premere Annulla per annullare tutte le modifiche suggerite.

Anteprima di sola lettura senza blocco o modifica del codice

Una terza voce di menu nel menu Codice sorgente offre la possibilità di mostrare un'anteprima di sola lettura con ABAP Cleaner:

ADT-menu-read-only-preview

 

 

In questo modo viene aperta l'interfaccia utente di pulizia ABAP con la visualizzazione delle differenze esattamente come la pulizia interattiva, tuttavia, in caso di anteprima di sola lettura, il codice ABAP non è bloccato e non verrà modificato quando si torna all'editor ADT. È possibile utilizzare questo menu se un oggetto di codice è già bloccato da un altro utente o se non si dispone di un'autorizzazione di trasporto o addirittura di sviluppo in un sistema, ma si desidera comunque visualizzare il possibile risultato della pulizia o modificare le impostazioni e la configurazione di ABAP Cleaner.

 

Questo menu potrebbe anche essere utile per leggere semplicemente il codice legacy che non può essere modificato: invece di guardare il vecchio (e potenzialmente difficile da leggere) codice, è possibile guardare la versione pulita nella visualizzazione a destra della vista delle differenze (eventualmente disattivando le opzioni Visualizza: Evidenzia).

Come configurare ABAP Cleaner

Il pulitore ABAP viene installato con due profili di pulizia:

  • Nel profilo predefinito, quasi tutte le regole di pulizia sono attivate con quelle che riteniamo siano impostazioni predefinite valide per l'uso da parte di tutti.
  • Nel profilo essenziale vengono attivate solo le regole di pulizia richieste in modo esplicito dalla guida di stile Clean ABAP. Attualmente, questo è vero per circa il 40% delle regole. Ciò dimostra che è possibile un'automazione anche al di là delle esigenze specifiche della guida di stile, e pensiamo che sia vantaggioso, semplicemente perché una formattazione coerente aiuta la leggibilità. In effetti, essere coerenti è una regola guida di stile!

In ogni caso, potresti voler esplorare in modo più dettagliato quali regole di pulizia sono disponibili in ABAP Cleaner e come possono essere configurate per ottenere esattamente la formattazione del codice che tu e il tuo team preferite. Questo viene fatto premendo il pulsante Configura... nell'angolo in alto a destra della finestra interattiva di pulizia ABAP, che mostrerà quindi la seguente finestra per la configurazione dei profili e delle regole:

configuration

 

Exploring the Cleanup Rules

Currently, ABAP cleaner offers 69 cleanup rules, which are grouped into rules on empty lines, spaces, declarations, syntax, commands, Pretty Printer, and alignment:

available-cleanup-rules

 

 

Se si fa clic su una delle regole di pulizia nell'elenco Regole nel profilo corrente, il lato destro della finestra mostrerà informazioni dettagliate su questa regola. Questo è il modo migliore per esplorare ciò che offre il detergente ABAP. Troverete:


configuration-references


  • Options with which you can configure the cleanup rule to get exactly the formatting and cleanup result that you and your team want:
configuration-options


  • Esempi che illustrano in una vista diff le modifiche apportate alla regola e il modo in cui le opzioni influenzano il risultato. È possibile incollare il proprio codice in questa visualizzazione delle differenze per testare la regola di pulizia corrente e l'effetto delle relative impostazioni sul codice.
configuration-examples

 

Selezionando o deselezionando una regola nell'elenco, questa verrà attivata o disattivata nel profilo corrente.

Attivazione e configurazione di nuove regole di pulizia dagli aggiornamenti

ABAP cleaner non è un progetto concluso, ma continua ad evolversi con nuove regole di pulizia e nuove opzioni per le regole esistenti. ADT ti informerà automaticamente ogni volta che è disponibile e può essere installato un nuovo aggiornamento per ABAP Cleaner. Gli aggiornamenti con nuove funzionalità miglioreranno quindi l'elenco delle regole e delle opzioni di pulizia disponibili in ogni profilo, inclusi i profili esistenti.

 

È possibile decidere per ogni profilo se si desidera attivare automaticamente le nuove funzionalità dopo gli aggiornamenti:

 

configuration-profile-settings.

 

Se preferisci un approccio più cauto, puoi disattivare questa opzione. Le regole appena aggiunte saranno quindi inattive all'inizio e le nuove opzioni di configurazione verranno impostate su un'impostazione neutra che crea lo stesso risultato di prima dell'aggiunta dell'opzione. Con questo approccio, è possibile aprire occasionalmente la configurazione del pulitore ABAP per verificare quali nuove regole di pulizia sono state aggiunte nel frattempo.

 

Per aiutarti in questo, ABAP cleaner offre l'impostazione Highlight: Funzionalità aggiunte dopo <versione> (<data>). Con ciò, l'elenco delle regole evidenzia le regole aggiunte di recente (verde) o le regole che hanno nuove opzioni di configurazione (giallo), consentendo di attivare e configurare queste nuove funzionalità in base alle esigenze.

Modifica e creazione di profili

Ogni profilo contiene tutte le regole attive o inattive e le relative opzioni di configurazione dettagliate. Nella sezione Profili, è possibile selezionare uno dei profili preconfigurati per visualizzarlo o modificarlo. Puoi anche creare i tuoi profili o copiare, eliminare, rinominare, importare ed esportare quelli esistenti:

configuration-profiles

 

 

Tecnicamente, un profilo è un piccolo file di testo simile a JSON con estensione .cfj che viene memorizzato nei dati dell'applicazione sul computer locale.

Sincronizzazione dei profili del team

Se fai parte di un team che lavora sullo stesso codice ABAP, probabilmente vorrai allinearti alle impostazioni di pulizia ABAP da usare. A supporto di ciò, ABAP cleaner offre un meccanismo per sincronizzare i profili che possono quindi essere utilizzati in modo coerente in tutto il team.

 

Per questo, fai clic sul pulsante Cartelle nella sezione Profili della finestra di configurazione. In questo modo è possibile specificare fino a tre cartelle aggiuntive per i profili del team:

configuration-profile-folders

 

 

Specificando le cartelle sincronizzate all'interno dell'organizzazione, ad esempio tramite SharePoint o OneDrive, i profili possono essere facilmente condivisi con chiunque si desideri allineare la formattazione del codice. I profili del team vengono aggiunti all'elenco dei profili con il nome breve fornito (ad es. "team A: predefinito") e sono di sola lettura per tutti, quindi in ABAP cleaner possono essere utilizzati e visualizzati, ma non modificati.

 

L'architetto del team o lo sviluppatore principale possono quindi gestire un profilo di origine localmente nei propri profili e utilizzare il pulsante Esporta... per copiare questo profilo nella cartella sincronizzata ogni volta che viene modificata la configurazione da distribuire al team.

Vantaggi dell'utilizzo di ABAP Cleaner

Spero che ABAP cleaner si riveli presto utile per te:

  • risparmiando un sacco di tempo e concentrazione che dovevi dedicare alla noiosa formattazione del codice, che ora è automatizzata.
  • lasciando più tempo per il refactoring complesso e i miglioramenti del codice che non possono essere automatizzati.
  • aiutando te e il tuo team a creare codice ABAP in uno stile coerente e ben formattato, più facile da leggere, comprendere e gestire per tutti i membri del team.
  • Semplificando l'onboarding dei nuovi sviluppatori, perché qualsiasi regola di codice pulito che può essere automatizzata non deve essere specificata nelle linee guida e appresa.
  • Sgravare le revisioni del codice da discussioni infruttuose sullo stile che ora possono essere decise una volta per tutte configurando un profilo di pulizia comune.
  • riducendo il numero di risultati ATC/code pal, perché con ABAP cleaner, alcuni di essi, compresi alcuni molto frequenti, vengono risolti prima ancora che si presentino.
  • ancora una volta, lasciandoti più tempo per i risultati più complessi di ATC/code pal. In base all'esperienza, è più probabile che un minor numero di risultati venga preso sul serio.
  • Ridurre il numero di errori nel codice, perché nel codice ben formattato, gli errori possono essere individuati più facilmente o possono addirittura essere evitati in primo luogo.
  • supportarvi nei vostri sforzi per migliorare il codice legacy, ad esempio sostituendo automaticamente alcune istruzioni obsolete con una sintassi più recente.
  • rendere felici i perfezionisti del tuo team con un codice pulito e ordinato, e rendere felici anche i non perfezionisti, perché ottengono molto di questo semplicemente premendo Ctrl+4!

ABAP Cleaner nell'ambito di altri progetti Clean ABAP

A dire il vero, ABAP cleaner non è l'unico progetto open-source che si occupa di ABAP pulito. È possibile classificare approssimativamente questi progetti in tre insiemi, o cerchi, mostrati qui con i rispettivi progetti open source avviati da SAP (ci sono, ovviamente, anche progetti non avviati da SAP!)

SAP-initiated-projects-for-clean-ABAP

 

 

Nessuno di questi progetti è stato completato, il che significa che ciascuno dei cerchi continua ad espandersi nel tempo, cercando di descrivere ancora meglio come dovrebbe essere l'ABAP pulito, di fornire maggiori controlli per la segnalazione di violazioni delle regole del codice pulito e di automatizzare ulteriormente. Ciononostante, è ovvio che alcuni aspetti di ABAP pulito possono essere descritti, ma non controllati, come ad esempio "Usa nomi di variabili descrittivi". Allo stesso modo, alcuni problemi possono essere controllati, mentre la loro risoluzione non può essere automatizzata, ad esempio quando viene superato il numero massimo consigliato di attributi o metodi in una classe.

 

Click Here to Leave a Comment Below 0 comments
elenco Blog