Node.js

Ölçeklenir Node.js API geliştirme

NODE.JS EĞİTİMİ

Node.js Eğitimi uygulamalı kurumsal eğitim programı tanıtım kapağı

Node.js servisi tek thread'li event loop üzerinde çalışır; CPU-bound bir işlem bu loop'u tıkadığında tüm istekler aynı anda bekler, üretim ortamı çöker. Asenkron disiplin Node'un gücüdür ama aynı zamanda en sık karşılaşılan hata kaynağıdır. Eğitim bu çift yüzü production-grade pratiklerle dengeler.

Event loop ve microtask kuyruğu, Stream API ve backpressure, error handling ve uncaught rejection, REST/GraphQL API tasarımı, Express ve Fastify framework karşılaştırması, middleware mimarisi, JWT ve session, monitoring/logging ve graceful shutdown ele alınır. Resmi başvuru için Node.js API Documentation birincil kaynaktır.

Katılımcı Profili

Node.js ile backend ve API geliştiren profillere yöneliktir:

  • Backend Geliştiriciler: Express, Fastify, NestJS ile REST API kurar
  • Full-stack Geliştiriciler: MERN, MEAN ve T3 stack ile uçtan uca geliştirme yapar
  • API ve Microservice Geliştiricileri: REST, GraphQL ve gRPC servisleri tasarlar
  • DevOps Mühendisleri: Docker, PM2 ve CI/CD ile Node servisini deploy eder
  • Front-end Geliştiriciler: Full-stack geçişe hazırlanır

Ön Gereklilikler

Programa hazır gelmek için aşağıdaki temeller faydalıdır:

  • JavaScript sözdizimi ve fonksiyon kullanımına aşinalık
  • JSON ve HTTP istek-yanıt akışına temel farkındalık
  • Komut satırı ile dosya ve dizin işlemlerinde rahatlık
  • Git ile commit, branch ve push akışına giriş seviyesi
  • REST kavramına temel düzeyde aşinalık

Süresi ve Tarihi

Süre: 4 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, katılımcı grubunun uygunluğuna göre birlikte planlanır.

Kazanımlar

Eğitim sonunda Node.js geliştirme akışı sistematik bir disipline kavuşur:

  • Node.js çalışma modeli ve event loop mantığını kavrar
  • Modüler proje yapısıyla düzenli ve tutarlı kod organizasyonu kurar
  • Express ile REST API uçlarını tasarlar ve geliştirir
  • Girdi doğrulama, hata yönetimi ve loglama standartları oluşturur
  • JWT tabanlı kimlik doğrulama akışlarını uygular
  • Performans ve kaynak kullanımı için iyileştirme yapar
  • Test stratejisi ve basit CI akışıyla kalite kontrolü destekler
  • Gözlemlenebilirlik ve dağıtım hazırlığı için temel pratikleri uygular

Node.js Eğitimi Konuları

1. Node.js Mimarisi ve V8 Engine

  • V8 JavaScript engine ve libuv kütüphanesi
  • Single-threaded event-driven mimari
  • Node.js LTS sürümleri ve nvm kullanımı
  • REPL ortamı ve hızlı deneme
  • process objesi: argv, env, stdin, stdout

2. NPM ve Package.json

  • npm init ve package.json yapısı
  • dependencies ve devDependencies
  • semver: caret (^), tilde (~), exact
  • npm scripts ve cross-env
  • package-lock.json ve npm ci
  • pnpm ve yarn alternatifleri

3. Module System: CommonJS ve ES Modules

  • require, module.exports (CommonJS)
  • import, export (ES Modules)
  • .mjs ve type: "module" ayarı
  • Dynamic import() kullanımı
  • __dirname, __filename alternatifleri

4. Event Loop, Microtask ve Macrotask

  • Event loop faz sıralaması: timer, I/O, immediate
  • process.nextTick ve queueMicrotask
  • setImmediate ile setTimeout farkı
  • I/O bottleneck ve CPU-bound işler
  • console.log ile event loop debug

5. Asenkron: Callback, Promise, async/await

  • Callback hell ve error-first callback pattern
  • Promise.resolve, reject, then, catch
  • Promise.all, allSettled, race, any
  • async/await ile senkron-benzeri syntax
  • util.promisify ile callback'ten promise'a

6. File System (fs) ve Path

  • fs.readFile, writeFile, appendFile (async)
  • fs.promises API ile modern kullanım
  • fs.createReadStream ile büyük dosyalar
  • path.join, resolve, dirname, basename
  • __dirname, process.cwd() ayrımı

7. Streams: Readable, Writable, Transform

  • Stream tipleri: Readable, Writable, Duplex, Transform
  • pipe() ile stream zinciri
  • Backpressure ve drain event
  • Custom Transform stream yazımı
  • stream/promises API

8. Buffer ve Encoding

  • Buffer.from, Buffer.alloc, Buffer.concat
  • UTF-8, base64, hex encoding
  • Binary data işleme
  • TypedArray (Uint8Array) ile interop
  • String ve Buffer dönüşüm performansı

9. HTTP Modülü ve Sunucu Kurulumu

  • http.createServer ile native sunucu
  • Request ve Response objeleri
  • URL parsing ve query string
  • HTTP status code'lar ve header'lar
  • HTTPS ve TLS sertifika kurulumu

10. Express: Routing ve Middleware

  • Express uygulama iskeleti
  • Route: GET, POST, PUT, DELETE, PATCH
  • Route parameters ve query string
  • Middleware sırası ve next() çağrısı
  • Error-handling middleware (4 argümanlı)
  • Router ile modüler yapı

11. REST API Tasarımı ve OpenAPI

  • RESTful endpoint naming convention
  • HTTP method semantik kullanımı
  • Pagination, filtering, sorting
  • OpenAPI (Swagger) ile dokümantasyon
  • HATEOAS prensipleri

12. Veri Doğrulama: Joi, Zod, express-validator

  • Joi schema tanımlama
  • Zod ile type-safe validation
  • express-validator middleware kullanımı
  • Custom validator ve error format
  • Sanitization ve XSS koruması

13. Authentication: JWT, OAuth, Sessions

  • JWT yapısı: header, payload, signature
  • jsonwebtoken kütüphanesi
  • Access token ve refresh token akışı
  • Passport.js ile OAuth strategy
  • express-session ve cookie-based auth
  • bcrypt ile password hashing

14. Database: MongoDB ve PostgreSQL

  • Mongoose ile MongoDB schema
  • Prisma ile PostgreSQL ORM
  • Migration ve seed data
  • Connection pooling
  • Transaction yönetimi

15. Error Handling ve Logging

  • try-catch ve async error wrapper
  • Custom Error class ile error hierarchy
  • Winston ile structured logging
  • Pino ile high-performance logging
  • Request ID ile distributed tracing

16. Testing: Jest, Supertest, Mocha

  • Jest ile unit test yazımı
  • Supertest ile HTTP endpoint test
  • Mock, stub, spy kavramları
  • Integration test ve test database
  • Code coverage ve nyc/istanbul

17. Performance: Cluster ve Worker Threads

  • cluster module ile multi-process
  • worker_threads ile CPU-bound iş
  • PM2 ile process management
  • Memory leak tespiti
  • Heap snapshot ve clinic.js

18. Security: Helmet, CORS, Rate Limiting

  • Helmet ile HTTP header güvenliği
  • CORS middleware yapılandırması
  • express-rate-limit ve slowdown
  • SQL injection ve NoSQL injection koruması
  • OWASP Top 10 ve Node.js best practices

19. Deployment: PM2, Docker, CI/CD

  • PM2 ile production process manager
  • Dockerfile ve multi-stage build
  • docker-compose ile çoklu servis
  • GitHub Actions ile CI/CD pipeline
  • Heroku, Railway, Render deployment

20. Monitoring ve APM

  • Health check endpoint (/health, /ready)
  • Prometheus metrics ile observability
  • New Relic, Datadog APM entegrasyonu
  • Sentry ile error tracking
  • Uptime monitoring ve alerting

Node.js Eğitimi ile İlgili
Sıkça Sorulan Sorular ve Cevapları


Node.js’te event loop mantığını nasıl pratikleştiriyoruz?

Eğitimde timer, I/O ve microtask kuyruklarını örneklerle inceliyoruz. Basit senaryolarda darboğazı ölçüp, akış kontrolü ve doğru asenkron desenlerle iyileştirme yapıyoruz.

Express ile REST API tasarlarken hangi standartları ele alıyoruz?

Kaynak modelleme, endpoint isimlendirme, status code seçimi, pagination/filtreleme ve hata sözleşmesi konularını uygulamalı işleriz. Amaç tutarlı bir API sözleşmesi oluşturmaktır.

JWT tabanlı kimlik doğrulamada hangi riskleri ve önlemleri konuşuyoruz?

Token saklama, süre yönetimi, refresh yaklaşımı, rol bazlı yetkilendirme ve temel saldırı senaryolarını ele alırız. Güvenli varsayılanlar ve pratik kontroller üzerinden ilerleriz.

Node.js servislerinde loglama ve izlenebilirlik nasıl kurgulanır?

Structured log, request id, merkezi hata yakalama ve sağlık kontrol uçlarını birlikte tasarlarız. Böylece sorun tespiti, kök neden analizi ve operasyonel görünürlük güçlenir.

Eğitim içeriğini ihtiyaçlarımıza göre özelleştirebilir misiniz?

Evet. Eğitim öncesinde ihtiyaç analizi yaparak içerik ve örnekleri kurumun hedeflerine göre uyarlıyoruz. Modüller eklenebilir, bazı başlıklar derinleştirilebilir veya sadeleştirilebilir.

Eğitim yeri, yöntemi ve sertifikasyon süreci nasıl ilerliyor?

Eğitim online (canlı) veya yerinde gerçekleştirilebilir; tarih ve saatleri katılımcı grubunun uygunluğuna göre planlıyoruz. Program sonunda katılım sertifikası verilir; talep edilirse ölçme-değerlendirme ve raporlama eklenebilir.

 Vimaj