Katkıda Bulunma

AlgoPit'e katkıda bulunmak için rehber. Bu projeye katkıda bulunarak, algoritma öğrenimine ve açık kaynak topluluğuna destek olabilirsiniz.

Katkı Süreci

Fork the repository

Start by forking the repository to your own GitHub account.

Katkı Rehberleri

Kod Standartları

Kodunuzun proje standartlarına uygun olduğundan emin olun.

Stil Rehberi

  • ESLint ve Prettier yapılandırmalarına uygun kod yazın
  • Değişkenler ve fonksiyonlar için anlamlı isimler kullanın
  • Her fonksiyon ve karmaşık kod bloğu için açıklayıcı yorumlar ekleyin
  • Her dosya başına tekli bir sorumluluk ilkesini uygulayın

TypeScript

  • Tüm fonksiyonlar ve bileşenler için doğru tipleri kullanın
  • Tür genellemesini uygun yerlerde kullanın (örn. jenerik fonksiyonlar)
  • any kullanımından kaçının
  • Açık dönüş tiplerini belirtin

React Bileşenleri

  • Bileşenleri mümkün olduğunca küçük ve yeniden kullanılabilir tutun
  • Karmaşık durum yönetimi için React Hooks kullanın
  • Prop drilling yerine context kullanmayı tercih edin
  • Tüm prop'lar için TypeScript arayüzleri oluşturun

Performans

  • Gereksiz yeniden render'ları önlemek için memo, useMemo ve useCallback kullanın
  • Büyük listeleri görselleştirirken sanal listeler tercih edin
  • Yoğun işlemleri web worker'lara taşıyın

Örnek Kod Stili

1// Kötü
2function sort(a) {
3 // Sıralama işlemi
4 return a.sort();
5}
6
7// İyi
8/**
9 * Bir diziyi sıralar
10 * @param {Array} array Sıralanacak dizi
11 * @returns {Array} Sıralanmış dizi
12 */
13function sortArray(array: T[]): T[] {
14 // Giriş doğrulama
15 if (!Array.isArray(array)) {
16 throw new Error('Input must be an array');
17 }
18
19 // Sıralama işlemi (orijinal diziyi değiştirmemek için kopyasını oluşturuyoruz)
20 return [...array].sort((a, b) => a - b);
21}

Yeni Algoritma Eklemek

Yeni bir algoritma implementasyonu ve görselleştirmesi ekleyin

Hata Raporlamak

Bulduğunuz hataları bildirin ve çözüm önerilerinde bulunun

Dokümantasyon İyileştirmeleri

Belgeleri geliştirin, yeni örnekler ekleyin veya açıklamaları iyileştirin

Topluluk Tartışmaları

Projede aktif rol alın ve tartışmalara katılın

Yardıma mı ihtiyacınız var?

Hala Sorularınız Mı Var?

Katkıda bulunma süreciyle ilgili sorularınız varsa, GitHub üzerinde bir issue açabilir veya doğrudan ekibe e-posta gönderebilirsiniz.