Mandatory Code Review
Her PR en az bir gözden geçirme almalı.
Her PR en az bir gözden geçirme almalı.
Keep It Simple, Stupid — sadelik en değerlisidir.
Nesne yönelimli tasarımın 5 temel prensibi.
Kullanıcı/sürece sadece minimum izin ver.
Cloud-native SaaS yazma manifestosu (Heroku).
You Aren't Gonna Need It — ihtiyaç olmadan yapma.
Default convention'lar config'den önce gelir (Rails).
Sistem mimarisi takım iletişim yapısını yansıtır.
Çoklu güvenlik katmanı; tek nokta yetmez.
Yüksek seviyeli modüller alt seviyelilere değil, abstractlara bağlı olmalı.
Don't Repeat Yourself; tek gerçek kaynağı koru.
Bir sınıfın değişme nedeni tek olmalı.
Çok unit, biraz integration, az E2E.
Hype'lı tech yerine olgun, sıkıcı seç.
Hiyerarşi yerine bileşim tercih et.
Aynı input → aynı output, side effect yok.
Her modül tek bir sorumluluğa odaklansın.
Yeni sürümü %5 → %25 → %100 kademeli aç.
Deploy ≠ release; flag ile kontrol.
Aynı operasyon tekrar edilirse aynı sonuç.
Veri değişmez; her güncelleme yeni nesne.
Default config en güvenli olsun.
Hiçbir kullanıcı/network trust edilmez; her istek doğrula.
Bağımlı servis yavaşsa otomatik 'devre kes'.
Bağımlılıklar içe doğru; core bağımsız.
Kodu bulduğundan biraz daha temiz bırak.
Hata varsa hemen çök; gizleme.
Klasörler özellik bazında; teknik tipe göre değil.
Önce başarısız test, sonra kod, sonra refactor.
Kısa-yaşamlı branch; gün bazında main'e merge.
İki paralel ortam; trafik anında swap.
Command + Query Responsibility Segregation; yazma/okuma model ayrı.
Domain-Driven Design; karmaşık iş alanları için.
Sistemin bir kısmı fail edince fallback davranış.
Genişlemeye açık, değişikliğe kapalı.
Kod ve API beklendiği gibi davransın.
Çekirdek mantık; portlar ile dış dünya.
İstemciler kullanmadıkları arayüzlere bağlı olmamalı.
Alt tipler üst tipin yerine geçebilmeli.
Yanlış state hiç oluşamasın - tip sistemi ile.
Özellik başına bağımsız dikey dilim.
Domain mantığı hiçbir framework'e bağlı olmasın.
Bir method ya yan etki yapmalı ya değer döndürmeli.
Çalışan karmaşık sistem mutlaka çalışan basit sistemin evrimidir.
Distributed transaction; her adım rollback ile.
Test = canlı dokümantasyon; given-when-then.
State'i event log'tan türet; geçmiş tam audit.
Klasör adları teknolojiyi değil iş alanını bağırsın.
Veriyi al-işle yerine nesneye yapmasını söyle.
Davranış olmayan veri sınıflarını anti-pattern olarak gör.
Sadece komşularınla konuş; zincirleme erişim sınırla.
Her sistemde ortadan kaldırılamaz minimum karmaşıklık vardır.