Come gestire le eccezioni alle regole aziendali?

5

Ho ricevuto un file con diversi record. Mi hanno anche dato regole di business che determinano come elaborare quei record e produrre un file di output. Le regole aziendali sono relativamente semplici:

  1. Se il record è di tipo A, utilizzare la metodologia A.
  2. Se il record è di tipo B, utilizzare la metodologia B.

Tuttavia, il mio cliente mi ha inviato un messaggio di posta elettronica: esiste un record "speciale" nel file. È un record di tipo A, ma deve essere elaborato con la metodologia B.

Come si gestiscono queste eccezioni alle regole aziendali? Alcune opzioni che ho pensato finora:

  1. Codifica l'eccezione nel software: if record.id == "some_id" && record.value == 123.45 then methodology B .
  2. Manipola il file a mano, esegui il programma, quindi correggi l'output a mano.

Il mio collega è sbalordito dal fatto che prenderei in considerazione l'opzione 1. È disordinato e l'anno prossimo (quando devo eseguire di nuovo questo processo) il file potrebbe essere diverso. Si rivelerà un bel "trucco" nascosto che potrebbe causare problemi molto tempo dopo che ho dimenticato l'eccezione.

Tuttavia l'opzione 1 è più semplice dell'opzione 2, e se l'eccezione alla regola rimane la stessa per l'anno prossimo, non dovrò nemmeno pensarci. È già stato gestito. Inoltre, è facile cambiare se ho bisogno di cambiarlo più tardi.

Come faccio a gestire le eccezioni casuali alle regole aziendali?

EDIT:

Questo è un software molto mirato, scritto per fare specificamente un lavoro per un cliente.

    
posta Phil 24.05.2012 - 23:07
fonte

4 risposte

11

Le eccezioni alle regole aziendali non sono generalmente eccezioni - sono quasi sempre semplicemente più regole. Quindi, la prima cosa che farei in questo caso è chiedere perché questo particolare record è un A, ma viene trattato come un B. Dove e come viene registrata questa decisione?

Se la risposta è che è registrata al di fuori dei dati a cui il processo ha accesso, allora la domanda è il modo migliore per aggiungerla ai dati a cui il processo ha accesso.

Qual è il modo migliore per consentire al processo di accedere alla decisione dipenderà dalla tua particolare situazione. Altri hanno suggerito di farlo come argomento da riga di comando, che funzionerà, in genere preferisco i file di configurazione, ma questo dipenderà da te e dalle tue circostanze, potresti essere in grado di interrogare un database o un servizio web ...

    
risposta data 25.05.2012 - 01:50
fonte
10

3. Costruisci un'opzione di sovrascrittura nel programma, dove puoi (facoltativamente) specificare una serie di regole per un determinato processo di elaborazione invece di decidere automaticamente il programma.

    
risposta data 24.05.2012 - 23:10
fonte
5

Se è garantito che ci sarà esattamente uno dei record "speciali" e che può essere facilmente identificato (vale a dire, con id nell'esempio), l'opzione 1 va bene. Non codificare l'ID del record nel programma; accetta un valore facoltativo dalla riga di comando o in qualsiasi modo il tuo ambiente ti permetta di specificare queste cose:

% process-records --special-id 12345 < infile > outfile

Ciò significa che il tuo cliente può modificare il suo comportamento in base al modo in cui è invocato e non è necessario mantenere più versioni per anni.

    
risposta data 24.05.2012 - 23:50
fonte
3

Il tuo collega è assolutamente corretto. La scelta dell'opzione 1 è un segno di un programmatore che non ha speso un minuto a mantenere il codice di qualcun altro e non si preoccupa di titoli come il debito tecnico e la manutenzione futura del codice di base.

È solo un semplice programma necessario per elaborare i dati di input e creare dati corretti da inserire nel programma principale. Poiché l'"eccezione" cambia (come sarà), il tuo semplice programma che tratta è semplicemente aggiornabile. Potrebbe trattarsi di una persona con Excel, uno script Perl o un vero programma, a seconda di quanto spesso è fatto e di quanto sia complesso. Come sottolinea @jmoreno, è improbabile che sia un'eccezione, pertanto, man mano che le regole aziendali diventano chiare, il programma principale può essere modificato per accoglierli.

(Attenzione: le 2 parole in quattro lettere "solo" e "semplice" potrebbero valere la pena di esplorarle ulteriormente)

    
risposta data 25.05.2012 - 03:40
fonte

Leggi altre domande sui tag