REFACTORING API CODE EĞİTİMİ

API kodunu bozmadan temizle ve geliştir

Kod kokularını tanıyıp şişmiş controller'ları katmanlara ayırın; karakterizasyon testleri ve REST Assured regresyon ağıyla API kodunu güvenle refactor edin.

Kod kokularını tanıyıp şişmiş controller'ları katmanlara ayırın; karakterizasyon testleri ve REST Assured regresyon ağıyla API kodunu güvenle refactor edin.

3 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

API kodunun refactoring'i: kod kokuları, katman ayrıştırma, hata modeli ve regresyon testleri

Bu eğitim, çalışan ama bakımı zorlaşmış API kodunu güvenle iyileştirmeyi öğretir. Long Method, Large Class ve Feature Envy gibi kod kokuları, Extract Method/Class ve Replace Conditional with Polymorphism dönüşümleri, şişmiş controller'dan servis katmanına geçiş, merkezi hata yönetimi, Bean Validation, DTO ve MapStruct, tutarlı durum kodu ve RFC 7807 hata modeli, sayfalama ve sürümleme ile geriye uyumluluk işlenir. Karakterizasyon ve REST Assured testleriyle her adım güvence altına alınır.

Süre ve Format

3 Gün. Her gün dört modül; katılımcılar Kod Kokuları ve Güvenli Refactoring → Desenler ve Sözleşme Tasarımı → Otomatik Regresyon Ağı sırasıyla ilerler.

Seviye

Orta Seviye — API kodunun refactoring'i: kod kokuları, katman ayrıştırma, hata modeli ve regresyon testleri.

Öğrenme Metodu

Katılımcılar kasıtlı kötü tasarlanmış bir API projesini önce testle sabitler, sonra küçük adımlarla refactor edip her adımda testleri çalıştırır.

Neden Bu Eğitim?

🧼Teknik Borç Azaltma

Karmaşık API kodunu okunur ve genişletilebilir hale getirirsiniz.

🧪Güvenli Adımlar

Karakterizasyon testleriyle davranışı bozmadan değişiklik yaparsınız.

🔌Uyumlu Evrim

Tüketicileri kırmadan API'yi sürümleyip evrimleştirirsiniz.

Anahtar Konular

API refactoringkod kokularırefactoring eğitimikarakterizasyon testiREST AssuredMapStruct DTOSpring Boot refactoringteknik borçtemiz kod APIclean code
“Refactoring, davranışı koruyarak yapıyı iyileştirme sözüdür.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
HTTP Temel Bilgisi

URL, istek ve yanıt kavramlarına genel aşinalık yeterlidir.

2
Programlama Deneyimi

Herhangi bir dilde temel değişken, fonksiyon ve JSON okuma becerisi beklenir.

3
Kurulu Araçlar

Postman veya curl ile bir kod düzenleyici (VS Code / IntelliJ) kurulu olmalıdır.

4
Çalışma Ortamı

İnternet erişimli, yönetici izni olan ve en az 8 GB RAM'li bir dizüstü bilgisayar gerekir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı Kod kokularını tanır, Fowler refactoring kataloğundan güvenli dönüşümler uygular, Şişmiş controller'ları katmanlara ayırır, hata ve doğrulama mantığını merkezileştirir, Test olmayan API kodunu karakterizasyon ve onay (approval) testleriyle güvene alır ve REST kısıtlarını ve Richardson olgunluk modelini örneklerle açıklar.
Modül 1
API Kodunda Kod Kokuları ve Refactoring Temelleri
  • Kod kokuları: Long Method, Large Class, Feature Envy, Primitive Obsession, Shotgun Surgery
  • Extract Method, Extract Class, Move Method, Inline ve Rename ile temel dönüşümler
  • Conditional'ı polimorfizme çevirme ve Replace Magic Number ile sabitler
  • IDE otomatik refactoring araçları (IntelliJ, VS Code) ve güvenli adım adım ilerleme
  • Teknik borç ölçümü: SonarQube, siklomatik karmaşıklık ve bilişsel karmaşıklık
  • Refactoring ile davranış değiştirmeyi ayırma: commit disiplini ve inceleme (code review) pratiği
Modül 2
Controller, Servis ve Hata Yönetimi Refactoring'i
  • Fat controller'dan servis katmanına iş mantığı taşıma ve ince controller ilkesi
  • Dağınık try/catch yerine merkezi hata işleyici (@ControllerAdvice, Express error middleware)
  • Girdi doğrulamayı Bean Validation / Zod / Joi şemalarına taşıma
  • Entity yerine DTO kullanımı, mapper ayrıştırması ve kırıcı olmayan API değişikliği
  • Dublikasyon temizliği: ortak istemci, sayfalama yardımcıları ve DRY ile fazla soyutlama dengesi
  • Geriye uyumluluk: deprecated uç nokta, sürümleme ve tüketicilere göç planı
Modül 3
Karakterizasyon Testleri ile Güvenli Refactoring
  • Eski kodda test dikişi (seam) bulma: bağımlılık enjeksiyonu ve arayüz çıkarma
  • Karakterizasyon (golden master) testi ile mevcut davranışı sabitleme
  • Approval testing (ApprovalTests, snapshot) ile yanıt gövdesi karşılaştırma
  • Mutation testing (PIT, Stryker) ile test kalitesini ölçme
  • REST Assured / Supertest ile uçtan uca regresyon ağı kurma
  • Strangler yaklaşımıyla riskli modüllerin yeni uygulamaya kademeli taşınması
Modül 4
REST Mimari Kısıtları ve Kaynak Modeli
  • Roy Fielding tezindeki altı kısıt: istemci-sunucu, durumsuzluk, önbellek, tektip arayüz, katmanlı sistem, isteğe bağlı kod
  • Richardson olgunluk modeli: Seviye 0 (RPC) ile Seviye 3 (HATEOAS) arasındaki farkın örnekle gösterilmesi
  • Kaynak (resource) ile temsil (representation) ayrımı ve URI ile kaynak kimliklendirme
  • Durumsuzluğun oturum yönetimi, ölçeklenme ve yük dengeleme üzerindeki etkisi
  • REST, SOAP, gRPC ve GraphQL karşılaştırması: hangi senaryoda hangisi seçilir
  • Gerçek bir genel API (GitHub, Stripe veya OpenWeather) üzerinde REST uyumluluk denetimi
Günün hedefiKatılımcı Facade, Adapter, DTO, Builder ve Repository desenlerini API katmanında uygular, HTTP durum kodlarını seçer ve RFC 7807 Problem Details ile hata yanıtı tasarlar, Kaynak odaklı URI, sayfalama, filtreleme ve sürümleme kurallarını uygular ve API kimlik doğrulama yöntemlerini, JWT yapısını ve OWASP API Top 10 risklerini ele alır.
Modül 1
API Tasarım Desenleri
  • Facade ile karmaşık alt sistemleri tek servis arayüzünün arkasına gizleme
  • Adapter ile üçüncü taraf API modellerini iç domain modeline çevirme
  • DTO ve Mapper (MapStruct) ile entity'nin dışarı sızmasını engelleme
  • Builder ve Fluent Interface ile okunabilir istemci/istek oluşturma
  • Repository ve Unit of Work ile veri erişiminin soyutlanması
  • Decorator ve Proxy ile önbellekleme, günlükleme ve yetki kontrolünün araya girmesi
Modül 2
Durum Kodları ve Hata Modelleri
  • 2xx, 3xx, 4xx, 5xx sınıfları: 200, 201, 202, 204, 301, 304, 400, 401, 403, 404, 409, 422, 429, 500, 503 ayrımı
  • 401 Unauthenticated ile 403 Forbidden arasındaki fark ve WWW-Authenticate başlığı
  • 400 ile 422 arasında doğrulama hatası kararı ve alan bazlı hata listesi döndürme
  • RFC 7807 application/problem+json biçimi: type, title, status, detail ve instance alanları
  • Retry-After, 429 Too Many Requests ve 503 durumlarında istemci tarafı yeniden deneme davranışı
  • Hata yanıtlarında yığın izi sızıntısı ve hassas bilgi ifşasını önleme kuralları
Modül 3
API Tasarım İlkeleri ve Kaynak Adlandırma
  • Çoğul isim tabanlı URI tasarımı: /orders/{id}/items yerleşimi ve fiil içeren yolların neden kaçınılması gerektiği
  • Sayfalama stratejileri: offset/limit, sayfa numarası ve cursor tabanlı (keyset) sayfalama
  • Filtreleme, sıralama ve alan seçimi için sorgu parametresi sözleşmeleri (?status=open&sort=-created)
  • Sürümleme yaklaşımları: URI (/v1), başlık ve media type tabanlı sürümleme ile geri uyumluluk kuralları
  • Toplu işlem (bulk), uzun süren işlemler için 202 Accepted ve durum sorgulama kaynağı
  • API değişiklik yönetimi: deprecation, Sunset başlığı ve kırıcı değişiklik tespiti
Modül 4
API Güvenliği: OAuth 2.0, JWT ve Oran Sınırlama
  • API anahtarı, Basic Auth, Bearer token ve OAuth 2.0 akışları: authorization code (PKCE), client credentials
  • JWT yapısı: header, payload, imza, exp/iat/aud talepleri ve RS256 ile HS256 farkı
  • Scope ve rol tabanlı yetkilendirme ile nesne düzeyi yetki kontrolü (BOLA) açığı örneği
  • OWASP API Security Top 10: aşırı veri ifşası, mass assignment ve bozuk kimlik doğrulama
  • Oran sınırlama (rate limiting) algoritmaları: token bucket, sliding window ve 429 yanıtı
  • CORS yapılandırması, girdi doğrulama ve TLS zorunluluğu (HSTS) ile temel sertleştirme
Günün hedefiKatılımcı REST Assured projesini Maven ile kurar ve given/when/then kalıbıyla ilk testleri yazar, RequestSpecification, ResponseSpecification ve katmanlı test çatısı tasarlar, Test piramidi, tüketici güdümlü sözleşme testi (Pact) ve Testcontainers ile test yazar ve Tarayıcı geliştirici araçları, curl, Fiddler ve mitmproxy ile API trafiğini inceler.
Modül 1
REST Assured ile İlk Testler
  • Maven bağımlılıkları: rest-assured, JUnit 5 veya TestNG ve hedef Java sürümü yapılandırması
  • given() / when() / then() söz dizimi ve BDD tarzı okunabilir test cümleleri
  • RestAssured.baseURI, basePath ve port ayarlarıyla ortama göre hedef belirleme
  • GET isteğiyle durum kodu, Content-Type ve gövdeden alan okuma (extract().path())
  • log().all(), log().ifValidationFails() ile istek ve yanıtın günlüklenmesi
  • Test API'si olarak JSON Server veya ReqRes kullanımı ve ilk test sınıfının çalıştırılması
Modül 2
REST Assured Test Mimarisi ve Yapılandırma
  • RequestSpecBuilder ve ResponseSpecBuilder ile ortak başlık, taban URL ve beklentilerin merkezi tanımı
  • Page Object benzeri API istemci sınıfları (service object) ve test verisi oluşturucular (builder)
  • Ortam yapılandırması: properties/YAML dosyaları, Maven profilleri ve sistem özellikleri
  • Filter arayüzü ile istek/yanıt kesme, token yenileme ve özel günlükleme
  • Test verisi yönetimi: @BeforeAll/@AfterEach ile oluştur-sil döngüsü ve bağımsız testler
  • Paralel çalıştırma, JUnit 5 etiketleri (tag) ve duman/regresyon paketlerinin ayrıştırılması
Modül 3
Mikroservis Test Stratejisi
  • Mikroservis test piramidi: birim, bileşen, entegrasyon, sözleşme ve uçtan uca testler
  • Tüketici güdümlü sözleşme testi: Pact ile consumer test ve provider doğrulama
  • Testcontainers ile gerçek PostgreSQL, Kafka ve Redis kullanan entegrasyon testleri
  • WireMock ve Spring Cloud Contract ile bağımlı servislerin taklit edilmesi
  • Üretimde test: canary, gölge (shadow) trafik ve özellik bayraklarıyla güvenli yayın
  • Kararsız (flaky) test nedenleri ve asenkron akışların Awaitility ile test edilmesi
Modül 4
Web API Keşfi ve Hata Ayıklama Araçları
  • Tarayıcı DevTools Network sekmesi: zamanlama (waterfall), başlık ve yük inceleme, HAR dışa aktarımı
  • curl ile -X, -H, -d, -i, -w ve --trace seçenekleriyle istek oluşturma ve gecikme ölçme
  • Fiddler Everywhere veya mitmproxy ile HTTPS trafiğini araya girerek inceleme ve istek değiştirme
  • HTTPie ve jq ile komut satırından JSON yanıtlarını biçimlendirme ve süzme
  • Yaygın sorun sınıfları: CORS hataları, yanlış Content-Type, sıkıştırma ve yönlendirme döngüleri
  • Sunucu tarafı erişim günlükleri, correlation ID ve istek izleme ile uçtan uca hata takibi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Refactoring Temelleri

API kodundaki kod kokularını tanıyıp küçük ve güvenli adımlarla düzeltebilirsiniz.

🧩
Güvenli Refactoring

Testsiz API kodunu karakterizasyon testleriyle sarıp riski düşürerek refactor edebilirsiniz.

🛠️
REST Kısıtları

REST kısıtlarını ve Richardson olgunluk seviyelerini bir API üzerinde değerlendirebilirsiniz.

🔐
Hata Modeli

Doğru HTTP durum kodlarını seçip RFC 7807 uyumlu hata yanıtları tasarlayabilirsiniz.

📈
API Tasarımı

İsimlendirme, sayfalama ve sürümleme kurallarına uygun tutarlı bir API tasarlayabilirsiniz.

🧪
REST Assured Başlangıç

given/when/then kalıbıyla çalışan ilk REST Assured testlerini yazıp çalıştırabilirsiniz.

🚀
Test Mimarisi

Yeniden kullanılabilir spesifikasyonlarla bakımı kolay bir API test çatısı kurabilirsiniz.

🔎
API Hata Ayıklama

curl, tarayıcı DevTools ve proxy araçlarıyla API sorunlarının kaynağını bulabilirsiniz.

Kimler İçin Uygundur?

  • Mevcut API kod tabanını sürdüren backend geliştiriciler
  • kod inceleme yapan kıdemli mühendisler
  • teknik borcu azaltmak isteyen ekipler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Mevcut API kod tabanını sürdüren backend geliştiriciler, kod inceleme yapan kıdemli mühendisler ve teknik borcu azaltmak isteyen ekipler için uygundur.
Test olmayan kodla nasıl çalışılır?
Karakterizasyon ve onay testleriyle mevcut davranış önce sabitlenir, ardından refactor edilir.
Hangi dil kullanılır?
Örnekler Java/Spring Boot ile verilir; ilkeler başka dillere de uygulanır.
Mutation testing işleniyor mu?
Evet, PIT ile test kalitesinin ölçülmesi kısaca uygulanır.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. Üçüncü taraf kurumların sınav ve sertifikalarıyla bir bağı yoktur.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Refactoring API Code Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

API ve Mikroservis MimarisiConsuming the Web API Eğitimi
Yazılım Geliştirme Eğitimleri

Consuming the Web API Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

HttpClient, IHttpClientFactory, Polly, System.Text.Json, DelegatingHandler, Refit, CORS ve OAuth 2.0 ile Web API tüketimi eğitimi.

Detayları Gör →
API ve Mikroservis MimarisiData Analysis Using the Spark DataFrame API Eğitimi
Yazılım Geliştirme Eğitimleri

Data Analysis Using the Spark DataFrame API Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

PySpark DataFrame API, Parquet ve Delta, join ve window fonksiyonları, Spark SQL, Structured Streaming, AQE ve performans ayarı ile veri analizi eğitimi.

Detayları Gör →
API ve Mikroservis MimarisiData Transformation Using the Snowpark API Eğitimi
Yazılım Geliştirme Eğitimleri

Data Transformation Using the Snowpark API Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Snowpark Python DataFrame, UDF, stored procedure, Stream ve Task, Dynamic Table ve Query Profile ile Snowflake içinde veri dönüşümü eğitimi.

Detayları Gör →
API ve Mikroservis MimarisiDataFrames and the DataFrame API Eğitimi
Yazılım Geliştirme Eğitimleri

DataFrames and the DataFrame API Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

DataFrame API ile okuma, dönüştürme, birleştirme, performans ayarı ve test. 2 gün uygulamalı eğitim, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
API ve Mikroservis MimarisiDesign Thinking for Microservices Eğitimi
Yazılım Geliştirme Eğitimleri

Design Thinking for Microservices Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Tasarım odaklı düşünme, Event Storming ve DDD ile mikroservis sınırlarının keşfi. 2 gün uygulamalı eğitim, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn