I valori predefiniti dovrebbero essere dichiarati esplicitamente nei file di configurazione per librerie o framework?

0

In uno dei progetti per cui lavoro, abbiamo appena aggiunto karma per eseguire i test unitari. Durante la revisione del MR di un collega, ho notato che il file karma.conf.js (il file di configurazione) ha 120 righe, il che sembra essere molto per me.

Durante la lettura di ogni configurazione, ho notato che molte di queste configurazioni sono già valori predefiniti.

Alcuni esempi di configurazioni

//address that the server will listen on, '0.0.0.0' is default
listenAddress: '0.0.0.0',
//hostname to be used when capturing browsers, 'localhost' is default
hostname: 'localhost',
//the port where the web server will be listening, 9876 is default
port: 9876,
browserDisconnectTimeout: 5000,
//how long will Karma wait for a message from a browser before disconnecting from it, 10000 is default
browserNoActivityTimeout: 10000,
// timeout for capturing a browser, 60000 is default
captureTimeout: 60000,

e ce ne sono alcuni altri. Il file di configurazione è di circa 120 righe, ma rimuovendo le impostazioni di default sarà inferiore a 70 righe (e altro se rimuoviamo i commenti)

È buona norma, in generale, annotare esplicitamente i valori predefiniti? Oppure è preferibile indicare solo ciò che non è cambiato e fare affidamento sui valori predefiniti? (Potrebbe cambiare in futuro)

Ritengo che la seconda via sia più dichiarativa (configuriamo solo ciò che deve essere configurato)

Nota La cosa del karma è solo un esempio, può essere applicata ad altre configurazioni di altre librerie che richiedono così

    
posta Gonzalo.- 07.11.2018 - 17:06
fonte

2 risposte

1

In definitiva penso che questo potrebbe essere basato sull'opinione pubblica, ma dato che stai usando un framework specifico (Karma) e questo framework ha documentazione, va bene omettere i valori predefiniti.

Un'eccezione sarebbe se quei valori predefiniti venissero sovrascritti in diverse configurazioni di build o di distribuzione. Se il default è sovrascritto da una configurazione di compilazione diversa, li inserirò comunque nel file di configurazione con un commento che altre configurazioni di build sovrascrivono questa impostazione predefinita.

Inoltre non è una cattiva idea inserire un URL nella documentazione per i config come commento nella parte superiore del file.

Quindi le mie linee guida sono:

  1. Metti un commento nella parte superiore del file che punta gli sviluppatori alla documentazione ufficiale:

    # Documentation for Karma configs: http://example.com/karma
    
  2. Includi valori predefiniti se sono sovrascritti da altre configurazioni di build o di distribuzione

    # Default value is below, but is overridden on CI server
    listenAddress: '0.0.0.0'
    
  3. Ometti i valori predefiniti se non cambiano mai quando si eseguono i test localmente o sui server di build. Gli sviluppatori dovrebbero RTFM se vogliono cambiare le cose ulteriormente.

  4. Se qualcuno ha già scritto il codice, vale davvero la pena di rimuovere il codice? Dopotutto, è solo un file di configurazione.

risposta data 07.11.2018 - 17:36
fonte
0

Non direi la sua buona pratica in entrambi i casi, ma mi piacerebbe molto questo file di configurazione dato che tutto è stato scritto per me e chiaramente commentato.

Certo è un dolore come utente dover specificare ogni singolo valore. Se è un'applicazione a riga di comando potrebbe essere quasi impossibile!

Ma se qualcun altro ha scritto tutto per te in anticipo, è super facile vedere tutte le opzioni e quello che fanno.

Un altro punto da notare è che se si sostituiscono i valori di configurazione tramite una distribuzione automatica, può essere più semplice avere l'impostazione predefinita presente. Come sempre puoi sostituire e non devi preoccuparti di aggiungere o sostituire

    
risposta data 07.11.2018 - 17:39
fonte

Leggi altre domande sui tag