2011-01-06 16 views
5

Recentemente ho riscontrato un suggerimento per i pattern regex utilizzati attraverso il nostro code code dell'applicazione per essere raggruppati in una tabella di ricerca e recuperati da lì anziché esplicitamente codificati all'interno della logica del programma.Utilizzo di una tabella di ricerca per i modelli regex

Qualcuno può condividere qualche pensiero sulla saggezza di questo?

I miei pensieri iniziali erano che rende i modelli più facili da cambiare, il che comporta sia vantaggi che svantaggi. Ma, fondamentalmente, vedo una stringa regex come un'entità di logica che è (effettivamente) eseguita, quindi archiviarli in una tabella di ricerca mi fa sentire un po 'a disagio.

Pensieri a nessuno?

Grazie

risposta

2

Penso che questa sia un'ottima idea, Se riesci a migliorare un modello regolare (o addirittura a risolvere un problema con esso), lo cambierai in un unico punto e non ovunque (probabilmente il vero motivo per fare questo).

Questo riduce il numero di potenziali bug nel programma (o li aumenta, se lo si modifica in modo errato.) Tuttavia, questo 'dovrebbe' manifestarsi quasi immediatamente in fase di test e basta risolverlo in un solo luogo, al contrario di dappertutto ... ancora una volta, più incline agli errori).

Per quanto riguarda il vederlo come un'entità di logica, sarebbe di aiuto se lo vedessi come un insieme di istruzioni che sono conservate in una libreria di riferimento, piuttosto che la logica stessa? La logica stessa viene eseguita dal processore regex piuttosto che dal modello che è stato digitato nel codice, quindi lo vedo come candidato adatto per essere archiviato in una tabella di ricerca.

1

Se è intenzione di provocare connessioni SQL altrimenti inutili, direi, no. Non farlo Fuggi sulle colline.

Altrimenti, se vengono ripetuti spesso, pensa a come il codice può essere refactored. Dovresti usarli in funzioni o classi che sono incluse in più pagine? Se la risposta è no, allora vai avanti, non vedo un problema con esso.

Problemi correlati