Aynı oyunda bir arkadaşınızla çalışmanın en etkili yolu nedir?


29

Dosyaları kontrol edebileceğimiz, düzenleyebileceğimiz, tekrar kontrol edebileceğimiz ve onlardan oluşturabileceğimiz bir şeye ihtiyacımız var.

Aynı anda aynı kodu düzenleyebileceğimiz Google Dokümanlar gibi bir şey ideal olacaktır.

İkimiz de Visual Studio 2010 kullanıyoruz.


2
Neden hiç kimsenin yapmadığını (ya da en azından bulamadım) Dokümanlar gibi kod düzenlemeyi hep merak etmişimdir. Kod tamamlama ve kodun derlenmesi gerektiği gibi bazı doğal zorluklar olduğunu düşünüyorum, ancak bazı koordinasyonlarla (ve muhtemelen gecikmeli kod birleştirme stratejileri gibi püf noktaları) üstesinden gelmek tamamen imkansız görünmüyor. Büyük projelerde GERÇEK problem. İşbirlikçi kodlama araçları için yine de kazmak zorunda kalacağım (veya kendim
yapalım

1
@kaoD SubEthaEdit, dosya bazında bu tür bir işlevsellik sunar (büyük miktarda dosyayı ne kadar iyi kullandığından emin değilsiniz).
michael.bartnett

Birisi bana windows için böyle bir program bulabilir ve c # size bir çerez vereceğim.
steakbbq

1
Emacs bunu yapabilir, ancak çok tuhaf : emacswiki.org/emacs/CollaborativeEditing ; veya MoonEdit: moonedit.com (C # moduna sahip olup olmadığını bilmeme rağmen); veya Gobby: en.wikipedia.org/wiki/Gobby
amitp

Yeni bir derleyici IE sublime yazmak ne kadar zor olurdu? Muhtemelen yüce hak için bir eklenti geliştirmek daha kolay olurdu?
steakbbq

Yanıtlar:


19

Sorunuzla ilgili bir yorumda belirttiğim gibi, gerçek işbirlikçi düzenleme için çok merak ediyorum . Ben ancak çoğu çözümler sadece standartlarını karşılamayan bir süre önce araştırma yaptım: Ya onlar sözdizimi vurgulamak ile düz metin editörleri edildi deli maliyetleri vardı ya çapraz platform kullanılamaz (gibi SubEthaEdit ...)

İçine tökezledi kadar Saros ! Düzgün bir Eclipse eklentisidir, bu nedenle mevcut iş akışınızla entegrasyonu kolay olabilir. Demo videolarını izleyebilirsiniz, oldukça etkileyici. Gerçek bir işbirliğine dayalı düzenleme ortamı için çok iyi düşünülmüş ve bazı çok iyi temel özelliklere sahip. İstediğiniz sayıda katılımcıyı, tam proje senkronizasyonunu, belirteçlerle gerçek zamanlı düzenlemeyi ve vurgulamayı (ala Google Dokümanlar), ortağınızın görüşünü izleyerek, birkaç katılımcı-farkındalık yöntemini ve daha fazlasını (bu eklentiyi kullanarak ekranınızı bile paylaşabilirsiniz) destekler. ) Ve görünüşe göre diğer Eclipse eklentileri ile entegre!

Henüz kendim test etmedim, ancak halen devam eden ve umut verici görünen birkaç projeden biri. Bir şans verin ve bana bildirin ( bu kuralları daha önce okuyun .) Söz veriyorum, buraya geri döneceğim ve izlenimleri kendim denediğimde yorum olarak göndereceğim.

EDIT: Ayrıca, Gustavo yorum yaptığı gibi, Cacoo da yararlı olabilir. UML'lerin çizilmesi için çevrimiçi bir işbirliği aracıdır (aslında, herhangi bir diyagram). Saros bir beyaz tahtayı destekler, ancak sakarlıktan kaçınmak istiyorsanız bir diyagram aracı gibi bir şey yoktur.


3
İnsanlar, tüm versiyonlama sistemlerinde birçok cevap verdiler, ama bence sorunun asıl cevabı bu. Ortak düzenleme için +1. BTW, Cacoo'yu deneyin (google it) UML'leri yapmak için ortak bir araçtır, bir sürü projede bana yardımcı oldu, cevabınızı tamamlayabilir.
Gustavo Maciel

1
@ Gustavo-Gtoknu gerçekten çok iyi bir araç, cevabı güncellersem sorun olur mu?
Şubat'ta kaoD

2
Şimdi yap! : D Cevap hak ediyor.
Gustavo Maciel

Bu harika, ancak Eclipse java için mi? C # çalıştırıyorum
steakbbq

@ Steakbbq C # desteği sağlayan bazı eklentiler var ( Emonic and Improve ) fakat ne yazık ki hata ayıklama ve yeniden düzenleme desteği bulunmuyor.
kaoD

36

"sadece dosyaları düzenleyebildiğimizi kontrol edebileceğimiz, sonra da onları kontrol edip aynı dosya grubundan derleyebileceğimiz bir şeye ihtiyacımız var"

Sürüm kontrolü kullanın; Bir sürüm kontrol sistemi (VCS), tam olarak sizin tanımladığınız şeydir. Dışarıda birçok popüler sürüm kontrol sistemi var:

http://subversion.apache.org/

http://mercurial.selenic.com/

http://git-scm.com/

Visual Studio'yu şahsen kullanmıyorum, ancak Visual Studio'nun tüm bu sürüm kontrol sistemlerini desteklediğinden eminim.


11
Sohbette ücretsiz bir özel Git / HG sunucusunu daha yeni verdim : bitbucket.org (5 işbirlikçi için ücretsiz). Ayrıca HG, büyük ikili içeriklerle (içerik projeleri) ilgilenen eklentilere sahip olduğundan daha uygundur.
Jonathan Dickinson

2
+1 Bir VCS gitmenin yoludur. AnkhSVN'i Subversion için Visual Studio Eklentisi olarak kullanıyorum .
Richard Marskell - Drakkir

2
Burada +1. benim kişisel desteğim TortoiseSVN. Barındırma için (açık kaynak varsayarak) tavsiyem Google Code
PlayDeezGames


2
Lütfen yıkılma. Dağıtılmış versiyon kontrolü, merkezi sistemler ile çalışmaya alışkın olmayan insanlar için tamamen basittir. Eskiden yıkılmaya çalışan insanlar kafanın karışmasını özlüyor.
rjmunro

9

Ekibim için üzerinde çalışmamız gerekenlere bağlı olarak üç program kullanıyoruz:

  • Kod için TortoiseSVN (programcıların aynı IDE'yi kullanmasını sağlayın, kuralları standartlaştırın ve iyi yorumlamaları teşvik edin)
  • Multimedya için Dropbox (modeller / sprite / ses dosyaları için, sanatçılar / besteciler / modelciler yayınlanmaya hazır oluncaya kadar aygıtların yerel olarak çalışmasına izin verir)
  • Dokümantasyon için GoogleDocs (genellikle tasarımcılar, yöneticiler ve üreticiler için tasarım belgeleri / örnekler / sahalar için)

Farklı üyelerin (farklı zamanlarda çalışan) çabalarını koordine etmek için Assembla'nın biletleme sistemini kullanıyoruz. Bu şekilde herkes tüm projenin statüsünde veya seçtikleri özel bir caddede güncellenir. Ayrıca herkesin aynı sayfada en az haftalık olarak olmasını sağlamak için Skype / Google Hangout / Yüz yüze iletişim özelliğini kullanın.

Bu yöntem tipik olarak, bir takım roller belirleyen 3-5 kişiden oluştuğunda çalışır (programcı, sanatçı, modelci, tasarımcı vb.). Bu işe yaramazsa, kendinizinkinden birini yapmak için diğer yöntemleri deneyin veya çalışma özelliklerini birleştirin. İyi şanslar!


Kod için sadece sürüm kontrolü hakkında konuştum, çünkü sorduğu gelişimin tek yönü bu değildi, fakat stüdyom da bu cevapla aynı amaçlar için Dropbox ve Google Dokümanlar kullanıyor.
12'de atıyor

Mükemmel kombinasyon
Bill K,

7

Açılır kutu, sürüm kontrol sistemi veya her ikisi de istediğiniz gibi.

Dropbox en uygunudur. Yalnızca değişikliklerinizi yapın ve kaydedin; Dropbox, arkadaşlarınızın makinesindeki değişikliklerle eşitlenir. İki kişinin aynı anda dosya üzerinde çalışabileceğini, ancak birbirlerinin üzerine yazmadan çalışabileceklerini sanmayın.

Bununla birlikte, bir sürüm kontrol sistemi kullanmanızı öneririm Subversion , GIT ve Mercurial şu anda büyük 3'tür. VCS kullanmanın bir çok avantajı vardır: yedeklemeleri otomatikleştirme, geri alma değişikliklerini yapma ve herhangi bir bilgisayarda kodunuzu kontrol etme yeteneği dahil sunucunuza erişimi var.

Kullanmış 3 I Subversion'ın en kolay başlamak için ve bulunan söz Assembla sağlar ücretsiz özel SVN veya GYTE depoları.


9
Bu tür bir şey için dropbox'ı gerçekten sevmiyorum. Tortoise * ürünlerinden herhangi birini kullanıyorsanız, benzer bir Windows Gezgini entegrasyonu vardır, ancak "birbirinin üzerine yazan 2 kişi" sorununu yaşamadan, taahhüt / itme / çekme / birleştirme işlemlerini denetleyebilirsiniz.
Jimmy,

2
Ya da bu yüzden bir VCS tavsiye ediyorum. Ancak, neredeyse hiçbir öğrenme eğrisi yok ve anında bir yedeğiniz var, bu yüzden bahsetmeye değer olduğunu düşündüm.
ClassicThunder

9
Ben öneriyoruz değil yerinde bir sürüm kontrol sisteminin DropBox kullanarak. İki kişi aynı zaman dilimi boyunca aynı dosyayı değiştirirse, DropBox dosyayı çoğaltır. Kaynak kodu için, bu genellikle istenmeyen bir durumdur ve sadece bir kaynak kontrol sistemi kullanan bir acıdır.
John McDonald,

Yıkılmak, kullanımı kolay değildir - yalnızca sahip oldukları insanlar, diğer insanlar gibi gidenleri kafa karıştırıcı bulacaktır.
rjmunro

Öyle olduğunu hiç söylemedim. Benim için öğrenmenin en kolay yolu olduğunu söyledim. "Yıkılma kullanımı kolay değildir" gibi öznel ifadelerin mutlak terimlerle ifade edilmesi aptalcadır.
ClassicThunder

5

Diğer cevaplarda belirtildiği gibi, bir VCS gitmenin yoludur. Git benim favorim, fakat bu ilk kullandığımdan olabilir.

Git'i öğrenmek için bu çevrimiçi kitabı çok faydalı buldum. http://progit.org/book/ Hangi VCS ile giderseniz gidin, nasıl kullanılacağına karar vererek birkaç saat ayırmaya değer.

Bahsetmeye değer başka bir şey - VCS kaynak kodu (veya herhangi bir metin dosyası) için mükemmeldir, ancak görüntülerin ve ses dosyalarının depolanması gereksiz yere havuzunuzu şişirebilir. Bazı insanlar bunun için ayrı bir havuz önerir, ancak Dropbox'ın bu tür kaynaklar için iyi çalıştığını biliyorum.

Bir okul projesi için genel bir Dropbox klasörü kullandık ve kaynaklarımızı güncel tutmak için bu betiği kullandık https://github.com/dc2011/td/blob/master/tools/extrafiles.sh

Dropbox'taki dosyanın md5 kodunu, zaten diskteki dosyanın (varsa) karısına karşı denetler, böylece yalnızca yeni veya değiştirilmiş dosyaların indirilmesini sağlar.


1
evet, svn kullanırdım. Şimdi her zaman Git'i kullanıyorum. Her ne kadar birçok kişi komut satırını beğenmese de, gerçekten rahat buluyorum. Pencerelerde git-bash ortamını saran Console kullanıyorum. OSx'te Solarized temalı sadece Terminal.
Prozaker

Katılıyorum, eğer yapabilirsem terminalde yaşıyorum! Bazen biraz daha dik bir öğrenme eğrisi olabilir, ancak otomasyonu çok daha kolay hale getirir. OSX'i düzenli olarak kullanıyorsanız, iTerm2'yi kontrol etmelisiniz. Tam ekran modunun yanı sıra 256 renk desteğine sahiptir ve bölmeleri gerçekten güzel bir şekilde kullanır.
Dean

4

Birçok kişinin belirttiği gibi sürüm kontrolüne ihtiyacınız var. FogCreek yazılımından ücretsiz bir teklif var (bu siteyi mümkün kılan stackexchange'i sağladıkları için teşekkür etmelerini sağlayın). Buna Fırın ( Mercurial'ın üzerine inşa edilmiştir) adı verilir ve FogBugz adlı ürettikleri güzel bir böcek / özellik / zaman takip yazılımı ile bütünleşir . 2 geliştiriciden oluşan bir ekip için bu ürünlerin ücretsiz sürümlerini sunar (ve bunları sizin için barındırır). Bu kurulumu kendi projelerimde ve işverenim için üzerinde çalıştığım tüm yazılım ürünlerinin ücretli sürümlerini kullanıyorum (daha büyük bir geliştirici ekibimiz var, bu yüzden ücretli sürümleri kullanmalıyız). Kesin bir göz değer.

Bunları kullanmaya karar verirseniz, başlamanıza yardımcı olacak bazı iyi öğreticiler veya faydalı linkler:


1

Ekibimin düzgün işbirliği için kullandığı araçlar:

• GitHub, eğer biraz paranız varsa, tüm kaynağınızı barındırmanın son derece ucuz ve kolay bir yoludur. Bu, çoğu insanın hakkında konuştuğu sürüm kontrol platformudur. Yerel sabit diskinizde bulunan ve ekip üyelerinizden herhangi biri değişiklik yaptığında güncellenen bir Pastebin hesabı olarak düşünün. Barındırılan projelere depolar denir. Depolarınızı temiz ve güncel tutmak için bir kısmı doğrudan Windows'a entegre olan birçok ücretsiz Git istemcisi vardır.

• Oyun tasarımı belgeleri, fikirleri, konsept sanatı için Google dokümanları.

• Birimiz belirli bir varlık veya senaryoya ihtiyaç duyuyorsa, DropBox'ı ara sıra kullanmak ... bu çok nadir ve GitHub üzerinden çalışmayı tercih ediyoruz.


1

Visual Studio'yu kullanarak arama yaparsanız, en iyi seçenek Team Foundation, Microsoft'tan ve bildiğim en iyi Sürüm Denetimi ise, olumsuz olan şey sunucuda çalıştırmak için bir sunucuya, sql sunucusuna ve takım temel sunucusuna ihtiyacınız olması (müşteri zaten görsel stüdyosunda), şansınız varsa deneyin.


Şu anda Team Foundation'ı kullanıyorum, şubelere dallanma ve birleşme ile ilgili bir sorum var. İki dal yaparsam ve birisi sınıfa bir miktar kod eklerse ve bunları birleştirdiğimde sınıfa farklı bir kod eklerim, dosyaya değişiklikleri de ekler mi yoksa bir hata alır mı ve değişikliklerden birini seçmem gerekir ?
steakbbq

Bunun için dal kullanmıyorum, farklı sürümler için dal kullanıyorum, eğer bunu yaparsanız görsel stüdyo muhtemelen birleştirmeyi kötü yapacak (birisi bir sınıf kullanıyorsa ve başka bir kişi aynı sınıfı kontrol ettiğinde ve ikisi de eklediğinde) kod, visual studio sizden bir el ile birleştirme yapmanızı isteyecektir), aynı zamanda bir sınıfa değişiklik yapmak istiyorsanız, neden kısmi dersleri kullanmıyorsunuz? dalları farklı sürümler için kullanın, bu sürümler üzerinde daha fazla kontrol sahibi
olmanız

"Team Foundation, Microsoft'tan ve bildiğim en iyi Sürüm Denetimi" "Ah canım :) Hiç başka bir şey denediniz mi?
Andy M

1

Sanal çift programlama için bu kurulumu kullanıyorum (Skype üzerinden her şeyi koordine ediyor):

  1. Makinelerinizden birine bir SSH sunucusu kurun.
  2. Tmux'u kurun
  3. Diğer kişi bilgisayarınıza girdi.
  4. Ana bilgisayarın bir tmux oturumu başlatmasını sağlayın
  5. Eşinize SSH bağlantısında 'tmux at' çalıştırmasını sağlayın

Artık siz ve arkadaşınız aynı terminal ekranını göreceksiniz. Ama muhtemelen bilgisayarınızın dışında birlikte çalışabilmenizi istersiniz, değil mi?

  1. Bir Bitbucket.org hesabı açın, bir proje oluşturun (Git'i tercih ederim) ve boş bir depo oluşturma konusundaki talimatlarını izleyin.
  2. Projenizin dosyalarını "git add. && git commit -m 'İlk taahhüt." İle kopyalayın.
  3. "Git push origin master" ile Bitbucket'e basın

Artık siz ve arkadaşınız değişimler üzerinde bağımsız olarak çalışabilir ve hazır olduğunuzda bunları Bitbucket'e itebilirsiniz.

Bu, her ikinizin de Visual Studio'da güzel bir şekilde birlikte düzenlemenize izin vermez, ancak yeni bir özellikle eşleştiriyorsanız veya bir sorunu giderirseniz kaynak kodunu düzenleyebilirsiniz. Değişikliklerinizi daha sonra zorladığınız sürece, arkadaşınız VS'de açabilir.


1

Pazar sürümünün kontrolünü öneririm . Küçük / one2few men projeleri için küçük, pratik, çok iyi. Git ve SVN daha büyük projeler / ekipler için daha sık kullanılıyor. Bazaar'ın VS eklentisi var ancak sizin için VS dışında kullanması çok fazla bir fark yaratmıyor. Onu tanıdıktan ve ilk kez kurduğunuzda, kullanımı gerçekten çok kolaydır. Kullanışlı birkaç eklenti var.


-2

Çok sayıda iyi öneri zaten, ancak düşük teknolojili ve basit bir çözüme gitmek istiyorsanız, işbirliği yaptığım zaman bu benim için işe yarar:

  1. Ne zaman, kim tarafından ve ne zaman düzenlendiğini takip etmek için her komut dosyasının başındaki yorumları kullanın.

    Vers      Date      Author   Note
    
    1.0.1     12/10/11  Paul     Added a new boss to level 12
    1.0.2     22/11/11  Frank    Fixed the bug introduced by Paul
  2. Özel bir forum veya daha iyisi hala bir Wiki, fikir iletmenin ve herkesi ilerleme konusunda güncel tutmanın iyi bir yoludur.

Zaten verilen fikirler bu çözümden daha iyidir, ancak bu, minimum zaman yatırımıyla uygulanması çok kolaydır, birlikte çalışan birkaç insanın olduğu küçük bir proje için ihtiyaçlarınız için yeterli olabilir.

Büyük bir küresel organizasyon için çalıştıktan sonra, sürüm kontrol yazılımlarını (MKS) çevreleyen bürokrasiden dolayı kaybedilen zamanın gerçek bir acı olduğunu söyleyebilirim!


Her senaryo başında böyle yorumlardan nefret ediyorum. Her neyse, burada soruyu ele almayan; Değişiklikleri izleme teknikleri size ekip üyelerinin çalışmalarını birbirleriyle nasıl paylaşacakları hakkında hiçbir şey söylemez.
12'de atıyor

İletişim sorun değil, geliştirici arkadaşlarım bütün gün benimle ventrilo'da oturuyorlar ve çok konuşuyoruz.
steakbbq
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.