mirror of
https://github.com/affaan-m/ECC.git
synced 2026-09-08 07:37:48 +02:00
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# Kodlama Stili
|
||||
|
|
|
|||
|
|
## Immutability (KRİTİK)
|
|||
|
|
|
|||
|
|
DAIMA yeni nesneler oluştur, mevcut olanları ASLA değiştirme:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
// Pseudocode
|
|||
|
|
YANLIŞ: modify(original, field, value) → original'i yerinde değiştirir
|
|||
|
|
DOĞRU: update(original, field, value) → değişiklikle birlikte yeni kopya döner
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Gerekçe: Immutable veri gizli yan etkileri önler, debug'ı kolaylaştırır ve güvenli eşzamanlılık sağlar.
|
|||
|
|
|
|||
|
|
## Dosya Organizasyonu
|
|||
|
|
|
|||
|
|
ÇOK KÜÇÜK DOSYA > AZ BÜYÜK DOSYA:
|
|||
|
|
- Yüksek kohezyon, düşük coupling
|
|||
|
|
- Tipik 200-400 satır, maksimum 800
|
|||
|
|
- Büyük modüllerden utility'leri çıkar
|
|||
|
|
- Type'a göre değil, feature/domain'e göre organize et
|
|||
|
|
|
|||
|
|
## Hata Yönetimi
|
|||
|
|
|
|||
|
|
Hataları DAIMA kapsamlı bir şekilde yönet:
|
|||
|
|
- Her seviyede hataları açıkça ele al
|
|||
|
|
- UI'ye yönelik kodda kullanıcı dostu hata mesajları ver
|
|||
|
|
- Server tarafında detaylı hata bağlamı logla
|
|||
|
|
- Hataları asla sessizce yutma
|
|||
|
|
|
|||
|
|
## Input Validasyonu
|
|||
|
|
|
|||
|
|
Sistem sınırlarında DAIMA validate et:
|
|||
|
|
- İşlemeden önce tüm kullanıcı girdilerini validate et
|
|||
|
|
- Mümkün olan yerlerde schema tabanlı validasyon kullan
|
|||
|
|
- Açık hata mesajlarıyla hızlıca başarısız ol
|
|||
|
|
- Harici verilere asla güvenme (API yanıtları, kullanıcı girdisi, dosya içeriği)
|
|||
|
|
|
|||
|
|
## Kod Kalitesi Kontrol Listesi
|
|||
|
|
|
|||
|
|
İşi tamamlandı olarak işaretlemeden önce:
|
|||
|
|
- [ ] Kod okunabilir ve iyi adlandırılmış
|
|||
|
|
- [ ] Fonksiyonlar küçük (<50 satır)
|
|||
|
|
- [ ] Dosyalar odaklı (<800 satır)
|
|||
|
|
- [ ] Derin iç içe geçme yok (>4 seviye)
|
|||
|
|
- [ ] Düzgün hata yönetimi
|
|||
|
|
- [ ] Hardcoded değer yok (sabit veya config kullan)
|
|||
|
|
- [ ] Mutasyon yok (immutable pattern'ler kullanıldı)
|