hasanakcakoca/develop icon
public
Published on 6/30/2025
Yazılım Geliştirme Kuralları

develop

Rules

Build & Development Commands

  • Proje kurulumunda her zaman npm install veya yarn install komutunu çalıştır - Build işleminden önce linting ve test'leri çalıştır: npm run lint && npm test && npm run build - Development server için npm run dev veya yarn dev kullan - Production build için npm run build komutu ile optimize edilmiş versiyon oluştur - Docker kullanıyorsan, multi-stage build kullanarak image boyutunu minimize et - Environment variables'ları .env dosyasında tanımla, .env.example şablonu oluştur - Package.json'da scripts bölümünü düzenli tut ve açıklayıcı isimler kullan - Dependency güvenlik açıklarını kontrol et: npm audit veya yarn audit - Lock file'ları (package-lock.json, yarn.lock) versiyon kontrolüne dahil et - Build artifact'lerini (.git, node_modules) production image'a dahil etme

Testing Guidelines

  • Her feature için unit test yaz, minimum %80 code coverage hedefle - Test dosyalarını __tests__ klasöründe veya .test.js/.spec.js uzantısı ile organize et - Test adlarını açıklayıcı yap: should return user data when valid ID provided - AAA pattern kullan: Arrange, Act, Assert - Mock'ları external service'ler ve database işlemleri için kullan - Integration test'leri kritik user flow'lar için yaz - E2E test'leri happy path senaryoları için dahil et - Test data'sını factory pattern ile oluştur, hard-coded değerler kullanma - Flaky test'leri hemen düzelt, CI/CD pipeline'ını stabil tut - Performance test'lerini kritik endpoint'ler için yaz - Test ortamında production data kullanma, synthetic data oluştur

Code Style & Guidelines

  • Consistent indentation kullan (2 veya 4 space), tab karışımı yapma - Meaningful variable ve function isimleri seç: getUserById() > getData() - Function'ları küçük ve tek sorumluluk prensibi ile yaz (max 20-30 satır) - Magic number'ları constant olarak tanımla: const MAX_RETRY_COUNT = 3 - Error handling her zaman yap, try-catch blokları kullan - Async/await kullan, callback hell'den kaçın - Lint rules'ları ESLint/Prettier ile enforce et - Dead code'u sil, comment out edilmiş kod bırakma - Console.log'ları production'a gönderme, proper logging kullan - Type safety için TypeScript veya JSDoc kullan - Destructuring ve modern ES6+ syntax'ını tercih et - DRY principle: Don't Repeat Yourself, reusable function'lar yaz

Documentation Guidelines

  • README.md dosyasını güncel tut: setup, usage, contribution guide dahil et - API endpoint'leri için OpenAPI/Swagger dokümantasyonu oluştur - Code comment'larını "neden" açıkla, "ne" değil - Complex algorithm'lar için step-by-step açıklama yap - Change log (CHANGELOG.md) tut, semantic versioning kullan - Architecture decision record (ADR) önemli kararlar için yaz - Inline comment'ları TODO, FIXME, HACK için kullan - Function ve class'lar için JSDoc veya docstring kullan - Database schema'sını dokümante et, migration'ları açıkla - Environment setup için step-by-step guide hazırla - Troubleshooting section ekle, common issue'lara çözüm sun - Code example'larını güncel tut, deprecated usage'ları kaldır