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.
- 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).
- Ç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.
Yeni veya büyüttüğünüz her konu şu iskeleti izlemelidir:
- Neden — kural yoksa okur ezberler, unutur.
- Kural — kısa, uygulanabilir maddeler.
- ❌ / ✅ — aynı problem, iki çözüm. İyi örnek "tek doğru yol" iddiası taşımasın; daha temiz yol olsun.
- Sapma — kuralın durduğu yer (AHA, YAGNI, ölçüm, özel durum).
- 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.utcnowdeprecated). - Yerleşikleri gölgelemeyin:
id,list,type,str. - Para için
floatdeğilDecimal. - Kötü örnek kasıtlı bozuk olsun; "neredeyse iyi" belirsizliği öğretmez.
- Tanımlanmamış
db,User,loggerbağlamsal iskelettir; her örneği çalışır bir paket yapmayın. Çalışması zorunlu bir iddia varsa (ör. pytest kesiti) import'ları yazın.
- 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/Degiskendeğil. - Kod tanımlayıcıları İngilizce (
user_id,apply_discount). Açıklama Türkçe.
- Küçük, tek amaçlı PR. "Typo + yeni bölüm + araç değişimi" karışmasın.
- Açıklamada neden. Diff zaten ne'yi gösterir.
- 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.
- README'deki sürüm rozeti ve tarih, CHANGELOG ile aynı kalsın.
Bu repoyu forklayıp başka dile çevirebilirsiniz. Her çevirinin altında Diğer Diller başlığıyla kardeş çevirilere bağ verin.
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.
Fork and translate. Add an “Other Languages” section at the bottom of each translation with links to the siblings.