Kişisel atma projelerinizi barındırmaya gelince, bir hizmet ve proje yapısı öne çıkıyor mu? [kapalı]


12

Google Code, SourceForge, BitBucket ve GitHub'a bakıyorum, çünkü büyük oyuncular gibi görünüyorlar. Şimdi, henüz sağladıkları tüm özellikleri bozmadım, ama gerçekten yazdığım çeşitli kodları koymak için bir yer arıyorum (Project Euler için çözümlerim, Code Golf / için yazabileceğim kod Programlama Bulmacalar Stack Exchange, vb.) Merkezi bir konumda.

İlk sorum şu: Böyle bir durum için, bir hizmet diğerlerinin arasında öne çıkıyor mu?


Bir hizmet seçtikten sonra, kodu nasıl dağıtacağımı seçmem gerekiyor. Depoları ve projeleri kurmak için gördüğüm birkaç seçenek var. Tek bir depo herhangi bir sayıda projeye sahip olabilir - örneğin, bu depodaki dizinlerdeki her dil ve ortam için projeler içeren Project Euler'e yönelik tüm çözümlerim için bir "Tom Owens'ın Proje Euler Çözümleri" havuzuna sahip olabilirim, başka bir havuz çeşitli Code Kata çözümlerim vb. için. Veya böyle bir şeyi dile göre ayırabilirim (bir depoda Python'da Project Euler çözümlerine, başka bir depoda Java'da PE çözümlerine ve üçüncü bir depoda Code Kata C ++ çözümlerine sahip olabilirim).

İkinci sorum: Özellikle depolarınızı nasıl oluşturduğunuz konusunda açmayı seçtiğiniz kod örneklerinizi nasıl paylaşmanız gerektiğini belirlemek için herhangi bir sınırlama veya kural var mı? Benim düşüncem bunun seçtiğiniz hizmet tarafından dikte edilmiş olabileceğidir (topluluğun sözleşmelerine göre).

Yanıtlar:


10

Bitbucket.

Mükemmel bir hizmet, ücretsiz paketlerinde (artı sınırsız kamu) özel depolar sağlarlar ve sorun izleyicilerinde oldukça duyarlıdırlar.

Aynı şey, eksi ücretsiz özel depolar, Github için de geçerlidir, ama git'i çok sevmiyorum. Bu kişisel bir tercih, git'e karşı savunmuyorum, eğer garip bir nedenden ötürü hg'yi tercih ediyorsanız, Github mükemmel geçerli bir seçimdir.

Depoların nasıl düzenleneceğine gelince, kaçınabiliyorsanız dilleri karıştırmayın. Çoğu IDE, bir projenin tek bir dil üzerine kurulduğu varsayımı üzerine inşa edilmiştir (dil + html, css & js kombinasyonunun beklendiği web projeleri hariç). IDE başa çıkamayacağını söylemiyorum, sadece kod tamamlama gibi özellikler biraz daha yavaş olacak gibi IDE her dili işlemek için veri yüklemek zorunda kalacak.

Depolarınız herkese açıksa (dolayısıyla sınırsız), proje şeması başına dil başına bir repo, yani "euler_cpp", "euler_python", vb. İçin gideceğim. tamamen size kalmış.

Klasör yapısına gelince, proje euler çözümleri için:

  • Aynı soruna farklı çözümler bulmayı planlıyorsanız, sorun başına bir klasör
  • Tek başına çözümler için sorun başına dosya

Uygun olanı seçin ve buna uyun, eğer bir problem için birden fazla çözümünüz varsa, başka bir sorun için ikinci bir çözümünüz olmasa bile ilk yapıyı seçin .

Güncelleme:

Sorun başına bir dosya, yalnızca gerçekte uygulanabilir olduğunda önerilmektedir ve bu, soruda belirtilen tek proje olduğundan proje euler sorunlarına çözümler için potansiyel bir şema olarak önerilmektedir.

Btilly'nin yorumuna göre, her dil ve / veya platformun dosya ve klasörlerle ilgili kendi kuralları ve uygulamaları olduğundan, dil başına daha iyi / daha doğal yapıya karar verilmesi gerektiğini ekliyorum.


1
Klasör yapısı dile bağlı olmalıdır. Komut dosyası dili kullanan bir kişi genellikle C / C ++ 'da doğal olarak bir klasördeki birkaç dosyaya yazılan bir dosyaya kod yazar.
btilly

@btilly Doğru. Cevabınıza yorumunuzu ekliyorum ...
yannis

Aslında bir proje içinde dosyaları nasıl düzenleyeceğimizi değil, kullanılan hizmet içinde bir dizi projeyi nasıl düzenleyeceğimi araştırıyordum.
Thomas Owens

@Thomas repo nasıl düzenleneceği gelince ... . Geleneksel olarak havuz başına bir projeniz olur. Her hizmetle ilgili özel talimatlar mı arıyorsunuz?
yannis

Aradığım şey, sıradan bir şey varsa, her toplulukta var olan sözleşmelerdir. Deneyimlerime göre, BitBucket, GitHub ve SourceForge gibi şeyler, sadece hizmetlerden ziyade norm ve sözleşmelere sahip topluluklardan daha fazladır (bazı insanlar bunları hizmetler gibi kullanıyor olsa da).
Thomas Owens

3

Kendi havuzunuzu barındıran bir seçeneği unuttunuz. Gerçekten yakın zamana kadar uçmanın tek yolu buydu.

Bugün bir tane kullanmak zorunda olsaydım, esas olarak özel depolara ve cıva kayalarına izin verdikleri için bitbucket'i seçerdim.


Bunu çok fazla acı çekmeden VisualSVN ile yaptım.
Cody Sand

Orada yaptım. Turnkeylinux.org cihazlarıyla daha da etkili olabilirsiniz . .
Wyatt Barnett

3

Google Code, SourceForge ve GitHub'ı farklı zamanlarda kullandıktan sonra GitHub'ın diğer ikisinden çok daha iyi olduğunu söyleyebilirim:

  • Kod oluşturma ve paylaşma konusundaki asıl çalışmaya tamamen odaklanır.
  • Sorun işleme varsayılan olarak etkindir ve yalnızca kullanımı basit olmakla kalmaz, aynı zamanda kod ve çekme istekleriyle iyi bağlantı kurar.
  • Bir depoya başlamak ve çekme isteklerini işlemek için adım adım talimatlar gibi acemi yardımı mükemmeldir.
  • İkili dağıtım için tasarlanmamıştır; bu daha iyi PyPI gibi özel siteler tarafından ele alınmaktadır.
  • Sıfırdan kendi web sayfanızı geliştirmek yerine basit wiki.
  • Mükemmel yem desteği - Benim ilgimi çeken her şey için tek yem.
  • Gayri resmi ve dolayısıyla okunabilir iletişim.
  • Yeni özelliklerin çok aktif gelişimi.

Ayrıca, Github, Project Euler çözümleri gibi şeyleri saklamak ve golf snippet'lerini, yumrukları kullanarak kodlamak için mükemmeldir.
Matt Ellen

1

Kişisel projelerim çok büyük değil (çok fazla metin, grafik yok), bu yüzden DropBox'daki ustalarla Mercurial depolarım var. Yedeklemeye başlamak için hızlı bir yoldur (DropBox kaybolursa, sahip olduğum her bilgisayardaki havuzun bir kopyasına sahibim) ve taşınabilirlik.

Dağıtmak istediğim noktaya ulaşan bir projem olduğunu varsayarsak, daha fazla görünürlük için her zaman Bitbucket'e taşıyabilirim. Bu, Euler Project çözümleri için kod içermez.

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.