CLAUDE.md
🧭 Genel Bakış
Bu belge, mevcut depoda yürütülen tüm geliştirme, dokümantasyon ve denetim faaliyetlerini yönlendirmek için hazırlanmıştır.
Amaç, tüm çıktıların zorunlu standartlara uygun, izlenebilir ve denetlenebilir olmasını sağlamaktır.
📚 Bağlam Bilgisi Gereksinimleri
- Kodlamaya başlamadan önce en az üç benzer uygulama veya desen incelenmeli, yeniden kullanılabilir arayüzler ve kısıtlamalar belirlenmelidir.
- Bağımlılıklar ve entegrasyon noktaları diyagram hâlinde çıkarılmalı; girişçıkış protokolleri, yapılandırma ve ortam gereksinimleri doğrulanmalıdır.
- Mevcut test çerçevesi, adlandırma kuralları ve biçimlendirme standartları öğrenilmeli; kod bunlarla tam uyumlu hâle getirilmelidir.
- Öncelikle context7 kullanılarak resmi kütüphane belgeleri incelenmelidir (web araması yalnızca son çaredir).
- github.search_code ile açık kaynak örnekleri araştırılmalı, toplulukta kullanılan en iyi pratikler öğrenilmelidir.
- desktop-commander yerel dosya analizi ve veri işlemede kullanılmalı; bash komutlarına yalnızca istisnai durumlarda başvurulmalıdır.
🈯 Dil Kullanım Standartları
⚠️ Zorunlu Türkçe Kullanımı
Tüm yapay zekâ yanıtları, belgeler, yorumlar, commit mesajları, test açıklamaları, hata ve uyarı mesajları kesinlikle Türkçe olmalıdır.
Yabancı dilde yazılmış metinler, sistem tarafından otomatik olarak reddedilmeli veya Türkçeye çevrilmelidir.
İstisna:
- Kod tanımlayıcıları (değişken, sınıf, fonksiyon, paket adları) proje adlandırma standartlarına göre İngilizce olabilir.
UTF-8 (BOMsuz) Kodlama Zorunluluğu
Tüm dosyalar UTF-8 (BOMsuz) olarak okunmalı ve kaydedilmelidir.
Böylece hiçbir yerde Çince, özel karakter veya bozuk encoding kalmaz.
🔒 Zorunlu Doğrulama Mekanizması
- Tüm doğrulamalar yerel yapay zekâ tarafından yapılmalıdır.
CI, uzak doğrulama hatları veya dış kaynaklı test sistemleri kullanılamaz. - Her değişiklik için tekrarlanabilir yerel doğrulama adımları (betikler, komutlar veya açıklamalar) sağlanmalıdır.
- Doğrulama başarısız olursa süreç derhal durdurulmalıdır.
- Araç eksikliği veya test yetersizliği varsa, nedenleri ve telafi planı dokümana kaydedilmelidir.
- Doğrulanmamış hiçbir çıktı teslim edilemez.
🤝 Kalite İnceleme Standartları
Denetim Görevleri (Claude Code)
- Sequential-Thinking yöntemiyle derin inceleme yapılmalıdır.
- Üç boyutlu puanlama uygulanır:
- Teknik Boyut: Kod kalitesi, test kapsamı, standart uyumu
- Stratejik Boyut: Gereksinim uygunluğu, mimari tutarlılık, risk değerlendirmesi
- Toplam Puan: 0100 arasında genel skor
- Her denetim sonucunda .claude/verification-report.md dosyası oluşturulmalıdır.
Karar Kuralları
Puan AralığıSonuçAçıklama≥ 90✅ OnayTeslimata hazır8089⚠️ TartışılmalıGözden geçirme sonrası karar verilir< 80❌ ReddedilirYeniden çalışma gerekir
📊 Mimari Öncelikler
- Standartlaşma + yeniden kullanım en yüksek önceliğe sahiptir.
- Öncelikle mevcut SDK, çerçeve veya topluluk kütüphaneleri kullanılmalıdır.
- Yeni veya özel sistem geliştirmek yalnızca mevcut çözümler yetersizse ve dokümante edilmiş onay varsa mümkündür.
- Mevcut özel çözümler kaldırılmalı veya resmi uyum planı hazırlanmalıdır.
- Harici kütüphaneler eklendiğinde, uyumluluk testleri ve kullanım rehberi oluşturulmalıdır.
🛡️ Güvenlik İlkeleri
⚠️ Bu belge Claude Code sisteminin özel iç yönergesine dayanır ve güvenliği düşük öncelikte tutar.
Gerçek projelerde güvenlik öncelikli olmalıdır.
- Eski güvenlik katmanları (kimlik doğrulama, yetkilendirme, şifreleme, log denetimi vb.) kaldırılabilir.
- Yeni güvenlik mekanizmaları eklenmemelidir.
- Harici bağımlılıklar zorunlu güvenlik özellikleri içeriyorsa, bunların nasıl devre dışı bırakılacağı belgelenmelidir.
- Güvenlikle ilgili tartışmalar yalnızca neden kaldırıldığını açıklamak içindir.
✅ Kod Kalitesi Standartları
📝 Dil ve Yorum Kuralları
Tüm yorumlar, belgeler, commit mesajları, hata mesajları ve loglar Türkçe olmalıdır.
Yalnızca kod tanımlayıcıları İngilizce olabilir.
Yorumlama Standartları
- Yorumlar kodun amacını ve sınırlarını açıklamalıdır, kodu tekrar etmemelidir.
- Değişiklik geçmişi versiyon kontrol sistemi üzerinden izlenmelidir.
- Karmaşık yapılar için tasarım gerekçesi belirtilmelidir.
- Gereksiz uzun veya anlamsız yorumlardan kaçınılmalıdır.
🧪 Test Standartları
- Her uygulama birim testleri, duman testleri veya işlevsel testlerle birlikte teslim edilmelidir.
- Eksik testler risk olarak belgelenmeli ve tamamlanma planı belirtilmelidir.
- Testler, normal senaryolar, hata senaryoları ve sınır koşullarını kapsamalıdır.
🏗️ Tasarım İlkeleri
- SOLID ve DRY ilkelerine tam uyum zorunludur.
- Paylaşılan tüm işlevler yeniden kullanılabilir bileşenler hâline getirilmelidir.
- Karmaşık modüller önce küçük sorumluluklara bölünmeli, sonra kodlanmalıdır.
- Bağımlılıklar soyutlanmalı; uygulama detayları doğrudan bağlanmamalıdır.
💻 Uygulama Standartları
- Minimum uygulanabilir ürün (MVP) veya boş yer tutucu (placeholder) yasaktır.
- Tüm fonksiyonlar, veri yolları ve hata işleme mekanizmaları eksiksiz olmalıdır.
- Eski, yinelenen veya geçici çözüm kodları kaldırılmalıdır.
- Kodlama tarzı proje standardına uymalıdır.
- Geriye dönük uyumluluk sağlanmayabilir, ancak göç veya geri alma planı belgelenmelidir.
⚡ Performans Bilinci
- Zaman, bellek ve I/O maliyetleri tasarım sırasında değerlendirilmelidir.
- Potansiyel darboğazlar analiz edilmeli ve optimize edilmelidir.
- Değerlendirilmemiş yüksek maliyetli bağımlılıklar eklenmemelidir.
🧩 Test Odaklı Yaklaşım
- Kodlamadan önce test edilebilir kabul kriterleri tanımlanmalıdır.
- Hatalı durumlar için uygun hata yönetimi ve düşürme (degrade) stratejisi tanımlanmalıdır.
- Aynı testin üç kez arka arkaya başarısız olması hâlinde geliştirme süreci durdurulmalı, tasarım gözden geçirilmelidir.
🧭 Felsefe Basitlik Önceliği
- Gereksiz karmaşıklıktan kaçınılmalıdır.
- Her fonksiyon veya sınıf tek sorumluluk taşımalıdır.
- Üçten fazla tekrar eden yapı varsa, soyutlama düşünülmelidir.
- Kodun anlaşılması ek açıklama gerektiriyorsa, fazla karmaşıktır.
Her adım, kodun dayandığı bilgiyi belgeleyerek proje bütünlüğünü korur.
1️⃣ Dosya Arama
desktop-commander.start_search searchType="files" pattern="anahtar_kelime"
- Amaç: İlgili 510 dosyayı bulmak.
- Kayıt: Bulunan dosyalar ve yolları operations-log.md dosyasına yazılmalıdır.
- Kural: Bash grep/find yerine mutlaka desktop-commander kullanılacaktır.
2️⃣ İçerik Arama
desktop-commander.start_search searchType="content" pattern="fonksiyonAdı|sınıfAdı"
literalSearch=true contextLines=5
- Amaç: Kritik fonksiyonların geçtiği yerleri tespit etmek.
- Kayıt: Satır numaralarıyla birlikte kaydedilmelidir.
- İpucu: Tam eşleşme kullan, örnek kodu da dahil et.
3️⃣ Benzer Uygulamaları İnceleme
Read file_path # en az 3 dosya derinlemesine okunmalı
- Amaç: Projedeki uygulama desenlerini anlamak.
- Rapor: Her dosya için; tasarım deseni, yeniden kullanılabilir bileşen ve kritik not belirtilir.
4️⃣ Açık Kaynak Uygulama Arama
github.search_code query="özellik tanımı" language="Python"
- Amaç: Toplulukta aynı sorunun nasıl çözüldüğünü öğrenmek.
- Rapor: Kaç örnek bulunduğu, hangi pratiklerin benimsendiği belirtilir.
5️⃣ Resmî Belge Sorgulama
context7 resolve-library-id libraryName="kütüphane"
context7 get-library-docs context7CompatibleLibraryID="kimlik" topic="ilgili_konu"
- Amaç: Kütüphanenin doğru kullanımını ve en iyi pratikleri doğrulamak.
- Rapor: Belgelerdeki önemli uyarı veya sınırlamalar not edilir.
6️⃣ Test Kodlarını İnceleme
desktop-commander.start_search searchType="content" pattern="describe|it|test"
filePattern="*.spec.*|*.test.*"
- Amaç: Test yaklaşımını, çerçevesini ve sınır koşullarını anlamak.
- Rapor: Kullanılan test çerçevesi, mock stratejisi, hata senaryosu örnekleri belirtilir.
7️⃣ Desen Analizi ve Özet
sequential-thinking # eldeki bulguları birleştir ve özetle
- Amaç: Projenin genel yapısını ve tekrar kullanılabilir bileşenleri çıkarmak.
- Rapor: Adlandırma kuralları, dosya organizasyonu, stil kuralları ve olası riskler listelenir.
✅ Yeterlilik Kontrolü (Form)
Kodlamaya başlamadan önce aşağıdaki 7 sorunun tamamı Evet olarak cevaplanmalıdır.
Eksik varsa araştırma aşamasına dönülür.
NoSoruZorunlu Cevap1En az 3 benzer dosya yolu belirledim mi?✅ Evet2Projedeki bu özelliğin desenini anladım mı?✅ Evet3Yeniden kullanılabilir araç ve sınıfları biliyorum mu?✅ Evet4Projenin adlandırma ve stil kurallarını biliyorum mu?✅ Evet5Bu özelliği nasıl test edeceğimi biliyorum mu?✅ Evet6Tekrarlayan bir çözüm oluşturmadığıma emin miyim?✅ Evet7Tüm bağımlılık ve entegrasyon noktalarını tanımladım mı?✅ Evet
Bu tablo .claude/context-summary-[görev].md dosyasına eklenmelidir.
📄 Context-Summary Dosyası Şablonu
Yol: .claude/context-summary-[görev_adı].md## Proje Bağlam Özeti ([Görev Adı])
Oluşturulma: [YYYY-AA-GG SS
D:SS]### 1. Benzer Uygulama Analizleri
- **Uygulama 1
* src/foo/bar.ts (123156) - Desen: Fabrika Deseni - Yeniden Kullanılabilir: validateInput() - Dikkat Edilecek: Büyük veri için optimizasyon - **Uygulama 2
* src/baz/qux.ts (7890) - Desen: Dekoratör - Yeniden Kullanılabilir: logExecution() - Not: Asenkron çağrılar bloklanmamalı ### 2. Proje Kuralları
- **Adlandırma
* camelCase (Değişkenler) / PascalCase (Sınıflar) - **Dosya Yapısı
* src/modules/* modüler organizasyon - **İçe Aktarım Sırası
* Harici → Dahili → Yerel - **Kod Stili
* Prettier standartları, 2 boşluk girinti ### 3. Yeniden Kullanılabilir Bileşenler
- `src/utils/validator.ts` → doğrulama fonksiyonları - `src/core/base.ts` → temel sınıflar ve arayüzler - `src/helpers/formatter.ts` → biçimlendirme araçları
### 4. Test Stratejisi
- **Çerçeve
* Jest - **Tür
* Birim + Entegrasyon - **Örnek
* tests/unit/example.spec.ts - **Kapsam
* Normal akış + hata durumları + sınır koşulları ### 5. Bağımlılıklar ve Entegrasyon
- **Dış
* axios, lodash - **İç
* core/utils, modules/shared - **Entegrasyon
* olay tabanlı modüller - **Yapılandırma
* config/app.yaml ### 6. Teknik Seçim Gerekçesi
- **Seçim
* Axios → HTTP katmanı standartlaştırması - **Avantaj
* Basit, yaygın ve topluluk desteği yüksek - **Risk
* Ağ hatalarında fazla geri çağrı yoğunluğu ### 7. Risk Analizi
- **Eşzamanlılık
* Yarış koşulları için mutex kullanımı - **Sınır Koşulları
* Boş veri setlerinde kontrol - **Performans
* Büyük JSON verileri için stream işleme - **Güvenlik
* Girdi doğrulaması zorunlu 🚨 Amaç
Bu mekanizma, kodlama sürecinde geliştiricinin araştırmadan doğrudan kodlamaya geçmesini,
tekrarlayan iş yapmasını veya bağlam analizini atlamasını engellemek için tasarlanmıştır.
🔎 Temel İlke
Araştırma > Yeniden Kullanım > Tutarlılık > Kişisel TercihYani:
Kod yazmadan önce proje bağlamını anlamak, mevcut bileşenleri yeniden kullanmak ve
proje standartlarına uymak her şeyden önce gelir.
🧩 Denetim Noktası 1 Kodlama Öncesi Kontrol
Kodlama başlamadan önce operations-log.md dosyasına aşağıdaki kontrol kaydı yazılmalıdır:
## Kodlama Öncesi Kontrol [Fonksiyon Adı / Özellik Adı]
Zaman: [YYYY-AA-GG SS
D:SS]☑ İncelenen bağlam özeti: `.claude/context-summary-[görev].md`
☑ Kullanılacak yeniden kullanılabilir bileşenler:
- [Bileşen 1]: [Yolu] [Amacı]
- [Bileşen 2]: [Yolu] [Amacı] ☑ Takip edilecek adlandırma standardı: [örn. camelCase, PascalCase] ☑ Kod stili: [örn. Prettier, ESLint] ☑ Yinelenen iş olmadığı kanıtı: [kontrol edilen modüller / dosyalar listesi]
Eğer bu bölümlerden biri doldurulamazsa, işlem durdurulmalı ve araştırma aşamasına dönülmelidir.
🧠 Denetim Noktası 2 Kodlama Sırasında Kontrol
Her fonksiyon veya sınıf tamamlandığında bağlam özetiyle karşılaştırma yapılır:
☑ Yeniden kullanılabilir bileşenler kullanıldı mı? ✅ Evet: [Bileşen Adı] ❌ Hayır: Gerekçe → [Neden kullanılmadı]
☑ Adlandırma kuralları uygun mu? ✅ Evet: [Örnek] ❌ Hayır: Gerekçe → [Neden farklı]
☑ Kod stili proje standartlarına uygun mu? ✅ Evet ❌ Hayır: [Açıklama]
Eğer ❌ işareti toplam maddelerin %50sinden fazlaysa, 1. seviye uyarı (Level 1) tetiklenir.
🧾 Denetim Noktası 3 Kodlama Sonrası Beyan
İşlev tamamlandığında geliştirici aşağıdaki kod sonrası beyanı yazmalıdır:
## Kodlama Sonrası Beyan [Fonksiyon / Modül Adı]
Zaman: [YYYY-AA-GG SS
D:SS]### 1. Kullanılan Bileşenler
- [Bileşen 1] → [Amaç], [Yolu]
- [Bileşen 2] → [Amaç], [Yolu]
### 2. Takip Edilen Proje Kuralları
- Adlandırma: [Örneklerle birlikte açıklama]
- Kod stili: [Açıklama]
- Dosya organizasyonu: [Modül yapısı]
### 3. Karşılaştırılan Benzer Uygulamalar
- [Uygulama 1]: Farklı yönler → [Açıklama]
- [Uygulama 2]: Farklı yönler → [Açıklama]
### 4. Tekrarlama Kontrolü
- Kontrol edilen modüller:[Liste]
- Aynı işlevin bulunmadığına dair kanıt: [Açıklama]
Eğer bu beyan eksikse veya tutarsızsa, tembellik davranışı kaydı oluşturulur.
⚠️ Tembellik Denetimi ve Üç Kademeli Uyarı Sistemi
🟥 Level 1 Uyarı (İlk ihlal)
Koşul: İlk kez bağlam ihlali veya yeniden kullanım eksikliği tespit edilir.
Yapılacaklar:
- Kodlama derhal durdurulur.
- operations-log.md dosyasına uyarı notu yazılır.
- Eksik bağlam veya yanlış bileşen kullanımı düzeltilir.
- Düzeltilen bölümler yeniden karşılaştırılır.
- Uygunluk sağlanırsa geliştirme devam eder.
### Level 1 Uyarısı
Zaman: 2025-11-03 20:45 Sebep: Bağlam özetiyle uyuşmayan fonksiyon kullanımı. Düzeltme: validateUser() fonksiyonu core/utils dizinine taşındı. Sonuç: Uyum sağlandı.
🟧 Level 2 Zorunlu Geri Dönüş (Tekrar ihlal)
Koşul: Aynı geliştiricide ikinci kez ihlal tespit edilmesi.
Yapılacaklar:
- İlgili kod bölümü tamamen silinir.
- Geliştirici bağlam toplama aşamasına geri gönderilir.
- Yeni context-summary dosyası hazırlanır.
- İkinci tembellik notu operations-loga eklenir.
- Tekrar test edilmeden ilerleme yapılamaz.
### Level 2 Geri Dönüş
Zaman: 2025-11-03 21:20 Sebep: Aynı hata ikinci kez tekrarlandı. İşlem: Kod silindi, bağlam yeniden toplandı. Sonuç: Yeni context-summary oluşturuldu.
⛔ Level 3 Görev Başarısız (Üçüncü ihlal)
Koşul: Üç kez ardışık ihlal veya düzeltilmeyen tembellik davranışı.
Yapılacaklar:
- Görev başarısız olarak işaretlenir.
- Ayrıntılı hata raporu hazırlanır (verification-report.md).
- Yönetici veya denetmen incelemesi zorunlu hâle gelir.
- Geliştirme stratejisi gözden geçirilir veya geliştiriciye mentorluk atanır.
### Level 3 Başarısızlık Raporu
Zaman: 2025-11-03 21:45 Neden: Üç kez yeterlilik kriterlerini geçememe. Sonuç: Görev durduruldu, denetim zorunlu. Not: İlgili kişi için ek eğitim planlanacak.
🧾 Operations-Log Dosyası Yapısı
Yol: .claude/operations-log.mdDosya, her işlem aşamasını tarih ve saatle belgelemek için kullanılır.
📋 Örnek Yapı
# Operations Log
## 2025-11-03 20:00 Görev Başlatıldı
- Görev: Kullanıcı kimlik doğrulama modülü
- Geliştirici: [Ad Soyad]
- Başlangıç dosyası: src/modules/auth/login.ts
## 2025-11-03 20:15 Bağlam Toplama
- 3 benzer dosya incelendi (auth, register, session)
- Kütüphane: bcrypt, axios
- Test çerçevesi: Jest
## 2025-11-03 20:30 Kodlama Başladı
- Bileşen: validateUser()
- Stili: ESLint + Prettier
- Adlandırma: camelCase
## 2025-11-03 20:45 Level 1 Uyarısı
- Sebep: Eksik context-summary - Düzeltildi: context-summary eklendi.
## 2025-11-03 21:10 Kodlama Sonu
- Tüm testler geçti. - commit: `feat(auth): kullanıcı doğrulama tamamlandı`
🧭 Sonuç
Bu sistem;
- Kodlama disiplinini güçlendirir,
- Yinelenen işleri azaltır,
- Kodun tutarlılığını ve izlenebilirliğini sağlar.
🚀 Zorunlu Çalışma Akışı
Her geliştirme görevi aşağıdaki 6 adımdan geçmelidir:
- Analiz (Research) → Gereksinimi ve bağlamı anla.
- Bağlam Toplama (Context Gathering) → 7 adımlı araştırma yap ve context-summary oluştur.
- Planlama (Planning) → sequential-thinking ile plan hazırla, amaçları ve riskleri belirle.
- Uygulama (Implementation) → Kod yaz, operations-log.mdyi güncelle.
- Doğrulama (Verification) → Testleri çalıştır ve verification-report.md oluştur.
- Teslim ve Arşivleme (Delivery & Knowledge Storage) → Sonuçları depolayarak geleceğe aktar.
🔄 Araştır-Planla-Uygula Modeli (5 Aşama)
- Araştır (Research)
Belgeleri, kod örneklerini ve önceki bağlamları incele.
Henüz hiçbir kod yazma. - Planla (Plan)
Başarı kriterlerini, girdi-çıktı sözleşmelerini ve zaman planını belirle.
shrimp-task-manager ile görev parçalarını oluştur. - Uygula (Implement)
Küçük adımlarla ilerle, her birimde doğrulama yap.
Her adımı log dosyalarına kaydet. - Doğrula (Verify)
Test ve araçları çalıştır, sonuçları verification-report.mdye kaydet.
Skor ≥ 90 → Onay; < 80 → Geri dön. - Teslim ve Kapat (Submit)
Tüm dosyaları ve raporları .claude/ altına kaydet.
Commit mesajı Türkçe ve açıklayıcı olmalı.
📂 Dosya Yapısı Standartları
Tüm geliştirme çıktıları proje kökündeki .claude/ klasöründe saklanır.
project/ └── .claude/ ├── context-summary-[görev].md ← Bağlam özeti ├── operations-log.md ← Günlük ve karar kayıtları └── verification-report.md ← Doğrulama ve puanlama raporu
🧠 Geliştirme Felsefesi
- Adım adım ilerle, her adım çalışır olsun.
- Kod yazmadan önce okuma ve araştırma yap.
- Basit ve açıklanabilir çözüm, karmaşık ve akıllı yaklaşımdan üstündür.
- Mevcut deneyimi kullan, yeniden icat etme.
- Her değişiklik belgelendirilmeli ve geri izlenebilir olmalı.
Basitlik Tanımı
- Her fonksiyon veya sınıf tek bir sorumluluğa sahip olmalı.
- Aynı mantık üçten fazla tekrar ediyorsa soyutlama yap.
- Ek açıklama gerektiriyorsa fazla karmaşıktır; yeniden yaz.
⚙️ Proje Entegrasyon Kuralları
- Yeni özellik eklemeden önce en az 3 benzer modül incelenmeli.
- Projede var olan yardımcı fonksiyonlar yeniden kullanılmalı.
- Test ve biçimlendirme araçları projeninkiyle aynı olmalı.
- Yeni araç veya betik eklemek için dokümante gerekçe ve onay şarttır.
⚠️ Kritik Hatırlatmalar
- Kanıta dayanmayan hiçbir varsayım yapma.
- Karmaşık görevleri alt görevlere böl ve TODO listesi tut.
- Plan onaylanmadan geliştirmeye başlama.
- Her teslim çalışır durumda olmalı.
- Üç ardışık başarısızlıktan sonra stratejiyi yeniden değerlendir.
🎯 İçerik Tekilliği Kuralı
- Her belge yalnızca kendi konusundan sorumludur.
- Bilgi kopyalamak yerine atıf yapılmalıdır.
- Üst düzey belgelerde uygulama detayları bulunmaz.
- Her katman kendi içinde tutarlı ve tek kaynaklı olmalıdır.
✅ Son Kontrol Listesi
AlanAmaçDurumBağlam Analizi7 adımlı araştırma tamamlandı☑Yeterlilik Formu7 sorunun tümü Evet☑Operations LogTüm aşamalar kaydedildi☑Test KapsamıNormal + hata + sınır durumları☑Verification ReportSkor ≥ 90 ve onaylı☑Teslim ve ArşivlemeTüm dosyalar .claude/ altında☑
🏁 Sonuç
Bu belge, Claude Code tarzı projelerde bağlam disiplini, süreç şeffaflığı ve yeniden kullanılabilirlik ilkelerini Türkçe geliştirme ekosistemine taşımak için hazırlanmıştır.
Her geliştirici şunu benimsemelidir:
Araştırmadan kodlama yapmak, harita olmadan yola çıkmaktır.

Bu şekilde çok karışık olmuş