Domanda

Sto iniziando su un progetto in cui le stringhe sono scritti nel codice la maggior parte del tempo. Molte le stringhe possono essere utilizzati solo in alcuni punti, ma alcune stringhe sono comuni in molte pagine.

E 'un buon uso del mio tempo di refactoring i letterali in costanti è che l'applicazione è abbastanza ben consolidata e funziona bene? Quali sarebbero i benefici a lungo termine per farlo?

È stato utile?

Soluzione

Solo se questo progetto ha bisogno di essere sostenuta nel futuro è questo un buon uso del tempo. Se si sarà mantenere regolarmente / espansione di questo sistema; Tuttavia, questa è una grande idea.

1) Esiste un elevato grado di rischio associato con le stringhe come un singolo errore ortografico solito può essere rilevato solo in fase di esecuzione. La riduzione del rischio di errori runtime è un serio vantaggio in quanto possono essere imbarazzante / frustrante.

2) Inoltre, se mai bisogno di essere cambiato, per esempio quando sono usati per fare riferimento a un altro sistema (come i nomi di tabella, i nomi dei server, ecc) possono essere molto difficile da aggiornare, quando gli altri nomi di sistema cambiano. li centralizzare e si tratta di un problema di poco conto.

Altri suggerimenti

Una cosa comune da considerare sarebbe i18n . Se voi (o il vostro muckity-mucks) mai voglia di vendere il prodotto in Messico o in Francia (etc.) si sta andando ad apprezzare avere quelle stringhe letterali non disseminato in tutta la base di codice.

EDIT: mi rendo conto che questo non risponde direttamente alla tua domanda, quindi sto votando un po 'delle altre risposte Re: regola del tre, e simili. Capisco che si sta parlando di una base di codice esistente, quindi è un po 'tardi per parlare di incorporare i18n fin dall'inizio. E 'così facile da fare quando si è l'abitudine fin dall'inizio.

mi piace di applicare la regola del tre, quando refactoring. Se accade tre o più volte, quindi il codice deve essere aggiornato.

Se una stringa è utilizzato in più di un luogo, refactoring. Se viene utilizzato solo in un posto, lasciarlo solo.

Se hai riscritta fuori tutte le corde comuni, si rende più facile per internazionalizzare / tradurli. E 'ancora più facile se sono tutti in file di proprietà, o qualunque sia il vostro equivalente linguaggio è.

  

E 'un buon uso del mio tempo di refactoring i letterali in costanti è che l'applicazione è abbastanza ben consolidata e funziona bene?

No, è meglio lasciare le cose come stanno.

  

Quali sarebbero i benefici a lungo termine per farlo?

Se nessuno ha mai toccare quel codice, i benefici sono.

Cosa si può fare, però è evitare di aggiungere nuove letterali. Ma vorrei lasciare più o meno il modo in cui sono già esistente.

Si potrebbe probabilmente li refactoring nel vostro libero di dormire meglio.

Probabilmente ci sono alcuni altri bug già che richiedono la vostra attenzione. Fissare quelli invece.

Infine, se si riesce si aggiunge "refactoring" al tuo elenco di attività, andare avanti !!!

Sono d'accordo con JMD, basta tenere a mente che v'è di più per i18n di cambiare le corde (valute, interfaccia utente deve essere adpated alle lingue da destra a sinistra, ecc)

Anche Se non vi vuole 18N l'applicazione sarebbe utile per il refactoring le corde, dal momento che la stringa che viene usato oggi solo una volta, domani forse riutilizzati più volte, e se E'hard-coded si può non essere a conoscenza di esso e stella replicare stringa di tutto il luogo.

Le migliori cani Let Sleeping mentono. Se è necessario modificare una stringa che viene utilizzato volte diciotto grumoso, sì, andare avanti e di trasformarlo in un qualche costante. Se vi trovate a lavorare in un modulo che ha una stringa che potrebbe essere costante-izzare, fate se vi piace di più. Ma passare attraverso l'intera applicazione che cambia tutte le stringhe per le costanti ... che dovrebbe essere sul fondo della lista delle cose da fare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top