Come per il titolo, dovrei spiegare la sintassi che uso nel mio codice quando ho una ragionevole aspettativa che uno sviluppatore che guarda il mio codice in futuro non lo conosca? Breve avvertimenti o spiegazioni potrebbero essere aggiunti in linea mentre le costruzioni più complesse sarebbero riferite al nome e al numero di versione per consentire una rapida ricerca nella documentazione.
I due motivi principali per cui potrebbero non comprendere la sintassi sono perché si tratta di una nuova aggiunta al linguaggio o della sintassi che viene raramente utilizzata dagli sviluppatori "medi". Supponiamo che l'uso di questa sintassi sia l'approccio raccomandato e non che io voglia scrivere codice di fantasia. (No, non sono XOR swaping in lingue di alto livello.)
Da un lato, i commenti sono lì per facilitare la manutenzione e se fornisco questa spiegazione potrei salvare un futuro sviluppatore con un sacco di sforzo e di lettura. D'altro canto, potrei obiettare che la documentazione sulla sintassi è prontamente disponibile e che ci si può aspettare che uno sviluppatore decente si aggiorni sui nuovi sviluppi o, in mancanza, non dovrebbe avere problemi a capirlo usando gli strumenti (aiuto IDE). ) e documentaiton a sua disposizione.
Per il contesto, questa domanda è stata sollecitata dagli aggiornamenti recenti alla sintassi ABAP di SAP che aggiunge nuovi grouping e filtrando meccanici ai loop e un numero di altre dichiarazioni . Molti sviluppatori legacy e team di manutenzione lato client non avranno familiarità con questa sintassi per anni (se mai).
Per questa domanda, presuppone che commentare il tuo codice sia una buona pratica .
Come commenti csw, un'opzione è semplicemente quella di non usare questa nuova sintassi fino a quando i manutentori non si sono messi in contatto, ma come ho accennato, alcuni di questi manutentori semplicemente non li raggiungeranno mai. Nel mio settore la manutenzione del codice viene spesso trasferita ai piccoli sviluppatori interni una volta che il progetto è stato consegnato e possono essere noti per essere bloccati in "modalità legacy". Scrivere codice funzionalmente obsoleto come stampella per i programmatori out-of-touch non sembra una pratica buona o difendibile.
Nella mia situazione particolare, gli aggiornamenti della sintassi ABAP offrono alcuni notevoli miglioramenti in termini di prestazioni e leggibilità. Introducono una serie di operazioni moderne comuni all'antico linguaggio ABAP come gli operatori di casting. Il GROUP BY
I collegato è un altro buon esempio che sostituisce il codice complesso, illeggibile e soggetto a bug con una semplice alternativa. Per un esempio di sintassi concreto, posso sostituire
READ TABLE itab WITH ... TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
...
ENDIF.
con:
IF line_exists( itab[ ... ] ).
...
ENDIF.
Per gli interessati, questo PDF copre molti dei nuovi Caratteristiche. Le diapositive 29 e 30 offrono due buoni esempi di quanto possa essere drastica la differenza.
Riguardo al suggerito duplicato , ci sono alcune risposte utili lì, ma il mio la domanda riguarda un caso più specifico. Probabilmente potresti riassumere la mia domanda come "Devo ignorare il paradigma document *why* rather than *how*
quando quando lo fai potresti semplificare enormemente la manutenzione per gli sviluppatori inesperti?".