Quando parli di solo lo spazio di sviluppo (ad es. le app e i requisiti del sistema operativo), dipende molto dal tipo di progetto (i) con cui hai a che fare. Ad esempio, i linguaggi compilati creano un sacco di file temporanei che vengono a loro volta riconfezionati in file più grandi. Nel mio ambiente attuale, stiamo attualmente eseguendo circa 20 GB per il codice sorgente + i file oggetto compilati. Questo include solo la versione compilata DEBUG, sarebbe più per la compilazione di RELEASE.
Si prega di non dimenticare il sovraccarico del 20% che NTFS o altri file system di journaling (supponendo che Windows qui) abbia bisogno di spazio per l'inserimento nel journal e mantenere il disco rigido in buone condizioni. Devi dimensionare il disco rigido per te stesso .
Quando si proiettano le esigenze del disco rigido del progetto, è necessario considerare i seguenti aspetti:
-
Quali beni sono prodotti finali? Gli articoli di questa classe includono beni artistici, immagini, file audio, ecc. che non sono combinati in un altro file. In un'applicazione web include anche i file CSS e JavaScript. Non dimenticare i tuoi script di compilazione e altri elementi che non sono stati compilati.
-
Quali risorse generano risultati intermedi? Gli elementi di questa classe includono il codice sorgente per linguaggi compilati, file di collegamento, ecc. All'inizio del progetto, dovrai proiettare quanto ti aspetti di ottenere, e rivedere queste stime almeno due volte più a mano a mano che il progetto prosegue.
-
Quanto sono grandi i prodotti finali? Anche le DLL o le librerie condivise occupano spazio. È come se avessi impacchettato la tua applicazione web in un'unità facilmente distribuibile (simile a un file Java WAR o EAR).
Per una stima approssimativa di quanto è grande la stima finale, utilizzare la seguente formula:
(2 * _static_) + (2 * _intermediate_) + (2 * _final_) * 1.2
Se stai pensando a te stesso, come può essere? Considera quanto segue:
- Il processo di compilazione copia i file statici nella directory di build, nonché le classi compilate.
- La fase di collegamento e impacchettamento creerà binari finali che saranno più piccoli dei file intermedi combinati e dei file statici nella directory di creazione, ma non li cancellerà quando vengono combinati.
- Il prodotto finale è solo marginalmente più piccolo in quanto i file binari non possono comprimersi molto bene, ma puoi rimuovere la ridondanza.
- È necessario tenere conto dello spazio temporaneo per consentire al compilatore di funzionare. Questo è lo spazio extra assegnato al prodotto finale.
- Infine, è necessario assicurarsi che l'ambiente di sviluppo abbia un po 'di spazio per respirare in modo che il sistema operativo possa mantenere l'unità felice. Ecco a cosa serve l'aumento del 20% alla fine.
Se sei all'inizio di un progetto, chiedi ai tuoi sviluppatori di fornire uno SWAG (Seriamente selvaggio A ** Indovina) su quante classi sarebbero necessarie per implementare la funzione. Moltiplicalo per 16 KB. Alcune classi generano file di oggetti molto più piccoli e altri generano quelli più grandi. Ma questo dovrebbe essere sufficiente per la stima SWAG dello spazio su disco. Assumi anche che i tuoi prodotti finali avranno le stesse dimensioni delle classi che hai stimato.
Presumo che il tuo datore di lavoro desideri impostare quote per ciascun profilo utente. Spero sinceramente che non stiano intrattenendo i profili di roaming con l'ambiente di sviluppo. Il problema con i profili di roaming è il volume di taglio dei file che devono essere trasferiti. Il sistema operativo Windows (e il protocollo Samba) sono notoriamente inefficienti durante il trasferimento di un numero elevato di file. Ci vorrà un ordine di grandezza più lungo per trasferire 100 file 1k di 1 file 100k.
Si spera che questo ti dia abbastanza informazioni per negoziare con il tuo datore di lavoro.