Skip to content

Latest commit

 

History

History
73 lines (50 loc) · 3.67 KB

File metadata and controls

73 lines (50 loc) · 3.67 KB

🛠️ Katkı Rehberi | Contribution Guide

🇹🇷 Türkçe

Bu depo, Python'da temiz kod prensiplerini Türkçe anlatmak için vardır. Katkı herkese açıktır: yazım, örnek, yeni bölüm, itiraz.

Ne kabul edilir?

  • Dilbilgisi, Türkçe karakter, terim tutarlılığı.
  • Yanlış veya yanıltıcı teknik iddia (lütfen kaynak veya gerekçe).
  • Zayıf örneğin yerine daha öğretici kötü/iyi çifti.
  • Rehberde boşluğu olan bir konu — önce mevcut bölüme sığıp sığmadığına bakın.
  • Çeviri çatalı (aşağıda).

Ne kabul edilmez?

  • Çerçeve öğreticisi (Django'yu sıfırdan anlatmak). Rehber kirletmeden kullanmayı konuşur.
  • Saldırı tarifi, exploit, "nasıl aşılır" adımları. Güvenlik bölümü hijyen içindir.
  • Biçim tartışması (" vs ', 88 vs 100). Proje bir stili örnekler; gerekçe yoksa dokunmayın.
  • Gerekçesiz "ben olsa şöyle yazardım" ile çalışan örneği değiştirmek.
  • Telifli kitaptan uzun alıntı. İlkeler evrenseldir; cümleler sizin olsun.

Bölüm sözleşmesi

Yeni veya büyüttüğünüz her konu şu iskeleti izlemelidir:

  1. Neden — kural yoksa okur ezberler, unutur.
  2. Kural — kısa, uygulanabilir maddeler.
  3. ❌ / ✅ — aynı problem, iki çözüm. İyi örnek "tek doğru yol" iddiası taşımasın; daha temiz yol olsun.
  4. Sapma — kuralın durduğu yer (AHA, YAGNI, ölçüm, özel durum).
  5. Varsa başka bölüme çapraz bağ.

Kod örnekleri:

  • Python 3.10+: list[str], X | None, match. 3.11+ / 3.12+ özelliği varsa yanına sürüm yazın (StrEnum, UTC, TaskGroup, datetime.utcnow deprecated).
  • Yerleşikleri gölgelemeyin: id, list, type, str.
  • Para için float değil Decimal.
  • Kötü örnek kasıtlı bozuk olsun; "neredeyse iyi" belirsizliği öğretmez.
  • Tanımlanmamış db, User, logger bağlamsal iskelettir; her örneği çalışır bir paket yapmayın. Çalışması zorunlu bir iddia varsa (ör. pytest kesiti) import'ları yazın.

Dil

  • Ulatma: "kullanın", "yazmayın" — mevcut metinle aynı.
  • Terim ilk geçişte Türkçe + İngilizce: koruma cümlesi (guard clause). Sonra birini seçip sapmayın.
  • Başlıklarda Türkçe karakter: İsimlendirme, İstisna, Değişken — Istisna / Degisken değil.
  • Kod tanımlayıcıları İngilizce (user_id, apply_discount). Açıklama Türkçe.

Süreç

  1. Küçük, tek amaçlı PR. "Typo + yeni bölüm + araç değişimi" karışmasın.
  2. Açıklamada neden. Diff zaten ne'yi gösterir.
  3. Yeni bölüm eklediyseniz içindekiler, çapraz bağlar ve CHANGELOG.md güncellenir. Sürüm numarasına dokunulacaksa semantik düşünün: düzeltme yama, bölüm minör, felsefe/kırıcı yeniden yazım majör.
  4. README'deki sürüm rozeti ve tarih, CHANGELOG ile aynı kalsın.

🌍 Diğer diller

Bu repoyu forklayıp başka dile çevirebilirsiniz. Her çevirinin altında Diğer Diller başlığıyla kardeş çevirilere bağ verin.


🇬🇧 English

This repository teaches clean-code habits in Python, in Turkish. Contributions are welcome.

  • Fix grammar, examples, or technical mistakes (please give a reason).
  • Add a section only if it does not already belong inside an existing one.
  • Follow the same skeleton: why → rules → bad/good pair → where the rule stops.
  • Examples target Python 3.10+. Do not shadow builtins. Do not paste exploit steps into the security chapter.
  • Keep PRs small. Update CHANGELOG.md and the version badge when the change is user-visible.

🌍 Other languages

Fork and translate. Add an “Other Languages” section at the bottom of each translation with links to the siblings.