Quando saltare la soluzione del problema generale e risolvere il problema specifico?

2

Ho lavorato duramente per cercare di sviluppare una soluzione generale al mio problema, ma non riesco a formulare un algoritmo corretto per questo, almeno uno che non richiede un sacco di lavoro impreciso per costruire una tabella di ricerca .

Ho già una soluzione per il requisito specifico, ma richiede che la configurazione del software venga cambiata ogni volta che il software viene caricato con un set di dati di un'area geografica diversa.

Quindi è meglio essere finiti e andare avanti per ora, o continuare a tentare di risolvere il problema generale sapendo che i problemi specifici continueranno a spuntare?

    
posta Peter Smith 03.07.2012 - 00:16
fonte

1 risposta

4

Sono stato in questa situazione prima, ed è davvero solo un caso speciale di YAGNI (non ne avrai bisogno).

Implementa la soluzione in base ai requisiti correnti (che dici di aver risolto). Quando arriva il prossimo turno di richieste che richiedono una modifica, gestiscilo allora. O A) scopri la soluzione generale che non potresti trovare ora, B) crea un modo elegante / tollerabile di estendere per ogni nuovo caso, oppure C) scopri che non è necessario apportare tali modifiche dopo tutti.

Da quello che hai descritto, sembra che le modifiche possano essere facilmente programmate se non altro. A volte, una seconda app è la soluzione ai problemi intrattabili nella prima app.

Codice per soddisfare il tuo contratto e accogliere la crescita futura prevista solo nella misura in cui è ovviamente necessario. La codifica per ogni what-if (o la piena espressione del problema impostato) non è ciò che è richiesto al momento. ( avvertimento : questo consiglio è destinato a questo particolare problema e in altri casi potrebbe essere giustificato un maggior numero di prove future.)

    
risposta data 03.07.2012 - 02:20
fonte

Leggi altre domande sui tag