L'idea di base è di NON effettuare il check-in dei valori riservati nel codice o nel file binario compilato. Soprattutto se il progetto è open source non dovresti davvero. Esistono diverse strategie di configurazione che è possibile adottare per farlo:
Segnaposto nel codice (valori codificati)
Segnaposto nel codice - come è stato suggerito - che è il più sano e semplice da fare nei linguaggi di programmazione dinamica poiché il codice è facile da modificare (senza bisogno di compilare). Ho visto molti progetti open source fare questo come MediaWiki con esso LocalSettings.php
.
L' aspetto negativo di questa strategia è che la chiave è hardcoded. Pertanto, se il programma è distribuito come binario, la chiave codificata non lo rende particolarmente gestibile.
File di testo di configurazione
Puoi anche farlo implementando file di testo di configurazione , ad esempio il programma / l'applicazione cerca un file di configurazione e legge i valori da esso. È possibile effettuare il check-in di una configurazione di esempio con segnaposto ma avere la configurazione effettiva locale nella propria macchina.
Nel tuo caso puoi creare un key.conf
file di testo con la chiave effettiva, consentire al programma di utilizzare quel file e lasciarlo ignorare dal controllo della versione. Puoi, per essere utile, key.conf.example
archiviare un file di testo con una chiave fasulla e controllarlo. Assicurati che il tuo programma / applicazione crei un utile messaggio di errore per l'utente di aggiungere la chiave effettiva nel file corretto.
Alcuni linguaggi di programmazione hanno API che ti forniscono questo automaticamente, come:
Se l'applicazione è un'app di database, quindi considerare di inserire la chiave o altre variabili di configurazione nel database. È lo stesso del file di testo di configurazione sopra ma metti invece tutte le variabili di configurazione come la chiave in una tabella del database.
Tramite visualizzazione delle preferenze o un'app di Back Office
Se il programma è una finestra o un'applicazione Web con viste, puoi anche consentire all'applicazione di creare il file di configurazione, attraverso una sorta di visualizzazione delle preferenze. In questo modo non è necessario controllare un file di configurazione di esempio come suggerito sopra.
MediaWiki ha risolto questo problema generando automaticamente il file LocalSettings.php
file in un processo di installazione iniziale.
Certo, questa non è un'opzione per programmi che funzionano esclusivamente come processi, servizi o demoni in background. Tuttavia, è per questo motivo che crei progetti di GUI separati per creare un punto di accesso per le impostazioni di amministrazione e preferenze, nelle app Web di solito chiamate applicazioni Back Office .