Ketika berbicara hanya tentang ruang pengembangan (yaitu mengecualikan aplikasi dan persyaratan OS), itu benar-benar tergantung pada jenis proyek yang Anda hadapi. Misalnya, bahasa yang dikompilasi membuat banyak file sementara yang pada gilirannya dikemas ulang menjadi file yang lebih besar. Di lingkungan saya saat ini, kami saat ini menjalankan sekitar 20GB untuk kode sumber + file objek yang dikompilasi. Itu hanya termasuk versi yang dikompilasi DEBUG, itu akan lebih untuk RELEASE dikompilasi juga.
Tolong jangan lupa 20% overhead yang NTFS atau sistem file penjurnalan lainnya (dengan asumsi Windows di sini) perlu memiliki ruang untuk penjurnalan dan menjaga hard drive tetap sehat. Anda harus menyesuaikan ukuran yang dibutuhkan hard drive sendiri .
Saat memproyeksikan kebutuhan hard disk proyek Anda, Anda harus mempertimbangkan aspek-aspek berikut:
- Aset apa yang merupakan produk akhir? Item dalam kelas ini termasuk aset seni, gambar, file suara, dll. Yang tidak digabungkan ke file lain. Dalam aplikasi web ini termasuk file CSS dan JavaScript Anda juga. Jangan lupa skrip build Anda dan item lain yang tidak dikompilasi.
- Aset apa yang menghasilkan hasil antara? Item dalam kelas ini termasuk kode sumber untuk bahasa yang dikompilasi, tautan file, dll. Pada awal proyek, Anda harus memproyeksikan seberapa besar Anda mengharapkan ini, dan merevisi estimasi tersebut setidaknya dua kali lebih banyak saat proyek berjalan .
- Seberapa besar produk akhir? DLL atau pustaka bersama Anda juga membutuhkan ruang. Sama seperti jika Anda mengemas aplikasi web Anda menjadi unit yang mudah digunakan (mirip dengan file Java WAR atau file EAR).
Untuk perkiraan kasar seberapa besar perkiraan akhir Anda, gunakan rumus berikut:
(2 * _static_) + (2 * _intermediate_) + (2 * _final_) * 1.2
Jika Anda berpikir untuk diri sendiri, bagaimana mungkin? Pertimbangkan yang berikut ini:
- Proses kompilasi menyalin file statis ke direktori build, serta kelas yang dikompilasi.
- Tahap menautkan dan mengemas akan membuat binari akhir yang akan lebih kecil dari gabungan file menengah dan file statis di direktori build, tetapi tidak menghapus file-file itu saat digabungkan.
- Produk akhir hanya sedikit lebih kecil karena biner tidak dapat dikompresi dengan baik - tetapi Anda dapat menghapus redundansi.
- Anda perlu memperhitungkan ruang temp untuk memungkinkan kompiler bekerja. Untuk inilah ruang ekstra yang dialokasikan untuk produk akhir.
- Terakhir, Anda perlu memastikan lingkungan pengembang memiliki ruang bernapas sehingga OS dapat menjaga drive bahagia. Itulah gunanya peningkatan 20% pada akhirnya.
Jika Anda berada di awal proyek, minta pengembang Anda memberikan SWAG (Seriously Wild A ** Guess) mengenai berapa banyak kelas yang diperlukan untuk mengimplementasikan fitur tersebut. Lipat gandakan dengan 16KB. Beberapa kelas akan menghasilkan file objek yang jauh lebih kecil, dan yang lain akan menghasilkan yang lebih besar. Tapi ini harus cukup untuk perkiraan ruang disk SWAG Anda. Juga asumsikan produk akhir Anda akan memiliki ukuran yang sama dengan kelas yang Anda perkirakan.
Saya menganggap majikan Anda ingin menetapkan kuota untuk setiap profil pengguna. Saya sungguh berharap mereka tidak menghibur profil roaming dengan lingkungan dev. Masalah dengan profil roaming adalah volume geser file yang perlu ditransfer. OS Windows (dan protokol Samba) terkenal tidak efisien dalam mentransfer sejumlah besar file. Dibutuhkan urutan lebih besar untuk mentransfer 100 file 1k dari 1 file 100k.
Semoga ini memberi Anda informasi yang cukup untuk bernegosiasi dengan atasan Anda.