Windows üzerinde nasıl geliştirilir ve Linux üzerinde nasıl test edilir ve çalıştırılır?


12

Şirketimdeki bazı dahili yazılımlar (python ile yazılmış) için iki geliştiriciden biriyim. Yazılım, özel bir Linux kutusunda çalışmak üzere tasarlanmış bir sunucu uygulamasıdır. Şu anda, SVN depomuzu tutan bir kutumuz var ve bu kutu test için de kullanılıyor. Sorun şu ki, Windows'ta Eclipse kullanarak iş istasyonumda geliştiriyorum ve bu uygulama Windows'ta çalışamıyor.

Projeyi ve kodu aktararak değerli zamanınızı kaybetmemeniz için bu ortamı uygun şekilde nasıl düzenleyebilirsiniz?

Şu anda svn ödeme yapıyorum, bazı kodu değiştirmek ve daha sonra test (svn üzerinden değil) için geliştirme sunucusuna yükleyin. Sunucuda sınayın, bir şeyleri değiştirin, tekrar sınayın. Bu sürekli yükleme ve test beni deli ediyor. Projeyi sunucuda tutmaya çalıştım (ev dizinine çıkış), ancak bu Eclipse ile ilgili birçok soruna neden oluyor.

Açıkçası bu konuda çok fazla deneyimim yok, bu yüzden bu tür problemlerle ilgili en iyi uygulamaların neler olduğunu soruyorum.

Yanıtlar:


14

Monte Linux kutusu klasörü. Bu şekilde doğrudan kodla etkileşim kurabilirsiniz. Bir cazibe çalışır!


Bu doğru cevap. Özellikle Cygwin'i pencere kutunuzda çalıştırabiliyorsanız; Cygwin'i kullanarak Linux X-Windows (Gnome, KDE, Havalı çocuklar bu gün ne kullanıyorlarsa) pencerelerinize geri döndürebilirsiniz. Eclipse'de doğrudan Linux kutusunda programlayabilir ve hemen test edebilirsiniz.
Kristofer Hoch

3
Dosya sistemlerindeki farklılıklara dikkat edin. Windows, büyük / küçük harfe duyarlı dosya adlarını ("dosyaadı" ve "Dosya adı" iki farklı dosyadır), bazı karakterleri dosya adı (örn. "/") Veya geçici bağlantıları desteklemez.
bitsoflogic

Katılıyorum, bu uygulamak için en kullanışlı ve en kolay seçenektir. Bir VM'yi istediğim şekilde yapılandırmak çok fazla zaman gerektirir.
c0ldcrow

@ c0ldcrow: Dosya sistemi sorunları dışında, ne yaptığınıza bağlı olarak, dev bir iş yapmak için bir ağdaki dosyalara erişmenin engelleyici bir şekilde yavaş olabileceğini unutmayın. Özellikle, bazı sürüm kontrol sistemlerinin bir ağ sürücüsünde kullanıldığında çok yavaş olduğunu fark ettim, ancak bu özel durum sizin için bir sorun olmamalı (tüm kaynak kontrol öğelerinizi yerel olarak yapın).
Matthew Scharley

10

Bence en iyi çözüm, yerel bilgisayarınızda bir tane çalıştırmak için kaynaklar varsa, test için sanallaştırılmış bir ortam kullanmak olacaktır.

Belirli ürünlerle ilgili bazı öneriler için StackOverflow ile ilgili bir soruya verdiğim yanıtı görebilirsiniz , ancak genel olarak bunun anlamı, mevcut ürününüzün içinde çalışan ikinci bir Linux PC'ye sahip olmanızdır. Ben her zaman Windows üzerinde PHP geliştirme için kullanın ve benim için gerçekten iyi çalışıyor. Kod tabanınızı SSH / ExpanDrive ile paylaşabilirsiniz veya VirtualBox kullanıyorsanız paylaşılan klasörlere göz atın .


7

Öneri 1: Öğrenmek için zamanınız varsa, doğrudan Linux'ta çalışın. Başka bir işletim sisteminin nasıl çalıştığını öğrenmek kişisel deneyiminiz için gerçekten harikadır ve CV'nize Linux'u nasıl kullanacağınızı bildiğinizi eklemek zarar vermez. Ayrıca, Eclipse Linux'ta var, bu yüzden Windows'a karşı hiçbir şey kaybetmezsiniz.

Öneri 2: Linux'u yerel olarak bir sanal makineye yükleyin. Uygulamayı her seferinde uzak bir sunucuda yayınlamak zorunda kalmadan test etmenizi sağlar.

Not: Windows ile çalışıyorsanız Linux'u hedefleyen bir uygulamayı nasıl yazabilirsiniz? Bu bir kabus!


Test cihazlarınız olsa bile, sadece gerçekten derlendiğinden / çalıştığından emin olsanız bile, kendi çalışmanız üzerinde bazı sınırlı testler yapmanız gerekir. Bir Windows kutusunda geliştiriyorsanız, ancak bir Linux uygulaması geliştiriyorsanız, bu biraz daha zorlaşır. Bunu nasıl yapabileceğinizi not ederek, doğru kurulumla yapmak yeterince kolaydır. VM'leri kendi işimde yaygın olarak kullanıyorum (bir Linux uç sunucuyu hedefleyen PHP / MySQL) ve özellikle çalışmak için 2+ monitörünüz varsa gerçekten iyi çalışıyor.
Matthew Scharley

Linux ile zaten çok iyiyim (testi ve SVN sunucusunu kurdum). Ben de Windows kodlama yapmak (Visual studio gerekir) ve genellikle Windows daha fazla seviyorum :) Yazılım geliştirme benim şirket için temel işletmeler değil, bilgisayar güvenliği, bu sadece ihtiyacımız olan bazı iç uygulama. Sanırım Linux'u bir VM'ye yüklemeyi kabul edebilirim
c0ldcrow

@Matthew Scharley: Katılıyorum. İkinci notumu kaldırdım.
Arseni Mourzenko

@ c0ldcrow: bu nedenle sadece bu uygulamayı geliştirmek için (veya Windows'da kod yazarken yalnızca test etmek için) sanal bir ortama sahip olmanız bir sorun olmamalıdır.
Arseni Mourzenko

2

Tutulma kullanıyorsanız, sizin için mükemmel bir eklenti vardır: Filesync Her zaman kullanıyorum ve bundan hoşlanacağınızdan eminim.

İşte sizden aynı koşullarda çalıştığım için genelde yaptığım şey.

Makinemde Eclipse kullanarak projeyi SVN'den kontrol ediyorum. Sonra yerel projemi .project ve benzeri dosyalar hariç uzak dev | test sunucusuna eşitlerim. Bağlantıyı hızlandırmak için SSH anahtarınızı uzak sunucuya da koymanızı öneririz.

Ve voilà! Artık yerel olarak çalışabilirsiniz ve eclipse uzak sunucuda yaptığınız değişiklikleri otomatik olarak senkronize eder. Her şey iyi test edildiğinde ve teslim edilmeye hazır olduğunda, tutulmayı da kullanabilirsiniz! Macun gerek yok!

Umarım yardımcı olur!


0

Visual Studio'da c # / mono kodu yazmayı ve bir GDB uzaktan hata ayıklayıcı eklentisini kullanarak VS içinden bir Linux kutusunda uzaktan hata ayıklamayı başardım. İnanılmaz iyi çalıştı. Linux kurulumunuzun yerel bir VM'de (web'de güzel bir VMWare Ubuntu cihazı varsa) daha hızlı olacağını düşünüyorum, ancak dizüstü bilgisayarıma takılı olmayan bir dizi Tesla GPU kartına ihtiyacım vardı.

WinGDB'yi arayın. Onun özgür değil, ama inanılmaz iyi çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.