Skip to content

Backend Genel Bakış (Backend Overview)

Bu kategori sunucu taraflı uygulama geliştirme için ihtiyaç duyulan framework, mimari ve araçları kapsar. Framework seçiminden mimari kararlara, API tasarımından deployment süreçlerine kadar pratik bilgiler için hazırlanmıştır.


Bu Kategoride Neler Var? (What's in This Category?)

Backend rehberleri beş ana alanı kapsar:

  1. Framework Rehberleri -- Laravel, ASP.NET Core, Node.js/Express, Django ve FastAPI ile uygulama geliştirme
  2. Mimari Yaklaşımlar (Architecture) -- Katmanlı mimari, design patterns, SOLID prensipleri, clean code
  3. API Tasarımı (API Design) -- RESTful API, GraphQL, WebSocket, authentication ve authorization
  4. Veritabanı Entegrasyonu (Database Integration) -- ORM kullanımı, migration, seeding, query optimizasyonu
  5. Deployment (Dağıtım) -- Docker, CI/CD, sunucu yapılandırma, production best practices

Framework Karşılaştırma Tablosu (Framework Comparison)

ÖzellikLaravelNode.js / ExpressASP.NET CoreDjangoFastAPI
DilPHPJavaScript / TypeScriptC#PythonPython
ParadigmaMVC (Full-stack)Minimalist / MiddlewareMVC + DI ContainerMTV (Full-stack)Async API-first
Öğrenme EğrisiOrtaDüşük-OrtaYüksekOrtaDüşük
ORMEloquentPrisma / Sequelize / MongooseEntity Framework CoreDjango ORMSQLAlchemy / Tortoise
AuthSanctum, Passport, BreezePassport.js, JWTIdentity, JWT Bearerdjango.contrib.authOAuth2 / JWT (manual)
Real-timeBroadcasting (Pusher/Soketi)Socket.io (native async)SignalRChannels (limited)WebSocket (native async)
PerformansOrtaYüksek (async I/O)Çok YüksekOrtaÇok Yüksek (async)
HostingShared / VPS / ForgeVPS / Serverless / VercelAzure / VPS / DockerVPS / Heroku / DockerVPS / Docker / Serverless
İdeal ProjeWeb app, CMS, SaaS MVPReal-time API, microserviceEnterprise, kurumsalData-driven web appML API, yüksek performans API

Ne Zaman Hangisi? (Decision Tree)

Projenizin ihtiyacına göre framework seçimi:

Hızlı MVP / Prototip

  • Laravel -- Hazır authentication, admin panel (Filament/Nova), Eloquent ile hızlı CRUD. Küçük-orta ölçekli web uygulamaları için en hızlı geliştirme süreci.

Real-time API / Microservice

  • Node.js / Express -- Asenkron I/O sayesinde WebSocket ve real-time işlemler için ideal. npm ekosistemi ile hızlı paket entegrasyonu. Microservice mimarisine doğal uyum.

Enterprise / Kurumsal Uygulama

  • ASP.NET Core -- Güçlü tip sistemi, built-in dependency injection, yüksek performans. Büyük ekipler, karmaşık iş mantığı ve uzun ömürlü projeler için en sağlam seçim.

Veri Bilimi / ML Entegrasyonu

  • Python (Django veya FastAPI) -- NumPy, Pandas, TensorFlow/PyTorch ekosistemine doğrudan erişim. Django veri yoğun web uygulamaları için, FastAPI yüksek performanslı ML model servisleri için tercih edilir.

Seçim Özeti (Selection Summary)

Projen ne gerektiriyor?
|
|-- Hızlı web app / MVP?          --> Laravel
|-- Real-time / WebSocket?        --> Node.js + Socket.io
|-- Kurumsal / büyük ekip?        --> ASP.NET Core
|-- ML modeli serve etmek?        --> FastAPI
|-- Data-driven web + admin?      --> Django
|-- Hafif REST API?               --> Express veya FastAPI

Mimari Yaklaşım Özeti (Architecture Summary)

Tüm framework'lerde ortak kullanılan katmanlı mimari yaklaşım:

Request --> Controller --> Service --> Repository --> Model/Entity --> Database
                |              |             |
           Validation    Business Logic   Data Access
           Route Match   Authorization    Query Build
           Response      Caching          Transaction
KatmanSorumlulukÖrnek
ControllerHTTP isteği alır, validasyon yapar, response dönerUserController.store()
Serviceİş mantığı, yetkilendirme, cache, 3rd-party entegrasyonUserService.register()
RepositoryVeritabanı erişimi, sorgu oluşturma, transactionUserRepository.findByEmail()
Model / EntityVeri yapısı, ilişki tanımları, accessor/mutatorUser { name, email, role }

Framework'lere Göre Katman Karşılığı (Layer Mapping per Framework)

KatmanLaravelASP.NET CoreNode.js (Express)DjangoFastAPI
Controllerapp/Http/ControllersControllers/routes/ veya controllers/views.pyRouter fonksiyonları
Serviceapp/ServicesServices/services/services.py (manual)services/
Repositoryapp/RepositoriesRepositories/repositories/Manager (ORM)repositories/
Modelapp/ModelsModels/ + Data/models/ (Prisma schema)models.pymodels/ (SQLAlchemy)

Detaylı mimari rehber, design patterns ve SOLID prensipleri için: Yazılım Mimarisi Rehberi


Rehber Haritası (Guide Map)

Bu kategorideki tüm rehberler ve içerikleri:

RehberKapsamSeviyeAçıklama
Yazılım MimarisiFramework bağımsızOrta-İleriKatmanlı mimari, SOLID, design patterns, clean code, API tasarımı, güvenlik
Laravel RehberiPHP / LaravelBaşlangıç-OrtaMVC, Eloquent ORM, Blade, API, Sanctum auth, testing, deployment
ASP.NET Core RehberiC# / .NETOrta-İleriMVC, Entity Framework, Identity auth, SignalR, middleware, Azure deploy
Node.js RehberiJavaScript / TypeScriptBaşlangıç-OrtaExpress, npm, REST API, JWT auth, Socket.io, Prisma, testing
Python RehberiPythonBaşlangıç-İleriDjango, FastAPI, Flask, NumPy, Pandas, Selenium, PyQt5, Pygame

Başlangıç seviyesindeyseniz:

  1. Yazılım Mimarisi -- Temel kavramları öğrenin (MVC, REST, SOLID)
  2. Bir framework seçin -- Yukarıdaki karar ağacına göre
  3. Seçtiğiniz framework rehberi -- Baştan sona uygulamalı çalışmalar
  4. Veritabanı rehberi -- Seçtiğiniz framework'ün ORM'i ile birlikte

Deneyimli geliştriciyseniz:

  1. İlgilendiğiniz framework rehberine doğrudan geçin
  2. Mimari rehberi referans olarak kullanın
  3. Farklı framework'leri karşılaştırmak için bu sayfadaki tabloları inceleyin

Terim Sözlüğü (Glossary)

Tüm backend framework'lerinde karşılaşacağınız temel kavramlar:

Mimari & Yapısal (Architecture)

TerimAçıklamaÖrnek
MVCModel-View-Controller — iş mantığı, görünüm ve veri katmanını ayıran mimariLaravel, ASP.NET Core, Django
REST APIRepresentational State Transfer — HTTP üzerinden CRUD işlemleri yapan API standartıGET /api/users, POST /api/users
MiddlewareRequest/response arasına giren filtreleme katmanıAuth kontrolü, CORS, logging, rate limiting
RoutingURL yollarını controller/fonksiyonlara eşleştirme/users/:idUserController@show
ControllerHTTP isteklerini karşılayan, response döndüren katmanUserController, ProductController
Serviceİş kurallarını içeren katman — controller ile model arasındaOrderService.calculateTotal()
RepositoryVeritabanı sorgularını soyutlayan katmanUserRepository.findByEmail()
DTOData Transfer Object — katmanlar arası veri taşıma nesnesiUserDTO { name, email } (model'in tamamını döndürmek yerine)
DI (Dependency Injection)Bağımlılıkları dışarıdan enjekte etme — test edilebilirlik ve gevşek bağlantıConstructor injection, interface binding
ORMObject-Relational Mapping — veritabanı tablolarını sınıflara eşleştirmeEloquent, EF Core, Prisma, Django ORM

Veritabanı & Veri (Data)

TerimAçıklamaÖrnek
MigrationVeritabanı şema değişikliklerini kod olarak yönetme — versiyon kontrolüphp artisan migrate, dotnet ef migrations add
SeedingTest/demo verileri ile veritabanını doldurmaphp artisan db:seed, factory pattern
Soft DeleteVeriyi silmek yerine deleted_at alanı ile işaretlemeGeri dönüşüm kutusu mantığı
Eager Loadingİlişkili verileri tek sorguda çekme — N+1 problemini önlerUser::with('posts')->get()
N+1 ProblemHer kayıt için ayrı sorgu çalışma hatası — eager loading ile çözülür100 user = 1 + 100 sorgu (kötü) vs 2 sorgu (iyi)
TransactionBirden fazla DB işlemini atomik yapma — ya hepsi ya hiçbiriTransfer: bakiye düş + bakiye ekle
IndexSorgu hızını artırmak için sütunlara oluşturulan arama yapısıCREATE INDEX idx_email ON users(email)

Güvenlik & Auth (Security)

TerimAçıklamaÖrnek
Authentication (AuthN)Kullanıcı kimlik doğrulama — "sen kimsin?"Login, register, JWT token
Authorization (AuthZ)Yetkilendirme — "bunu yapabilir misin?"Role-based (admin/user), policy/gate
JWTJSON Web Token — stateless token tabanlı kimlik doğrulamaheader.payload.signature
OAuth 2.0Üçüncü parti login protokolüGoogle/GitHub/Facebook ile giriş
CSRFCross-Site Request Forgery — form sahteciliği saldırısıToken ile korunur
XSSCross-Site Scripting — zararlı script enjeksiyonuInput sanitization + escaping
CORSCross-Origin Resource Sharing — farklı domain'den API erişim izniAccess-Control-Allow-Origin header
Rate LimitingBelirli sürede maksimum istek sayısını sınırlama60 istek/dakika
HashingTek yönlü şifreleme — şifreler hash'lenir, çözülemezbcrypt, argon2

Performans & Ölçeklendirme (Performance)

TerimAçıklamaÖrnek
CachingSık erişilen verileri önbelleğe almaRedis, Memcached, HTTP cache
Queue / JobUzun süren işlemleri arka planda çalıştırmaEmail gönderme, resim işleme, PDF oluşturma
PaginationBüyük veri setlerini sayfalara bölme?page=2&per_page=20
Load BalancingTrafiği birden fazla sunucuya dağıtmaNginx, HAProxy
Horizontal ScalingDaha fazla sunucu ekleyerek ölçeklendirme1 sunucu → 5 sunucu

Test (Testing)

TerimAçıklamaÖrnek
Unit TestTek bir fonksiyon/method'u izole test etmetest_calculate_total()
Integration TestBirden fazla bileşeni birlikte test etmeAPI endpoint + DB testi
E2E TestUygulamayı kullanıcı gibi uçtan uca test etmeCypress, Playwright
MockGerçek bağımlılık yerine sahte nesne kullanmaDB yerine in-memory, API yerine fake
FactoryTest verisi oluşturmak için şablonUser::factory()->count(10)->create()
TDDTest-Driven Development — önce test yaz, sonra kodu yazRed → Green → Refactor

Backend

Diğer Kategoriler (Other Categories)

Developer Guides & Technical References