Ottimizzare l'area di lavoro

Se la codebase del team è grande e complessa e l'area di lavoro deve contenere solo i file necessari per migliorare le prestazioni, ridurre il traffico di rete e ridurre lo spazio su disco richiesto nel computer di sviluppo,

  • Ottimizzare i nomi delle cartelle

  • Ottimizzare l'area di lavoro utilizzando mapping di cartelle non ricorsivi, mascherati, espliciti e impliciti

  • Utilizzare le aree di lavoro per isolare e gestire il lavoro tra branch diversi

Ottimizzare i nomi delle cartelle

Se non si utilizzano i branch nel server è necessario inserire tutto il codice in una sottocartella denominata Main, ad esempio $/TFVCTeamProject/Main/. In tal caso, lo stato di pronto si ottiene quando il team diventa sufficientemente grande da richiedere i branch per gestire la codebase. Nel computer di sviluppo, è necessario utilizzare un percorso di cartella breve e comprensibile che corrisponda alla struttura del progetto, come C:\Users\YourName\Source\Workspaces\TFVCTeamProject\Main\SolutionName\.

Altri suggerimenti sui nomi effettivi delle cartelle:

  • Mantenere i nomi brevi di qualsiasi cartella, sottocartella e file per semplificare il lavoro e per evitare potenziali problemi di percorsi lunghi che possono verificarsi con alcuni tipi di progetti di codice.

  • Evitare gli spazi vuoti se si desidera che le operazioni da riga di comando siano più semplici da eseguire.

Ottimizzare l'area di lavoro utilizzando mapping di cartelle non ricorsivi, mascherati, espliciti e impliciti

Se la codebase è di grandi dimensioni, è possibile risparmiare tempo, larghezza di banda di rete e spazio sul disco locale ottimizzando i mapping della cartella dell'area di lavoro.

Quando si esegue il mapping di una cartella, verificare di aver scelto una cartella a un livello elevato dell'albero del codice in modo da disporre di tutti i file necessari per creare una compilazione locale, senza però recuperare file superflui. È inoltre possibile utilizzare alcuni strumenti per creare in modo più semplice e veloce un'area di lavoro utilizzabile: mapping esplicito, implicito, mascherato e non ricorsivo.

Quando si esamina l'area di lavoro dello sviluppatore fittizio Raisa riportata di seguito, è lecito domandarsi: perché non ha semplicemente eseguito il mapping di $/SiteApp/ a c:\code\SiteApp\ completando in tal modo il suo compito? Un'area di lavoro semplice come questa dovrebbe eseguire implicitamente il mapping di tutte le cartelle necessarie in $/SiteApp/Main/.

Il problema principale di questo approccio è che fornisce molti file che non sono necessari e quindi si sprecano tempo e risorse. Pertanto Raisa crea alcuni mapping appropriati della cartella.

Folders mapped by an optimized workspaceFolders mapped to to optimize a workspace

Step 1

Raisa non sviluppa processi di compilazione personalizzati quindi non necessita di $/SiteApp/BuildProcessTemplates. Si aspetta che nel corso del tempo la codebase cresca e non desidera scaricare automaticamente ogni nuovo frammento di codice aggiunto a $/SiteApp/Main/. Dato che i team che utilizzano queste altre cartelle modificano tali file, quando Raisa ottiene gli ultimi file dal server, potrebbe incorrere in lunghi tempi di attesa per gli aggiornamenti di file che non le servono.

Per sviluppare il proprio codice, Raisa necessita di tutti i progetti di codice che includono la soluzione FabrikamFiber. Anziché includere esplicitamente ogni progetto di codice, ad esempio $/SiteApp/Main/FabrikamFiber/FabrikamFiber.DAL, potrebbe eseguire il mapping di $/SiteApp/Main/FabrikamFiber/ e in questo modo eseguire implicitamente il mapping di tutte le sottocartelle contenenti i progetti di codice di cui necessita.

Step 2

Raisa non necessita dei file in $/SiteApp/Main/FabrikamFiber/3DModels o in $/SiteApp/Main/FabrikamFiber/Docs e poiché di questi file viene implicitamente eseguito il mapping da Step 1, lei utilizza due mapping mascherati per escludere queste cartelle dall'area di lavoro.

Step 3

Raisa e gli altri del suo team mantengono e talvolta aumentano un set di alcune librerie di base. Lei necessita di tutte le librerie in questa cartella e prevede di aver bisogno delle librerie che il team aggiungerà in futuro, pertanto esegue il mapping di $/SiteApp/Main/libraries/Common.

Step 4

Raisa necessita solo di una piccola parte di una cartella di grandi dimensioni, $/SiteApp/Main/libraries/Common/LibraryC, così esegue il mapping mascherato e in questo modo eseguirà esplicitamente il mapping solo della sottocartella necessaria: $/SiteApp/Main/libraries/Common/LibraryC/Sub-Library1.

Step 5

Raisa necessita di alcuni file immediatamente all'interno di LibraryD, ma non ha bisogno di tutto il contenuto delle relative sottocartelle, pertanto applica un mapping non ricorsivo a questa cartella: $/SiteApp/Main/libraries/Specialized/LibraryD/*.

Utilizzare le aree di lavoro per isolare e gestire il lavoro tra branch diversi

Se la società utilizza i branch per isolare i rischi nella codebase, sarà necessario creare un'area di lavoro separata per ogni branch che viene utilizzato.

Ad esempio, in Fabrikam Fiber, la codebase e il personale saranno cresciuti. Per ridurre il rischio tra i molti team, viene eseguito il branching della codebase. Raisa continua il suo lavoro nel suo piccolo team, ma ora utilizza alcune aree di lavoro per gestire il lavoro che lei svolge in più branch.

Branches where Julia does her work

Step 1

Sviluppo di funzionalità Lei modifica l'area di lavoro predefinita per eseguire il lavoro nel branch Extranet, dove partecipa allo sviluppo di siti Web orientati ai clienti in questo branch.

Step 2

Integrazione e stabilizzazione Lei crea due nuove aree di lavoro per eseguire il lavoro nei branch Test e Dev, dove collabora con altri sviluppatori e tester per stabilizzare il codice durante l'integrazione.

Raisa gestisce il suo lavoro in tre aree di lavoro, in ognuna delle quali viene eseguito il mapping delle cartelle in un branch sul server con le cartelle nel suo computer.

Mappings from server folders to client folders

Nota

Esecuzione del branching o sospensione (o esecuzione dello shelving) sono le modalità preferite per isolare diversi lavori richiesti sulla stessa codebase.Tuttavia, se nessuno di questi approcci soddisfa le esigenze, è possibile eseguire il mapping della stessa cartella del server in più aree di lavoro.Nella maggior parte dei casi non è necessario eseguire questa operazione.Se si esegue il mapping della stessa cartella del server in più aree di lavoro, tenere presente che potrebbero esserci modifiche in sospeso separate e diverse per lo stesso file archiviato in ogni area di lavoro.