Se nessuna intenzione di contribuire, non dovremmo mai cambiare i codici in framework open source a meno che non siano disponibili alternative?

1

Supponiamo che io usi un framework open source nel mio progetto e che non contribuisca (invia modifiche) a quel framework e che la versione corrente sia stabile, dovremmo mantenere invariato il framework quando possibile?

per esempio, se ho trovato una funzione in una classe di framework non soddisfa i miei requisiti:

public class Fruit{
    public float calculatePrice(){
        return weight*1.2;
    }
}

Lo avvolgerei per aggiungere i miei requisiti:

public class MyFruit{
    Fruit fruit;
    public float calculatePrice(){
        return fruit.calculatePrice()*myConstant;
    }
}

invece di modificare direttamente Fruit e, per un altro esempio, se ho bisogno di utilizzare una proprietà protetta nella classe (ad esempio: locale):

public class Fruit{
    protected String locale;
}

Vorrei estenderlo per accedere alle impostazioni locali

public class MyFruit{
    public void checkLocale(){
        if(locale.equals("abc")){
        }
    }
}

invece di cambiare locale in pubblico.

Penso che le motivazioni alla base siano:

  1. Le risorse dei framework (es: tutorial, comportamento, bug, problemi) sono basate sulla versione originale del framework, quando cambiamo il framework direttamente, le risorse potrebbero non essere più applicabili al mio framework modificato , o potremmo non essere in grado di utilizzare direttamente la risorsa (es: copia e incolla esempi online)

  2. È più semplice aggiornare il framework quando il framework mantiene l'aspetto originale

  3. Se modifichiamo i codici nel framework, possiamo introdurre bug nel framework e il debug dei framework è più difficile del debug dei miei codici personalizzati.

  4. Mantenere i framework nella versione originale ci consente di aggiungere altre estensioni per i framework facilmente perché la maggior parte delle estensioni vengono lavorate in base alla versione originale

  5. È più difficile chiedere aiuto se utilizziamo un framework modificato personalizzato perché potresti dover pubblicare e spiegare le parti modificate del framework

  6. Quando si verifica un problema, se usiamo solo la versione originale, è più facile e veloce per i volontari configurare l'ambiente, quindi riprodurre e scoprire il problema, perché possono semplicemente scaricare il framework direttamente e quindi aggiungere il mio codici aggiuntivi.

è vero che non dovremmo modificare i codici nei quadri direttamente quando possibile? E questo atteggiamento è corretto?

    
posta ggrr 01.04.2016 - 04:40
fonte

1 risposta

2

La regola empirica su non modificare i framework a meno che non intendi inviare la modifica indietro è per lo più pragmatica: ogni volta che lo fai ti impegni a ri-applicare la modifica ogni volta che aggiorni il framework a una nuova versione . Se si dimentica di riapplicare la modifica dopo un aggiornamento o se il framework cambia il codice in questione in modo che la modifica non funzioni più, l'applicazione incontrerà errori o condizioni impreviste. È interamente una questione se il beneficio vale i rischi e il lavoro extra.

Se il codice modificato verrà distribuito, ci possono essere domande filosofiche su non inviare la modifica per l'inclusione nel codice upstream. Sarebbe meglio indirizzare la beta Open Source .

    
risposta data 01.04.2016 - 04:54
fonte

Leggi altre domande sui tag