Diciamo che abbiamo una richiesta di funzionalità in arrivo e iniziamo a lavorarci su, che chiameremo feature-1 . Introduce alcune nuove logiche per l'applicazione, che chiameremo logic-A e logic-B . Un programmatore si dirama dal ramo di rilascio e inizia a lavorare sulla funzione.
Subito dopo, otteniamo un'altra richiesta di funzionalità, che chiameremo feature-2 . Implementerà logic-A e logic-C nell'applicazione. La logica A implementata da questa funzione è la stessa logica-A così come è stata implementata in feature-1 .
Diciamo anche che dato logic-B , logic-A potrebbe essere implementato in modo leggermente diverso da come sarebbe stato dato logic-C , e anche in modo diverso dato sia logic-B che logic-C (ad esempio con una sola caratteristica, il codice sarebbe meno flessibile di entrambi).
Come dovrebbe essere gestita questa situazione?
Esempio concreto (per aiutare con qualsiasi confusione nella mia formulazione)
- feature-1 è un feed di programmers.stackexchange.com.
- feature-2 è un feed di gaming.stackexchange.com.
- logic-A è l'implementazione di un feed (presumendo che l'applicazione al momento non abbia feed), che si collega al contenuto e fornisce informazioni correlate.
-
logic-B è che la fonte del feed proviene da programmers.stackexchange.com.
- Aggiunge a logic-A che viene visualizzato il relativo linguaggio di programmazione.
-
logic-C è che la fonte del feed proviene da gaming.stackexchange.com.
- Aggiunge a logic-A che vengono visualizzati il nome del gioco e il box art correlati.