Açık Kaynak Kodlu Projeyi Başarılı Kılmanın Yolları

Açık kaynaklı bir proje başlatmaya karar verdiniz ve proje üzerinde birkaç ay çalıştınız. Daha da önemlisi, açık kaynak kodlu projenizi başarılı kılmanın yollar


Açık kaynaklı bir proje başlatmaya karar verdiniz ve proje üzerinde birkaç ay çalıştınız. Proje bittiğinde README.md dosyasına bazı notlar yazdınız ve 1.0 sürümünü yayınladınız.

Aradan birkaç hafta geçmesine rağmen projeye ilgi hala düşük. Ücretsiz olarak çok çalıştınız, en iyi çabayı gösterdiniz, ancak projenizle çok az kişi ilgilendi.

Bu nasıl olabilir? Ve daha da önemlisi, açık kaynak kodlu projenizi başarılı kılmanın yolları nedir?

Projeniz kimsenin umurunda değil

Açık kaynak kod hakkındaki düşüncelerinizi değiştirin. İlginizi çeken bir projeye (kütüphane, araç, çerçeve vb.) çok fazla çaba harcarsanız, pek çok geliştiricinin de heyecanlanacağını düşünebilirsiniz.

Bu başlık kulağa sert gelebilir ancak dışarıdaki geliştiriciler yalnızca sorunlarını çözmekle ilgilenir. Yani birisi deponuzu ziyaret ettiğinde, sadece bir çözüm arıyor.

Gerçek bir sorunu çöz

Açık kaynak kodlu projeye başlamadan, hatta ilk kod satırını yazmadan önce çözülecek gerçek bir problem bulmak için çok zaman harcayın.

Özetlemek gerekirse, iyi bir açık kaynak kodlu proje, geliştiricilerin aktif olarak çözüm aradığı bir sorunu çözer.Açık Kaynak Kodlu Projeyi Başarılı Kılmanın YollarıSorun çözmek için iyi problemler bulmak için bazı stratejiler:

  • Yaşadığınız bir sorunu düşünün. Ona bir çözüm üretebilir misin?
  • Yaygın olarak kullanılan ancak vasat olan açık kaynaklı projeleri keşfedin.
  • GitHub gibi popüler repoların veya Stackoverflow gibi sitelerde arama yapın

Not

Başarılı bir açık kaynak projesi bir sorunu çözer

Kaliteye önem verin

Geliştiricilerin çoğu kapalı kaynak kodlu projelerde çalışır. Takım arkadaşlarınız dışında, büyük olasılıkla sadece birkaç geliştirici kodunuzu okuyacak. Ancak kodunuz herkes için açıldığında durum farklıdır.

Gerçek şu ki, birçok açık kaynak kodu en iyi kalitede değildir. Kimse anlaşılması zor, kararsız ve hatalarla dolu bir koda güvenmek istemez.

Bu bağlamda, güveni artırmanın ve açık kaynak projenizin kalitesini göstermenin iyi bir yolu onu test etmektir. Kod kapsamının en az %80'ine sahip olmanız gerekebilir.

Hatta daha da ileri gidebilir ve README.md'ye kod tabanının tamamen test edildiğini göstermek için bazı rozetler koyabilirsiniz.

Kaynağın okunabilirliği de önemli bir husustur. Daha sonraki aşamalarda daha fazla katılımcı çekmek istiyorsanız, kodun okunabilir ve iyi yapılandırılmış olması gerekir.

Ek olarak, açık kaynak kod aracı yalnızca işlevsel olmayan gereksinimlerin uygulanmasından yararlanacak bazı şeyler:

  • Yapılandırılabilir ve genişletilebilir bir API'ye sahip olun.
  • Çok çeşitli ortamları destekleyin (platformlar ve tarayıcılar arası vb.)
  • İsteğe bağlı işlevsellik olanağı sağlayın
  • Küçük boyuta sahip

Not

Başarılı bir açık kaynak kodlu proje, kaliteli koda ve yüksek kod kapsamına sahiptir

Mükemmel README.md ve belgeler

Tamam, diyelim ki tavsiyeme uydun, düzgün bir sorun buldun ve nispeten iyi bir çözüm uyguladın. Yeterli mi?

Ne yazık ki, işin sadece yarısı bitti…

README.md dosyası projenin giriş noktasıdır ve projenin ne işe yaradığını kısaca yada tam olarak açıklamakta zorlanırsanız, insanlar projenin misyonunu güçlükle anlayacak ve geri adım atacaktır.

README.md'de ayrıntılar yoksa, geliştiricilerin uygulama ayrıntılarına dalacaklarını ve aracın nasıl kullanılacağını kendi başlarına bulacağını düşünebilirsin

Genellikle kimse kodu çözmekten hoşlanmaz çünkü herkesin beklediği şey aracınızın hangi sorunu çözdüğünü ve nasıl kullanılacağını anlamaktır.

Zorlayıcı README.md ve anlaşılır belgeler yazmaya zamanın %50'sini ayırın.

Evet, doğru okudunuz. Zamanın yarısını projenin ne yaptığını ve nasıl kullanılacağını açıklayarak geçirin.

README.md

README.md dosyası, bir kullanıcının depoyu ziyaret ettiğinde ilk gördüğü dosyadır. Ne yaptığınızı anlatmak için sadece 20-30 saniye süreniz var. README.md dosyanız aşağıdaki maddeleri içermelidir.

1. Görev

Projenizin misyonunu açıklayan kısa bir cümle ile başlayın: "Ne işe yarıyor?" (Proje başlığından hemen sonra yerleştirin)

Örneğin, açık kaynak kod kitaplığım Voicejs durumunda, aşağıdaki tek cümlelik açıklamayı kullanıyorum:

"Voice, dizeleri işlemek için bir JavaScript kitaplığıdır"

Bu cümle size anında projemin ne yaptığını söyler: dizeleri yöneten bir JavaScript kitaplığı.

Görevin hemen ardından, varsa ayrıntılı dökümantasyona giden bağlantıyı ekleyin.

2. Açıklama

Görevin ardından kısa bir açıklama gelir: "Neden kullanmalıyım?" Misyonu biraz detaylandırmalıdır.

Örneğin, açıklama için kullandığım şey bu:

"Voicejs kitaplığı, dizeleri işleyen: büyük/küçük harf değiştirme, kırpma, slugify, truncate, escape ve çok daha fazlası. Modüler tasarım, tüm kitaplığın yüklenmesine veya tek tek işlevlerin uygulama oluşturur. Kitaplık tam olarak test edilmiştir, iyi belgelenmiştir ve uzun vadeli desteklenmektedir."

Açıklamaya çok fazla teknik ayrıntı girmeyin. Sadece basit ve kolay kısımları vurgulayın.

3. Özellikler

Bundan sonra, özellikleri listeleyerek teknik ayrıntılara biraz daha derine inebilirsiniz: "Hangi özellikleri sağlıyor?".

Daha kolay okunması için bir liste kullanın.

4. Kurulum ve Kullanım

Son olarak, "Nasıl kurarım ve yapılandırırım?" Burada varsa ayrıntılı dökümantasyona bir bağlantı ekleyebilirsiniz.

Örnek olarak https://github.com/oxcakmak/Benefit-PHP-Shopping-Cart-Class adresine göz atmaktan çekinmeyin.

5. Dökümantasyon

Proje büyükse, README.md ayrıntılı API belgelerine uymayabilir. Yalnızca API'yi açıklayan ek bir sayfa oluşturun.

Ayrıntılı dokümantasyon örnekleri: lodash, ant.design.

Dokümantasyon, tüm kullanım yönlerini kısa ve öz bir şekilde açıklar. Örneğin: işlevin parametrelerini sıralayın, hangi veri türlerinin kabul edildiğini belirtin, uygun örnekler verin.

Not

Başarılı bir açık kaynak kodlu proje, çekici bir README.md dosyasına ve mükemmel dökümantasyona sahiptir.

6. Demolar ve ekran görüntüleri içeren vitrin

İnsanlar görsel yaratıklardır. Bu nedenle, görsel bir araç (grafik, UI widget'ı, mobil/masaüstü uygulaması vb.) oluşturursanız, demoları ve ekran görüntülerini eklemenizi şiddetle tavsiye ederim.

İyi bir demo bin kelimeye bedeldir.

Örneğin, küçük bir açık kaynak kodlu Chrome uzantısı Cliboardy uygulaması ile gönderilen kodu stackoverflow.com, github.com ve npmjs.com'dan panoya kopyalar. İşte örnek bir ekran görüntüsü

clipboardy

7. Bir topluluk oluşturmayı deneyin

Açık kaynak kodlu projeyi yönetmenin iyi bir kısmı insanlarla ilgilenmektir: kullanıcılarla iletişim kurun, yeni özellikler uygulayın, hataları düzeltin.

İlk başta ikincil gibi görünse de, iletişim karmaşık bir iştir. Sorunlara yanıt vermek ve isteklerini incelemek beklenenden daha uzun sürebilir.

Bazen hüsrana uğramış kullanıcılarla başa çıkacaksınız, yine de herkesle kibarca iletişim kurma isteğini bulacaksınız.

Belirli isteklere "Hayır" demeye veya çekme isteklerini reddetmeye hazır olun. Her zaman kararlarınızı kibarca açıklamaya çalışın ve katılımcının harcadığı zaman için memnun edin.

Amaç, projenize yeni katkıda bulunanları çekmektir. Bazıları, popüler açık kaynak kodlu projelerine güçlü bir katkıda bulunanların topluluk olduğunu söylüyor.

Başarılı bir açık kaynak kodlu proje, verimli iletişim ve aktif topluluk üzerine kuruludur.

8. Dünyanın bilmesine izin ver

Her şey hazır. Projeniz sürüm 1.0'a ulaştı, harika bir README.md dosyasına ve dökümantasyona sahip. Şimdi açık kaynak projenizi tanıtmanın zamanı geldi: dünyanın bundan haberdar olmasını sağlayın.

Projenizi reddit.com (bir veya daha fazla karşılık gelen alt dizinde), news.ycombinator.com, echojs, Twitter ve benzeri sitelerde paylaşın. Biraz şansla, projeniz popülerlik açısından iyi bir başlangıç yapabilir. Ancak dikkat edilmesi gereken 2 şey var:

  • Öncelikle, tamamlanmamış bir projeyi yayınlama dürtüsüne karşı koyun. İyi bir ilk izlenim bırakmak için asla ikinci bir şansınız olmaz.
  • İkinci olarak, Reddit gibi sitelerde paylaşmak ego öldürücü veya işinizle ilgili sert yorumlara yol açabilir. Bu yorumların hiçbir şekilde motivasyonunuzu düşürmesine izin vermeyin.

Eleştirmek kolaydır, ancak yaratmak zordur. Unutmayın, yaratan sizsiniz, günün kahramanı sizsiniz.

Yapıcı eleştiriyi kabul edin ve saçma sapan yorumları görmezden gelin.

9. Sonuç

Başarılı bir açık kaynak kodlu proje, çok fazla zaman ve bağlılık gerektirir. Her şeyden önce proje sorunu iyi bir şekilde çözmeli. Geliştiriciler sorunları için iyi çözümler arıyorlar.

Kaliteli README.md ve ayrıntılı dökümantasyon oluşturmak için zamanın yaklaşık %50'sini ayırmanız gerekir. Projenizin kullanımı, kullanıcı için mümkün olduğunca zahmetsiz olmalıdır.

İyi bir kod kapsamına sahip olmak, kodunuzun kalitesine güven oluşturur. Birçok ortamı desteklemek ve birkaç bağımlılığa sahip olmak gibi işlevsel olmayan gereksinimlere de yatırım yapmayı unutmayın.

Projenin kullanıcıları ile iletişim kurmaya çalışın. Genellikle sorunları bildirir ve iyileştirmeler önerirler. Kibar ve yapıcı iletişimi tercih edin: amacınız katkıda bulunanları çekmek.