Saat ini lingkungan pengembangan saya adalah Ubuntu v12.04 dengan VMWare. Saya bekerja sepenuhnya di dalam VM, dengan GUI penuh dan hanya menggunakan berbagi file samba dalam Ubuntu jika saya perlu untuk mendapatkan file dari OS host saya yang adalah Windows 7. Saya biasanya mengakses dan memetakan drive jaringan melalui IP internal dari VM via NAT untuk jaringan ke VM. Menggunakan solusi lain terbukti jauh lebih lambat seperti Shared Folder VMWare. Saya menonaktifkan ini di pengaturan VMWare Image saya. Namun saya menginstal alat VMWare untuk memudahkan penyalinan / pasta ke mesin host saya dan sebaliknya.
Seperti yang ditunjukkan Matthias Zeis, berhati-hatilah dalam memilih jaringan / folder bersama dengan VM Anda karena beberapa akan terbukti bermasalah.
Saya sebelumnya adalah pengguna VirtualBox tetapi menemukan VMWare lebih stabil dan berkinerja dapat diterima (setidaknya untuk saya). Namun saya akan melakukan tes Anda sendiri yang paling sesuai dengan kebutuhan dan persyaratan Anda, yaitu. Vagrant menggunakan VirtualBox.
IDE:
Saya menggunakan Netbeans cukup luas sebagai IDE pilihan saya tetapi sejak itu pindah ke solusi yang lebih ringan seperti Sublime Text 2 . Saya jarang akan membuka Netbeans terutama untuk keperluan X-Debug dan Refactoring yang lebih mudah. Netbeans, PHPStorm, Eclipse, dll. Semuanya adalah IDE berbasis Java dan dapat sangat membutuhkan sumber daya.
PERANGKAT KERAS:
Untuk menambahkan lebih banyak, Perangkat Keras akan selalu menjadi peran kunci dalam kinerja (jelas). Jika pengembang Anda masih menggunakan piring HDD saya akan mencari untuk berinvestasi di SSD untuk mereka. Karena Magento memiliki jumlah file / folder yang sangat besar, Magento akan sangat mempercepat kinerja pengembang. Saat mengembangkan: Dengan semua caching off, dan While hanya melintasi pohon folder di SVN / GIT, atau IDE Anda. Memberikan VM Anda RAM yang cukup juga sama pentingnya.
My Host Machine: Samsung SSD 512GB Drive space, Win7 (64bit), 8GB RAM, i7 2.4GHz (8 core)
Mesin VM saya: Samsung SSD, 30GB Drive space, Ubuntu 12.04 (32bit), 3GB RAM, i7 (dialokasikan 4 core).
PERTANYAAN UNTUK DIMINTA:
Pertanyaan terbesar adalah, untuk membuat satu Gambar VM Pengembang yang ringan dan dapat digunakan kembali di beberapa proyek, atau untuk membuat Gambar per proyek. Sebelumnya saya mencoba untuk melakukan VM kecil pada basis per proyek namun konfigurasi ulang terus menerus untuk mengikuti alur kerja pengembangan saya menjadi terlalu banyak tugas, dan sekarang menggunakan satu VM yang lebih besar dan mencoba yang terbaik untuk menjaga setiap proyek terisolasi seperti mungkin.
Mempertahankan OS, IDE, LAMP Stack, pembaruan / konfigurasi, dll. Dapat menjadi tugas jika banyak VM per proyek adalah rute yang dipilih. Pada akhirnya mengarah ke waktu pengembangan yang lebih lama (dan bahkan lebih buruk waktu yang tidak dapat ditagih untuk pengaturan lingkungan lokal).
Ini juga terbukti membantu, karena saya dengan cepat dapat mengakses file proyek lain tanpa perlu membuka VM baru dan mengiris perangkat keras Host saya bahkan lebih. Kelemahannya adalah idealnya saya ingin setiap proyek dibungkam dari proyek lain untuk mencegah masalah yang tidak terduga dengan lingkungan (mis. Php.ini, my.cnf, httpd.conf, dll.). Sejauh ini tradeoff dari memiliki semua proyek mudah diakses telah terbukti lebih banyak akal.
Sekali lagi ini terserah kebutuhan dan kebutuhan Anda, jadi evaluasi terlebih dahulu.
UMPAN BALIK:
Yang mengarah pada umpan balik. Dapatkan input sebanyak mungkin dari pengembang Anda. Pada akhirnya persyaratan mereka perlu dipenuhi dan masalah mereka dipahami sebelum solusi yang tepat dapat dibuat dan diterapkan. Setiap orang memiliki alur kerja yang berbeda, dan tidak semua orang merasa nyaman bekerja di OS yang Anda pilih untuk pengembangan. Aturan praktis saya adalah membiarkan pengembang memilih OS dan IDE yang paling nyaman bagi mereka dan akan berkinerja terbaik. Jadi, bahkan VM ringan tanpa kepala Linux mungkin terbukti bermanfaat untuk kebutuhan mereka, tetapi jelas dapat mengalami masalah berbagi folder di jaringan lokal antara Host dan VM.
KEMAMPUAN:
Saya juga bermain-main dengan gagasan menjaga VM Image saya pada sesuatu seperti Dropbox sehingga saya dapat dengan mudah mengaksesnya kapan saja saya butuhkan. Karena layanan seperti Dropbox membandingkan sedikit demi sedikit dari apa yang disimpan, tampaknya logis bahwa hanya bit yang saya ubah yang akan disinkronkan. Namun ini terbukti tidak menjadi masalah karena saya percaya itu ada hubungannya dengan internal tentang bagaimana file gambar disimpan, dan saya akan menunggu sepanjang hari / malam hanya untuk VM saya untuk melakukan sinkronisasi.
CATATAN:
Semakin besar ruang drive yang dialokasikan untuk VM, semakin besar gambar tersebut, ingatlah ini saat mendistribusikan Gambar ke pengembang Anda. Front memuat file proyek Anda per proyek mungkin berlebihan dan saya akan membiarkan ini untuk setiap pengembang untuk mengatur setelah mereka memiliki gambar yang dibuat.
Ashley Schroder memiliki artikel terkait agak lama yang merupakan bacaan yang baik, serta beberapa komentar oleh Fooman dan Colin
Semoga ini membantu dengan wawasan untuk item masalah Anda yang tercantum, # 6.