Bagaimana cara mengembangkan di Windows dan menguji dan menjalankan di Linux?

12

Saya adalah salah satu dari dua pengembang untuk beberapa perangkat lunak internal (ditulis dengan python) di perusahaan saya. Perangkat lunak adalah aplikasi server yang dirancang untuk dijalankan pada kotak Linux khusus. Saat ini, kami memiliki satu kotak berisi repositori SVN kami dan kotak ini juga digunakan untuk pengujian. Masalahnya adalah saya mengembangkannya di workstation saya menggunakan Eclipse pada Windows dan aplikasi ini tidak dapat berjalan di Windows.

Bagaimana cara mengatur lingkungan seperti itu dengan benar sehingga Anda tidak kehilangan waktu berharga untuk mentransfer proyek dan kode sehingga Anda dapat mengujinya?

Saat ini saya sedang melakukan checkout svn, mengubah beberapa kode dan kemudian mengunggahnya ke server pengembangan untuk pengujian (bukan melalui svn). Uji di server, ubah sesuatu, uji lagi, dll. Setelah semua itu muncul komit. Mengunggah dan menguji terus-menerus ini membuatku gila. Saya sudah mencoba untuk menjaga proyek di server (checkout ke dir home) tetapi ini menyebabkan banyak masalah dengan Eclipse.

Jelas saya tidak memiliki banyak pengalaman dalam hal ini, jadi saya bertanya apa praktik terbaik mengenai masalah seperti ini?

c0ldcrow
sumber

Jawaban:

14

Pasang folder pada kotak Linux. Dengan begitu Anda bisa berinteraksi langsung dengan kode. Mempesona!

l0b0
sumber
Ini adalah jawaban yang benar. Terutama jika Anda dapat menjalankan Cygwin di kotak windows Anda; Anda dapat menggunakan Cygwin untuk menampilkan Linux X-Windows (Gnome, KDE, Apapun yang anak-anak keren gunakan hari ini) kembali ke kotak windows Anda. Anda dapat memprogram di Eclipse langsung pada kotak Linux dan segera mengujinya.
Kristofer Hoch
3
Waspadalah terhadap perbedaan dalam sistem file. Windows tidak mendukung nama file case-sensitive (di mana "nama file" dan "FILENAME" adalah dua file yang berbeda), beberapa karakter sebagai nama file (yaitu "/"), atau tautan lunak.
bitsoflogic
Setuju, ini adalah opsi yang paling berguna dan termudah untuk diterapkan. Mengkonfigurasi VM seperti yang saya inginkan akan membutuhkan terlalu banyak waktu.
c0ldcrow
@ c0ldcrow: Selain masalah sistem file, ketahuilah bahwa tergantung pada apa yang Anda lakukan, mengakses file di jaringan untuk melakukan pekerjaan dev bisa sangat lambat. Secara khusus, saya perhatikan bahwa beberapa sistem kontrol versi sangat lambat saat digunakan pada drive jaringan, meskipun kasus khusus ini seharusnya tidak menjadi masalah bagi Anda (lakukan semua hal kontrol sumber Anda secara lokal).
Matthew Scharley
10

Solusi terbaik menurut saya adalah menggunakan lingkungan tervirtualisasi untuk pengujian, jika PC lokal Anda memiliki sumber daya untuk menjalankannya.

Untuk beberapa rekomendasi tentang produk tertentu, Anda dapat melihat jawaban saya untuk pertanyaan di StackOverflow , tetapi secara umum, apa artinya ini Anda akan memiliki PC Linux kedua yang berjalan di dalam yang sekarang. Saya menggunakan ini untuk pengembangan PHP di Windows sepanjang waktu dan itu berfungsi dengan sangat baik bagi saya. Anda bisa membagikan basis kode Anda dengan SSH / ExpanDrive atau jika Anda menggunakan VirtualBox lalu periksa folder bersama .

Matthew Scharley
sumber
6

Saran 1: bekerja di Linux secara langsung, jika Anda punya waktu untuk mempelajarinya. Mempelajari cara kerja sistem operasi lain sangat bagus untuk pengalaman pribadi Anda, dan menambahkan ke CV bahwa Anda tahu cara menggunakan Linux tidak ada salahnya. Eclipse juga ada di Linux, jadi Anda tidak kehilangan apa pun vs Windows.

Saran 2: instal Linux pada mesin virtual secara lokal. Ini akan memungkinkan Anda untuk menguji aplikasi tanpa harus mempublikasikannya ke server yang jauh setiap saat.

Catatan: bagaimana Anda bisa menulis aplikasi yang menargetkan Linux jika Anda bekerja dengan Windows? Ini mimpi buruk!

Arseni Mourzenko
sumber
Bahkan jika Anda memiliki penguji, Anda harus melakukan beberapa pengujian terbatas pada pekerjaan Anda sendiri, bahkan jika itu hanya untuk memastikan itu benar-benar mengkompilasi / berjalan sama sekali. Jika Anda mengembangkan pada kotak Windows tetapi Anda mengembangkan aplikasi Linux, maka ini menjadi sedikit lebih sulit. Dengan catatan bagaimana Anda bisa melakukannya, cukup mudah untuk dilakukan dengan pengaturan yang tepat. Saya menggunakan VM secara luas dalam pekerjaan saya sendiri (PHP / MySQL menargetkan server akhir Linux) dan itu benar-benar berfungsi dengan baik, terutama jika Anda memiliki 2+ monitor untuk bekerja.
Matthew Scharley
Saya sudah sangat baik dengan Linux (saya sudah menyiapkan tes dan server SVN). Saya juga melakukan pengkodean Windows (perlu Visual studio) dan umumnya saya lebih menyukai Windows :) Pengembangan perangkat lunak bukan bisnis inti untuk perusahaan saya, keamanan komputer, ini hanya beberapa aplikasi internal yang kami butuhkan. Saya pikir saya dapat menerima menginstal Linux dalam VM
c0ldcrow
@Matthew Scharley: Saya setuju. Menghapus catatan kedua saya.
Arseni Mourzenko
@ c0ldcrow: jadi tidak boleh menjadi masalah bagi Anda untuk memiliki lingkungan virtual hanya untuk mengembangkan aplikasi ini (atau hanya untuk mengujinya, saat menulis kode pada Windows).
Arseni Mourzenko
2

Jika Anda menggunakan eclipse, ada plugin yang sempurna untuk Anda: Filesync Saya menggunakannya setiap saat dan saya yakin Anda akan menyukainya.

Inilah yang biasanya saya lakukan karena saya bekerja dalam kondisi yang sama dari Anda.

Saya checkout proyek dari SVN menggunakan Eclipse di mesin saya. Kemudian saya menyinkronkan proyek lokal saya ke server dev | test remote tidak termasuk file seperti .project dan semacamnya. Saya sarankan Anda juga memasukkan kunci SSH Anda ke server jarak jauh untuk mempercepat koneksi.

Dan voila! Sekarang Anda dapat bekerja secara lokal dan gerhana akan secara otomatis menyinkronkan setiap perubahan yang Anda lakukan pada server jarak jauh. Ketika semuanya telah teruji dengan baik dan siap untuk dikirimkan, Anda juga dapat berkomitmen menggunakan gerhana! Tidak perlu dempul!

Semoga ini bisa membantu!

Alfwed
sumber
0

Saya berhasil menulis kode c # / mono di Visual Studio, dan melakukan debug jarak jauh pada kotak Linux dari dalam VS menggunakan plugin debugger jarak jauh GDB. Bekerja dengan sangat baik. Saya membayangkan akan lebih cepat jika instalasi Linux Anda di VM lokal (ada alat VMWare Ubuntu yang bagus tersedia di web), tetapi saya membutuhkan satu set kartu Tesla GPU yang tidak diinstal di laptop saya.

Cari WinGDB. Ini tidak gratis, tetapi bekerja dengan sangat baik.

3Dave
sumber