Ciò a cui ti riferisci essenzialmente è una piattaforma. Mentre vedo che è usato per "spingere" da un certo scheletro del progetto, con un po 'di lavoro, puoi trasformarlo in una libreria di piattaforme. I vantaggi sono che puoi semplicemente aggiornare la libreria per applicare le modifiche a qualsiasi progetto a cui stai lavorando, e qualsiasi progetto che è meglio non toccare può rimanere con una versione specifica della piattaforma.
Per fare in modo che funzioni, devi dare un'occhiata a una classe template e trasformarla in una classe che può essere semplicemente estesa per ricevere la maggior parte dei suoi benefici. Oppure, nel caso dell'uso specifico di una classe che ritieni possa essere utile in altri progetti, generalizza tutte le sue funzionalità più comuni e di nuovo, inseriscile in una classe che può essere semplicemente estesa in seguito. Se hai la generazione di codice (eviterei se possibile, ma supponendo che tu non possa farlo), prova a farlo interagire direttamente con le tue classi di piattaforma o, almeno, non ti impedirà in seguito di estendere la funzionalità nelle classi che ereditano da loro. Inoltre, ti consiglio vivamente di assegnare versioni alle tue piattaforme, anche se inizialmente non le usi. Potrebbero tornare utili in seguito per sapere quali funzioni sono consentite nella piattaforma.
I file di risorse come le librerie possono essere caricati automaticamente dalla piattaforma, il cui codice si trova all'interno della piattaforma stessa. Pertanto, qualsiasi progetto che utilizza tale piattaforma deve semplicemente seguire le linee guida per una gerarchia di piattaforma standard al fine di caricare correttamente queste risorse. Ad esempio, se la mia piattaforma cerca librerie in una cartella chiamata lib, le librerie che la piattaforma utilizza vengono messe in lib, e eventuali librerie aggiuntive possono essere aggiunte in seguito senza problemi aggiuntivi.
Per ogni dato progetto sotto una determinata piattaforma, l'aggiornamento della piattaforma è letteralmente una questione di aggiornamento della sua libreria di piattaforme. Per le situazioni in cui una piattaforma prevede determinati tipi di file in una determinata cartella che è stata modificata rispetto alla versione precedente, la piattaforma stessa può essere progettata per rinominare le cartelle più vecchie. Un esempio di questo potrebbe essere che hai deciso di gestire più profili di configurazione, uno in ogni cartella, ma si inizia con un file di configurazione. La tua piattaforma, una volta eseguita, potrebbe copiare tale configurazione nella propria cartella con i nomi dei profili di configurazione predefiniti. La piattaforma, dopo questa fase di inizializzazione, caricherà la configurazione nella propria cartella (forse assegnandone uno come profilo predefinito quando nessuno è specificato).
Sfortunatamente per situazioni in cui la piattaforma non può riempire gli spazi vuoti, sarai obbligato a correggere queste modifiche manualmente. Un buon modo per le piattaforme di versioni è considerare modifiche di versione importanti come modifiche alla piattaforma che richiedono un intervento manuale per farlo funzionare correttamente.
Tuttavia, tieni presente che le piattaforme sono notoriamente conosciute per la loro crescita piuttosto complessa, a causa del tentativo di soddisfare i requisiti di ogni progetto nella piattaforma. Questo può essere evitato semplicemente chiedendo a te stesso se una certa modifica apportata alla piattaforma è quella che la maggior parte dei tuoi progetti utilizzerà e quelli che non lo saranno non saranno interessati.
Inoltre, un altro consiglio prima di iniziare è, se non lo hai già fatto, ottenere l'input dei tuoi colleghi su quale dovrebbe essere la gerarchia di progetto standard de facto prima di crearne una tu stesso, altrimenti probabilmente vedrai i tuoi colleghi programmatori costruire i loro progetti nel modo in cui loro preferiscono, il che sconfigge l'intero scopo di avere una piattaforma.