it-swarm.dev

Katılmak için iyi bir açık kaynak projesi nasıl bulabilirim?

Bir yıl önce çalışmaya başladım ve herkesle aynı nedenlerle açık kaynaklı bir projeye katılmak istiyorum: yararlı bir şey yaratmaya yardımcı olun ve becerilerimi daha da geliştirin.

Benim sorunum, uygun bir projeyi nasıl bulacağımı bilmiyorum.

Başlangıç ​​dostu bir projeyi nasıl bulabilirim? Hangi özellikleri aramalıyım? Bir projenin uygun olmayabileceğine dair uyarı işaretleri nelerdir? İnsanları açık kaynak projeleriyle eşleştirmeye yardımcı olacak araçlar var mı?

Benzer bir soru var burada , ancak bu soru istihdamla ilgilidir ve PHP/Drupal ile sınırlıdır.

152
Pops

İlk açık kaynak katkım, daha önce ücretli bir projede daha önce kullandığım (ve çok fazla acı çektiğim) bir kütüphane içindi. İlk kullanım sırasında kodda bir hata tespit ettim, bu yüzden bir yama oluşturdum, projeye katıldım ve incelenmek üzere gönderdim.

Yaklaşık 8 ay sonra boş zamanım olduğunda projeye daha fazla katkıda bulunarak geri vermeme (ve geliştirme becerilerim üzerinde çalışmam) karar verdim. Bu yüzden havuzu klonladım ve kod tabanını tanımaya başladım. Kod tabanına küçük yama düzeltmeleri gönderdikten ve özellik isteklerini izledikten birkaç hafta sonra, projeye oldukça önemli bir modül eklemek için bir özellik isteği aldım.

Birçok bireysel yama düzeltmesi oluşturmak, önemli bir gelişme için oldukça sıkıcı olduğundan, depoyu git hub'daki bir şubeye klonladım ve kodu delmeye başladım. Birkaç hafta ve birkaç bin satır kod sonra proje lideri ve ben, düzeltmelerimi kütüphaneye geri kalanı ile tutarlı bir şekilde çalışacak şekilde entegre ederek ve test ederek çalıştık.

Bu çok şey öğrendiğim çok değerli bir süreçti:

  • Gittiğimde Git'i nasıl kullanacağımı bilmiyordum, sonunda uzaktan izleme dalları oluşturabilir ve onları terlemeden ana dalda birleştirebilir veya yeniden birleştirebilirdim.
  • VS 2008'de başladım ve kod yazmak için Linux ve Monodevelop'a geçtim (çünkü VS unicode gecikmeli ve satır sonları git'te böyle bir acıdır). * Nix'te yapamayacağınız pek bir şeyin olmadığı * dow'larda yapabilirsiniz.
  • Daha önce hiç bir birim testi yapmamıştım, Nunit kullanmak için çok kolay ve birim testleri yazmak oldukça basit şeyler.
  • Dilimimi yutmayı, dinlemeyi ve sabır göstermeyi öğrenmem gerekiyordu. Açık kaynak kodlu bir projedeki pozisyonunuz üzerinde sağlam bir temel oluşturmanın bir anlamı yoktur, çünkü katılan herkes bilgilidir (muhtemelen kendinizden çok daha fazla) ve fikirlerinizi teslim edilmeyen maddeye göre kabul edebilir/reddedebilir. Aynı zamanda son derece alçakgönüllü ve ödüllendirici.
  • Kodumun büyük bir tabanındaki bir başka yetenekli geliştiricinin gözlerine sahip olmak, tarzımda daha önce hiç düşünmediğim kusurları gösterdi (ayrıca kodundaki kusurları da işaret ettim). Benim için sabitleri tanımlamanın, ayrıntılı yorumlarla bir sürü sihirli sayı kullanmaktan daha kolay/daha iyi olduğunu öğrendim.

Söz konusu proje, tüm ağ protokolleri düzeylerinde ağ paketleri oluşturma ve kod çözme üzerine kurulmuştur. Alt düzey ağa kişisel bir ilgim var, bu nedenle etki alanında paylaşılan ilgi ve bilgi sahibi başka bir geliştirici ile görüşmeler yapmak harikaydı.

Sadece ayaklarınızı ıslatmak istiyorsanız: zaten kullandığınız bir projeyi bulun; veri havuzunu klonlayın; ve bazı hataları düzeltip düzeltemeyeceğinizi ve/veya bazı birim testleri ekleyip ekleyemeyeceğinizi görmeye başlayın. Başkalarının kod tabanına taze gözlerle bakmak korkutucu görünüyor, ancak öğrenmek son derece değerli bir yetenek. Bazı yamalar gönderin. İlk önce kodunuzun yakından incelenmesini bekleyebilirsiniz. Endişelenmeyin, proje yöneticilerinin güvenini kazanmak sürecin normal bir parçasıdır.

Proje yöneticileri ile bir liyakat temeli oluşturduktan sonra, yeni özellikler önerme veya özellik taleplerini yerine getirmeye atanma gibi daha fazla sorumluluk aramaya başlayın.

Ana açık kaynak veri havuzu ağlarından birinde (github, sourceforge, google kodu) zaten mevcut bir proje bulamazsanız, henüz kullanmak istemediğiniz bir uygulamayı düşünün ve henüz kendi başınıza başlayın.

Alçakgönüllülüğe hazır olun ve daha fazla revizyon lehine çalışmanın reddedilmesini bekleyin. Herkesin açık kaynaklı bir projeye kod ekleyebileceği efsanesi tamamen yanlıştır. Sizinle Push erişimi arasında her zaman bir kapı bekçisi vardır. Kodunuz ne kadar iyi olursa, proje yöneticilerine güvendiğinizde uzun vadede o kadar az incelenecektir. Eğer projen buysa, o kapıcı olacaksın.

Güncelleme:

Sadece düşündüm ve cevabımın çoğunun hangi projeye atıfta bulunduğundan bahsetmekten rahatsız olmadığımı fark ettim. Bilmek isteyenler için SharpPcap . Baş geliştirici Chris Morgan çok profesyonel ve yerinde. Projeyi yöneten bir iş cehennemi yapıyor ve bana bir OSS projesini olgunlaştırmak için gerekenleri öğretti.

Kişisel zaman kısıtlamaları nedeniyle bir yıldan uzun bir süredir kod katkıda bulunamadım, ancak yine de Stack Overflow'u takip ederek ve bazen SharpPcap ile ilgili soruları cevaplayarak geri vermeye çalışıyorum.

111
Evan Plaice

Mükemmel eşinizi bulmak için yapmamı önerdiğim şeyler:

  1. Zaten kullandığınız, bildiğiniz ve önemsediğiniz açık kaynaklı bir projeniz varsa, denemek için ilk adayınız olmalıdır. Aksi takdirde genel olarak ne yapmak istediğinizi düşünün ve bu alanda bir proje arayın.

  2. Potansiyel bir proje bulduğunuzda, acele etmeyin. Kendiniz kullanmaya çalışın. Açıklama ve incelemelerden göründüğü kadar iyi bir eylem mi? Değilse tam bir gösteri durdurucu değildir; belki de bir şeyler atlamanız ve gerçekten bir fark yaratmanız için bir fırsattır. Sonuçta hiç kimse mükemmel bir ürün için başka bir geliştiriciye ihtiyaç duymaz. Ancak, ilgilendiğiniz bir alanda yeni teknoloji ile ilk elden deneyim kazanırken, bu projenin bir parçası olmak isteyip istemediğiniz önemli bir fikir verecektir.

  3. Ayrıca, projeye çok fazla zaman ayırmaya başlamadan ve ins ve çıkışlarını öğrenmeden önce, birkaç hafta boyunca proje posta listelerinde, forumlarda, hatta hata izleme sisteminde takılmayı düşünün. Projeye düzenli olarak katkıda bulunmaya başlayacaksanız, orada çok zaman geçireceksiniz.

Anlayın: orada takılmaktan hoşlanıyor musunuz yoksa sizin için bir sürükleme mi? Bu projenin iyi ve enerjik bir toplumu var mı veya yavaşça ölüyor mu? Oradaki çekirdek insanlar yeni gelenleri teşvik ediyor ve onlara rehberlik ediyor mu yoksa kendi başınıza olacak mısınız?

Potansiyel olarak farklı alanlarda birkaç proje için bu adımları uygulayın ve yanlış bir ekibe katıldığınızda hayal kırıklığı yaşama olasılığınız düşüktür. Böyle bir deneyim sizi gelecekte tekrar yapmaktan vazgeçirebilir.

Birkaç düşünce daha:

Eğer gerçekten ilgilendiğiniz proje, etrafında çok sayıda geliştirici ve etkinlik bulunan yüksek profilli bir proje ise, muhtemelen toplulukta haklar veya ilginç bir rol almak için orada yeterli bir itibar oluşturmakta zorlanacaksınız. Bu durumda, daha az görünürlüğe sahip ilgili bir projeye katılmayı düşünün. Örneğin, jQuery'ye katkıda bulunmaya başlamak yerine, size en uygun jQuery eklentisini bulmaya çalışın. Daha sonra "yükselmeyi" düşünebilirsiniz.

Bir projeden hoşlanıyorsanız, ancak boyutu, karmaşıklığı veya kod kalitesi gereksinimleriyle korkutuyorsanız, test, dokümantasyon bakımı veya hata raporu doğrulaması gibi destekleyici rollerden başlamayı düşünün. Proje posta listesinde şu anda en çok hangi yardıma ihtiyaç duyduklarını sorarsanız, orada size rehberlik etmekten mutluluk duyacaklardır. :)

Bu şekilde projeyi öğrenecek ve itibarınızı oraya daha fazla katkıda bulunacak şekilde hazırlayacaksınız, hazır olana kadar birden çok kez reddedilecek olan standart altı yamaları göndermeye başladığınızdan daha fazla.

Son ve en önemlisi: tek bir yerde yanarsanız, devam edin; pes etmeyin.

Umarım yardımcı olur.

28
kdubinets

Samimi ilgi ve aktif olarak kullanım olan açık kaynaklı bir proje bulmanızı şiddetle tavsiye ederim.

Nedeni basit: Bir angarya ve bir hobi arasındaki farkı yaratıyor.

Bilgisayarınıza bir göz atın. Açık Kaynak olan hangi yazılımı koydunuz? Bir tahmin Chrome veya Firefox veya belki de Open Office veya Instant Messenger istemcisi olacaktır.) Mükemmel mi yoksa yapabilirseniz değiştirmek istediğiniz küçük bir şey mi var?

Varsa, şimdi bu konuda bir şeyler yapma zamanı.

9
user1249

İnsanların yıllardır yaptığı gibi bir proje bulmayı (veya başlatmayı) öneririm, bir şeyler yapmak için Açık Kaynak yazılımını kullanmaya başlayın. Bu belki de aşırı basitleştirilmiş olsa bile, sizin için önemsiz görünebilir. Yine de, bir şey kullanmanın, bir hata bulmanın, kaynağı yakalamanın ve düzeltmenin memnuniyetini tanımlamak gerçekten zordur. Ya da belki de değiştirerek çalışmasını istediğiniz şekilde çalışmasını sağlayın.

Ayrıca, sadece 'dahil olmak' uğruna hacklemeyin. Linux çekirdeğindeki yamaların% 95'i hiçbir zaman günün ışığını görmeyecek, emin için kimsenin benden başka kimsenin istemeyeceğini biliyorum ve muhtemelen başka herhangi bir yetkili çekirdek korsanı onları gördü. Ama yine de birkaç yıl önce 1 Nisan gag olarak başlayan piglatin_printk() uygulamamdan keyif alıyorum :)

Evet olsa da, kodunuzu ve düşünce sürecinizi diğer birçok yetkili insanın önüne almak paha biçilemez, bu yüzden nasıl iletişim kuracağınızı ve işbirliği yapacağınızı öğrenmek de pahalıdır. Yalnız bir proje size ne yapmamanız gerektiğini göstermenin harika bir yoludur. İpucu, sadece sürüm kontrol yazılımı, posta listeleri ve bir hata izleyici kullanmaktan daha fazlası var.

Başlamak için, ilk önce using ilginizi çekebilecek yazılım bulmak için Ohloh bulmanızı öneririz. İndirin, inşa edin, onunla oynayın. O zaman git başka bir şey al. Sonunda bir şeyi iyileştirmek veya bir şeyi bulduğunuzdan tamamen farklı bir şekilde uygulama isteğiniz olduğunu fark edeceksiniz.

Yardımcı olan bir diğer şey de açık bir şirket için çalışmaktır. Şirketim Xen'i yoğun bir şekilde kullanıyor, bu yüzden ilginç hatalar bulmak ve bunları düzeltmek konusunda bir sorunum yok, çünkü bunu yine de yapmamız gerekecekti. Ayrıca sonuç olarak RFC'ler ve taslak şartnameler gibi şeylere katılan çalışanlara aldırmıyorlar.

8
Tim Post

OpenHatch bunun için özel olarak oluşturuldu.

Alıntılamak:

OpenHatch, potansiyel ücretsiz yazılım katılımcılarını topluluklar, araçlar ve eğitim ile eşleştirmeye adanmış kar amacı gütmeyen bir kuruluştur.

Projelere tür, teknoloji, gerekli beceri seviyesi vb. Göre göz atabilir ve seviyenize uygun olanı bulabilirsiniz.

7
phw

Açık kaynak geliştirmeye başlamak isteyen insanlara defalarca fark ettiğim bir şey, büyük projelerin saflığı ve büyüklüğünde bunalmış olmalarıdır. Aynı sorunla birkaç yıl önce karşılaştım ve tecrübelerime göre, daha büyük projelere hemen bakmamak en iyisidir.

Bir zamanlar sevebileceğim projelere bakarak geçirdikten sonra, hala ulaşamayacağımı fark ettim ve daha sonra kendi başıma çok küçük projeler üzerinde çalışmaya başladım. Gerçekten alakalı olup olmadığına ya da diğer insanların kullanmaya başlayıp başlamayacağına bakılmaksızın, Github'daki kodu serbest bırakmayı bir noktaya getiriyorum. Sonunda, insanlar yaptıklarınızla ilgilenmeye başlayabilir. Aksi halde, yavaşça daha büyük ve daha popüler projelere geçme konusunda güven ve teknik yetenek kazanacaksınız.

4
Checksum

Başladığımda, seçenekleri araştırdım ve yeni başlayanlar olarak dişlerinizi batırabileceğiniz bir şey bulmak zor oldu.

Bazı projelere katkıda bulunmak zordur, çünkü çok ilerlemiş değil, topluluk hoş karşılanmamaktadır. Yani, bir duvara çarptığınızda cesaretiniz kırılmasın.

Arama sırasında, yeni başlayanların çok stresli süreçler olmadan desteklemeye başlayabilecekleri 10 açık kaynaklı projenin bir listesini oluşturmaya karar verdim. Kullanılacak bağlantı:

Yeni başlayanlar için on proje desteklenecek ve ondan öğrenilecek

Umarım faydalı bulursunuz ve havalı bulursanız her zaman daha fazlasını ekleyebilirsiniz!

3
Eenvincible

Okumanızı tavsiye ederim: http://open-advice.org/ .

Toplulukları oluşturan ve sürdürenlere ve hangisine katılmak istediklerine veya nasıl yapılacağından emin olmayanlara yardım etmeyi amaçlamaktadır.

Bunu başaramazsanız, sizinle yankı uyandıracak bir görevi olan bir proje bulun veya çatallayın ve sizin için yararlı olan bir projeye katkıda bulunun.

İyi şanslar.

3
user549213

Yeni geliştiricileri her hafta yeni bir OSS projesi başlatarak açık kaynaklara katılmaya teşvik eden Kod 52 adı verilen yeni bir web sitesi var.

Fikir, daha önce hiç açık kaynağa katılmamış insanlar için çok daha az göz korkutucu görünecek ve umarım diğer OSS projelerine katılmaya daha meyilli hissedecektir.

3
Marcus Swope

İlgilendiğiniz bir konuda kendi başınıza bir proje başlatmanızı öneririm.

Genel olarak bir proje üzerinde çalışarak çok şey öğrenilebilir. Daha iyi kodlamayı öğrenmek için bir başkasının nasıl kodladığını görmek gerekli değildir. Ve bazen diğer insanlar genellikle sizden daha deneyimli olmadığından ne yapmamanız gerektiğini görürsünüz.

Genellikle başkalarının kodlarını görmeye yardımcı olur, ancak yalnızca kullandığınız kütüphaneler ve bileşenler aracılığıyla kendi projenizde başkalarının koduyla karşılaşırsınız.

Deneyim size neyin iyi ve kötü uygulama olduğunu öğretecektir.

2
Brian R. Bondy

Google kodunda proje sahibiyim ve katkıda bulunanlar arıyorum. (Yine de değil reklam için bu cevabı yanlış kullanacağım. Bu yüzden fikrim sizin için ilginç olabilir.

Öncelikle siz 'ilginizi çektiğini öğrenmeniz gerekir. Daha sonra sizin ilgi alanlarıyla ilgili bazı alanlarda uzmanlık geliştirin. Ardından sizin uzmanlığın talep edildiği ve ihtiyaç duyulduğu bir proje bulun.

Proje ne kadar küçük olursa, katkıda bulunanlar o kadar azdır, katkıda bulunanların aranma şansı artar ve yazarlarla/proje sahipleriyle doğrudan iletişime geçebilirsiniz. Onlara a) uzmanlığınızın ne olduğunu söyleyin b) projede uygulanabileceğini gördüğünüz c) elde edebileceğinizi düşündüğünüz şey.

Unutmayın: sadece bir veya iki anaakım programlama dilini bilmek değil uzmanlıktır.

2
Ingo