📝 BLOG

Web Geliştirme Best Practices: Kod Kalitesi ve Bakım

Web geliştirme best practices, kod kalitesini, bakım kolaylığını ve ekip verimliliğini artırır. Bu rehberde kod organizasyonu, naming convention, testing ve documentation best practices'lerini anlatıyoruz.

Son güncelleme:

Hazırlayan: Gsetsoft

Web Geliştirme Best Practices: Kod Kalitesi ve Bakım

Proje Yapısı ve Organizasyon

Feature-based structure: Her özellik için ayrı klasör. components/, pages/, hooks/, utils/, services/ gibi ortak klasörler.

Colocation: İlgili dosyaları bir arada tutun. Button component'i ile Button test'i ve Button style'ı aynı klasörde.

Naming convention: Dosya isimleri kebab-case (user-profile.tsx), component isimleri PascalCase (UserProfile), fonksiyon isimleri camelCase (getUserProfile).

Import ordering: External (react, next) → Internal (components, utils) → Relative (./, ../). ESLint import/order ile otomatik sıralama.

Barrel exports: index.ts ile klasörden export. import { Button, Input } from '@/components' gibi temiz import'lar.

Kod Kalitesi

DRY (Don't Repeat Yourself): Tekrarlanan kodu fonksiyon/komponent olarak çıkarın. Ama premature abstraction'dan kaçının.

SOLID prensipleri: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.

KISS (Keep It Simple, Stupid): Basit çözümü tercih edin. Over-engineering'den kaçının.

YAGNI (You Aren't Gonna Need It): Şu an ihtiyaç olmayan özelliği eklemeyin. İhtiyaç olduğunda ekleyin.

Code review: Her değişiklik review'dan geçmeli. Constructive feedback. Pair programming ile bilgi paylaşımı.

Testing Best Practices

Test piramidi: Unit test (çok), integration test (orta), E2E test (az). Her seviye farklı amaç ve maliyet.

Unit test: Fonksiyon ve komponent testleri. Jest, Vitest. Hızlı ve izole. Mock'lar ile bağımlılıkları izole edin.

Integration test: Birden fazla modülün birlikte çalışmasını test edin. API endpoint'leri, database queries.

E2E test: Kullanıcı akışlarını test edin. Playwright, Cypress. Yavaş ama yüksek güven. Kritik akışlar (login, checkout) için.

Test coverage: %80+ coverage hedefleyin. Ama coverage %100 olmalı diye zorlamayın. Kalite > miktar.

Documentation Best Practices

README: Proje açıklaması, kurulum, kullanım, katkıda bulunma. İlk izlenim ve onboarding.

Code comments: 'Ne' değil 'Neden' açıklayın. Karmaşık logic için comment. Self-documenting kod tercih edin.

API documentation: OpenAPI/Swagger. Her endpoint, parametre, response ve hata kodu dokümante edilmiş.

Architecture Decision Records (ADR): Mimari kararları dokümante edin. Neden bu teknoloji seçildi?

Changelog: Her release'in değişikliklerini dokümante edin. Semantic versioning (major.minor.patch).

Performance Best Practices

Image optimization: WebP/AVIF format, lazy loading, responsive images, CDN.

Code splitting: Route-based ve component-based splitting. Lazy loading ile bundle size azaltın.

Caching: HTTP cache headers, Service Worker, CDN caching. Static assets için uzun TTL.

Minification: CSS, JS, HTML minification. Gzip/Brotli compression.

Monitoring: Lighthouse, Web Vitals, RUM. Performans regresyonlarını tespit edin.

Security Best Practices

Input validation: Tüm kullanıcı girdilerini validate edin. Server-side validation zorunlu.

XSS prevention: innerHTML yerine textContent. React/Vue otomatik escaping. CSP header.

CSRF protection: CSRF token'ları. SameSite cookie attribute.

Authentication: JWT veya session-based. Secure, HttpOnly, SameSite cookie'ler.

Dependency security: npm audit, Snyk, Dependabot. Güncel ve güvenli bağımlılıklar.

Adım adım kullanım rehberleri

Gizlilik tercihiniz

Temel çerezler güvenli kullanım ve oturum yönetimi içindir. Temel ziyaret sayımı ayrıca yapılır; izin verirseniz ek kullanım analizlerini etkinleştiririz. Çerez Politikası