È una buona idea formattare il codice in eclissi usando il formato automatico

20

Uso eclipse per la codifica e il linguaggio che usiamo è Java. Una volta è stato suggerito da qualcuno che per formattare correttamente il codice, utilizzando il formattatore automatico (CTRL + MAIUSC + F) Mentre questo comando formatta il codice, ma a volte lo sento nel complesso l'aspetto diventa strano e in realtà non è molto leggibile.

Quindi questa è una cosa raccomandabile da fare? In caso contrario, quale è la migliore formattazione del nostro codice in eclissi?

    
posta Ankit 07.05.2013 - 10:49
fonte

5 risposte

34

Rigide regole di formattazione del codice sono utili quando diversi sviluppatori lavorano sullo stesso codice utilizzando un sistema di controllo della versione. L'unione può essere un problema se diversi sviluppatori hanno regole di formattazione differenti, poiché lo stesso codice sarebbe diverso per lo strumento di fusione.

Eclipse (o qualsiasi IDE valido per quella materia) ha regole di formattazione del codice che possono essere personalizzate nella sezione delle preferenze (Java > Style Code > Formatter). Scegli quello che ti piace di più, ma dai anche un'occhiata alle convenzioni di codice standard Java . Molti progetti open source hanno anche le proprie convenzioni di codice che possono essere applicate con il formattatore di Eclipse.

Inoltre ci sono strumenti standard come CodeStyle, PMD e Findbug che applicano regole aggiuntive e aiutano a evitare gli anti-pattern e gli errori comuni (di basso livello).

    
risposta data 07.05.2013 - 12:43
fonte
24

Ho trovato l'autoformatter molto utile. Invece di prendere costantemente le microdecisioni su come il codice dovrebbe essere formattato - qualcosa che è soggetto a errori e causa "attrito cognitivo" - puoi impostare regole di formattazione e lasciare che Eclipse formatta il codice per te (idealmente automaticamente usando "Salva azioni" ). Ovviamente, ciò richiede che tu disponga di un codice base con formattazione coerente o che tu abbia il mandato di riformattare il codice in base alle regole che hai impostato.

Avere abilitato "autoformat-on-save" è come avere una compilazione incrementale, consente al tuo cervello di concentrarsi sul codice stesso, invece di preoccuparsi di problemi banali come la formattazione del codice o la sintassi.

Ma sì, a volte l'autoformatter rovinerà un tavolo ben formattato che hai. In questi casi uso "tag on / off". Questi sono configurati nella scheda "on / off tags" nel profilo di formattazione del codice. Usandoli, puoi escludere le regioni del tuo codice dalla formattazione automatica:

// @formatter:off

... my nicely formatted table here ...

// @formatter:on
    
risposta data 07.05.2013 - 13:42
fonte
5

Indipendentemente dal fatto che sia raccomandato dipenderà da chi chiedi.

Posso immaginare che preferiresti formattare il codice te stesso, dopo tutto, sai cosa è meglio e più facile da leggere per te stesso. Tra l'altro, se sei una persona premurosa puoi renderlo più leggibile anche per gli altri esseri umani.

Le macchine non hanno quel tipo di previsione e possono (come hai detto tu) rendere il tuo codice un po 'disordinato, anche se lo formattano secondo regole severe.

Un buon IDE o strumento può spesso fare un lavoro semi-decente per formattare il codice per te, ma non lo renderà sempre leggibile come potresti.

Quindi, il mio consiglio: non usarlo a meno che tu non abbia ricevuto il codice da qualcun altro, ed è un tale casino che non puoi leggerlo altrimenti.

    
risposta data 07.05.2013 - 11:01
fonte
5

Dovresti usarlo tutto il tempo per assicurarti di usare uno stile coerente in tutti i tuoi file sorgente. Ciò consentirà anche di risparmiare un sacco di tempo che normalmente spenderebbe cercando di regolare manualmente la formattazione.

Il formatter Java in Eclipse fa un ottimo lavoro ed è completamente personalizzabile. Se non sei d'accordo con le impostazioni di default (che posso capire completamente), allora dovresti adattare il formattatore alla tua preferenza di stile personale o qualunque sia lo standard che usi. Puoi farlo nelle preferenze sotto Java / Code Style / Formatter.

I formattatori sono ancora più utili quando non lavori da solo. È molto probabile che tu e i membri del tuo team non sarete d'accordo su quello che pensi sia lo stile di codice perfetto ™. In tal caso dovresti accettare una base comune e una volta per tutte definire le regole di formattazione per questo particolare stile di codice. Quindi tutti possono semplicemente premere il tasto di scelta rapida del formato e tutto si adatta allo stile concordato. In questo modo le tue preferenze personali (quando scrivi) non interferiranno. E nota che lo stile del formattatore può essere memorizzato nei file di progetto di Eclipse, quindi sono possibili anche diversi formattatori per ogni progetto.

    
risposta data 07.05.2013 - 12:51
fonte
0

Anche se mi piace avere il codice formattato automaticamente su save (infatti l'ho abilitato sui miei progetti personali). Ho scoperto che non potevo raccomandare completamente questa pratica nei team di progetto usando prodotti basati su Eclipse poiché il formattatore di Eclipse ha alcuni bug critici che mi impediscono di raccomandarlo.

Specificamente se hai "cleanup di codice" + "formattatore" abilitato i rientri diventano fissi / non fissi su ogni salvataggio.

Ogni nuova versione di Eclipse può cambiare il formattatore (per il meglio) ma introdurrebbe cambiamenti significativi come JavaDocs, rimuovendo infine quello spazio extra dopo * ma che è stato introdotto qualche volta dopo che Helios e molte aziende stanno usando il versione più vecchia di Rational Software di eclipse che usa Helios come base.

Il programma di formattazione del codice fornito da Eclipse non è estensibile per la loro API, infatti afferma esplicitamente CodeFormatter javadoc

This class is not intended to be subclassed by clients.

Certo, non ho ancora trovato alcuna valida alternativa non commerciale . Jalopy non è stato aggiornato da anni e le forcelle in github non sono ancora state organizzate per farmi raccomandare nessuno di loro. Né ha alcun sito di aggiornamento per Eclipse per averlo integrato. In realtà stavo pianificando di rendere la formattazione del codice come parte della build molto simile a come ho fatto cleanpom-maven-plugin usando Jalopy, ma quell'idea è andata a finire a causa della mancanza di aggiornamenti per Jalopy.

    
risposta data 22.04.2015 - 14:21
fonte

Leggi altre domande sui tag