Şartname Odaklı Geliştirme (SDD), yazılım şartnamelerinin geliştirmenin her aşamasına rehberlik eden tek doğru kaynak haline geldiği bir metodolojidir. Uygulamanın dokümantasyondan önce geldiği kod-öncelikli yaklaşımların aksine, SDD; detaylı şartnamelerin (örn. API sözleşmeleri, mimari planlar ve kabul kriterleri) tek bir üretim kodu satırı yazılmadan önce oluşturulmasını, doğrulanmasını ve onaylanmasını zorunlu kılar. Bu şartname-öncelikli yaklaşım, belirsizliği ortadan kaldırır, yeniden işleme ihtiyacını azaltır ve her geliştiricinin aynı sistemi birebir aynı taslağa göre oluşturmasını sağlar.
Şartname Odaklı Geliştirme (SDD) Neden Önemlidir?
Geleneksel geliştirmede, ekipler genellikle belirsiz gereksinimlere dayanarak kodlamaya başlar ve sprint ortasında API tasarımının hatalı olduğunu, veritabanı şemasının ölçeklenmediğini veya ön ucun arka uç yanıtlarını tüketemediğini keşfeder. Şartname Odaklı Geliştirme (SDD), değişikliklerin ucuz olduğu tasarım aşamasında kritik kararları zorunlu kılarak bunu önler.
İş etkisi ölçülebilirdir: SDD kullanan projeler, sprint ortası değişikliklerinde %40 daha az, entegrasyon yeniden çalışmalarında ise %60 daha az raporlama yapmaktadır. API şartnameniz önceden kilitlenip doğrulandığında, ön uç ve arka uç ekipleri sürekli koordinasyona gerek kalmadan paralel çalışabilir. Mimari planınız akranlar tarafından incelendiğinde, ölçeklenebilirlik darboğazları koda işlenmeden önce yakalanır.
Şartname Odaklı Geliştirmenin (SDD) Temel Bileşenleri
Şartname Odaklı Geliştirme (SDD), geliştirme sözleşmenizi oluşturan dört temel yapı taşına dayanır:
1. Şartname Dokümantasyonu
Her sistem bileşeninin detaylı, belirsizliğe yer bırakmayan açıklamaları. API'ler için bu, şemalar, örnekler ve doğrulama kuralları içeren OpenAPI şartnameleri anlamına gelir.
# SDD'de Örnek API Şartnamesi
paths:
/api/users:
post:
summary: Create a new user
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [email, name]
properties:
email:
type: string
format: email
example: user@example.com
name:
type: string
minLength: 1
maxLength: 100
responses:
'201':
description: User created
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
email:
type: string
name:
type: string
2. Mimari Plan
Sistem bileşenlerinin, veri akışlarının ve altyapı kararlarının görsel ve metinsel dokümantasyonu.
// SDD'de Mimari Diyagramı
graph TB
Client --> API_Gateway
API_Gateway --> Auth_Service
API_Gateway --> User_Service
API_Gateway --> Order_Service
User_Service --> PostgreSQL[(User DB)]
Order_Service --> MongoDB[(Order DB)]
Order_Service --> Payment_API(Payment Gateway)3. Görev Dağılımı
Şartnameler, net kabul kriterlerine sahip uygulanabilir görevlere ayrılır.
| Görev Kimliği | Açıklama | Kabul Kriterleri | Bağımlılıklar |
|---|---|---|---|
| API-001 | POST /api/users'ı uygulayın | Geçerli yük ile 201 döndürür, geçersiz e-posta ile 400 döndürür, DB'ye kaydeder | DB şeması onaylandı |
| API-002 | Kimlik doğrulama ara yazılımı ekleyin | JWT tokenını doğrular, geçersiz tokenda 401 döndürür | Kimlik doğrulama hizmeti şartnamesi tamamlandı |
| FE-001 | Kullanıcı kayıt formu oluşturun | Tasarım taslağıyla eşleşir, API-001'i çağırır, başarı/hata gösterir | API-001 tamamlandı |
4. Uygulama Yönergeleri
Kod tabanında tutarlılığı sağlayan kodlama standartları, desenleri ve kısıtlamaları.
// Uygulama yönergesi örneği
/**
* Tüm API uç noktaları şunları yapmalıdır:
* 1. İstek gövdesini OpenAPI şartnamesine göre doğrulamalıdır
* 2. Standartlaştırılmış hata yanıtları döndürmelidir
* 3. İstekleri korelasyon kimlikleriyle kaydetmelidir
* 4. Liste uç noktaları için sayfalama desteği sağlamalıdır
*/
// Standartlaştırılmış hata yanıtı
{
"error": {
"code": "INVALID_EMAIL",
"message": "E-posta biçimi geçersiz",
"details": { "field": "email", "value": "invalid-email" }
}
}
Şartname Odaklı Geliştirme (SDD) İş Akışı
Şartname Odaklı Geliştirme (SDD), yapılandırılmış 5 aşamalı bir döngüyü takip eder:
Aşama 1: Şartname Oluşturma (1-3 Gün)
- Teknik yazarlar ve mimarlar detaylı şartnameler taslağını hazırlar
- API şartnameleri için OpenAPI Generator gibi araçları kullanın
- Mimari diyagramlar ve veri modelleri oluşturun
Aşama 2: Şartname İncelemesi (4-5 Gün)
- Kıdemli geliştiriciler ve Kalite Güvence (QA) tarafından akran değerlendirmesi
- İş gereksinimlerine karşı doğrulama
- Paydaşlardan onay imzası
Aşama 3: Paralel Uygulama (2-4 Haftalar)
- Ön uç ve arka uç ekipleri aynı şartname üzerinden eş zamanlı çalışır
- Günlük koordinasyona gerek yok—şartname sözleşmedir
- Sürekli entegrasyon şartnameye göre doğrulamalar yapar
Aşama 4: Şartname Bazlı Test Etme
- Testler koddan değil, şartnamelerden üretilir
- API testleri şartname uyumluluğunu doğrular
- Entegrasyon testleri mimari sözleşmeleri doğrular
Aşama 5: Şartname Bakımı
- Şartnameler kodla birlikte sürüm kontrolünde yaşar
- Değişiklikler inceleme süreci gerektirir
- Otomatik araçlar şartname-kod sapmasını algılar
Şartname Odaklı Geliştirme (SDD) için Araçlar
Şartname Yönetimi:
- Apidog: API şartnamelerini yapay zekaya beslemek için
- OpenAPI/Swagger: API şartnameleri için
- AsyncAPI: Olay odaklı şartnameler için
- JSON Şeması: Veri doğrulama için
Uygulama:
- OpenAPI Generator: Şartnamelerden sunucu taslakları ve istemci SDK'ları oluşturur
- dbt: Veri dönüşüm şartnameleri
- Apidog: Şartnamelere karşı API testi ve doğrulama
Doğrulama:
- Spectral: OpenAPI şartnamelerini denetler
- Apidog: API'leri otomatik olarak şartnameye karşı test eder
- Sözleşme testi: Mikro hizmetler için Pact
Apidog, Şartname Odaklı Geliştirmeyi (SDD) Nasıl Güçlendirir?
Apidog, geleneksel bir API tasarım aracından, yapay zeka kodlama çağında SDD'yi uygulayan kapsamlı bir ekosisteme dönüştü.
1. İnsanlar ve Yapay Zeka için Tek Doğru Kaynak
Apidog; API tasarımı, mocking (sahte sunucu), test etme, hata ayıklama ve dokümantasyonu tek bir platformda birleştirir. Ancak en önemlisi, Apidog MCP Sunucusu ile API şartnamelerinizi yapay zeka ajanları (Cursor gibi) için canlı bir bilgi tabanına dönüştürür. Bu, yapay zeka asistanınız size kod yazarken yardımcı olduğunda, güncel olmayan desenleri veya halüsinasyonları değil, tam olarak onaylanmış şartnameyi referans almasını sağlar.
2. Otomatik Şartname Odaklı İş Akışları
- Önce Tasarım: Görsel düzenleyiciler OpenAPI şartnamelerini otomatik olarak oluşturur, böylece sözleşme-öncelikli yazmak için bir YAML uzmanı olmanız gerekmez.
- Yapay Zeka Destekli Uygulama: Apidog'u MCP aracılığıyla IDE'nize bağlayın. Ardından yapay zekanıza "Apidog'daki
/users/{id}uç noktasına göre sağlam bir Kullanıcı DTO'su oluştur" diyebilirsiniz ve yapay zeka, şartnameye birebir uyan kod üretecektir. - Sürekli Doğrulama: Geliştirme yaparken, Apidog, uygulamanızın sözleşmeyle hemen eşleştiğini doğrulamak için şartnamelerinizden otomatik olarak test senaryoları oluşturabilir.
Ajan tabanlı yapay zeka çağında Apidog, şartnameyi sadece bir referans değil, tüm kodlama yaşam döngüsünün aktif itici gücü haline getirir.
Şartname Odaklı Geliştirme (SDD) için En İyi Uygulamalar
- Önce Şartnameler, Sonra Kod: Onaylanmış şartnameler olmadan asla kodlamaya başlamayın
- Tek Doğru Kaynak: Her yerde referans alınan tek bir şartname dosyası
- Otomatik Doğrulama: Her commit şartnamelere karşı test edilir
- Paydaş İncelemesi: Teknik olmayan paydaşlar şartnameleri onaylamalıdır
- Her Şeyi Sürümlendirin: Şartnameler, mimari ve yönergeler sürümlendirilir
- Şartnameleri Canlı Tutun: Gereksinimler değiştiğinde sadece kodu değil, şartnameleri de güncelleyin
- Kod Üretimi Kullanın: Şartnamelerden taslaklar, istemciler ve testler üretin
- Sözleşmeleri Uygulayın: Şartnameyi ihlal eden derlemeleri başarısız sayın
Sıkça Sorulan Sorular
S1: SDD geliştirmeyi yavaşlatmaz mı?
Cevap: Tam tersi olur. Peşin şartname çalışması, sprint ortası yeniden yazmaları önler ve işi paralelleştirir. Ekipler, şartnameler soruları kesin olarak yanıtladığı için gereksinimleri netleştirmek için toplantılarda daha az zaman harcar.
S2: SDD'de şartnameleri kim yazar?
Cevap: Teknik yazarlar ve mimarlar taslağını hazırlar, ancak tüm ekip inceler. Ürün sahipleri iş gereksinimlerini doğrular, geliştiriciler uygulanabilirliği sağlar ve Kalite Güvence (QA) test edilebilirliği onaylar.
S3: SDD'de değişen gereksinimleri nasıl ele alırsınız?
Cevap: Değişiklikler aynı şartname inceleme sürecinden geçer. Önce şartname güncellenir, ardından uygulama yapılır. Bu, değişiklikleri sadece yapan geliştiricinin değil, herkesin bilmesini sağlar.
S4: Apidog, REST dışı API'ler için şartnameleri test edebilir mi?
Cevap: Evet. Apidog, GraphQL, WebSockets ve gRPC şartnamelerini destekler. Sorguları, mutasyonları, abonelikleri ve akış uç noktalarını şartnamelerinize göre doğrular.
S5: Ya şartname yanlış olursa?
Cevap: Şartname inceleme süreci hataların çoğunu yakalar, ancak bir şartname hatası uygulamaya ulaşırsa, etkisi sınırlı olduğu için düzeltilmesi daha kolaydır. Önce şartnameyi düzeltin, ardından testleri ve taslakları yeniden oluşturun, sonra uygulamayı düzeltin—hepsi sürüm kontrolünde takip edilir.
Sonuç
Şartname Odaklı Geliştirme (SDD), yazılım geliştirmeyi reaktif bir süreçten öngörülebilir, yüksek kaliteli bir iş akışına dönüştürür. Şartnameleri uygulama, test etme ve doğrulama süreçlerine rehberlik eden merkezi bir yapı taşı haline getirerek ekipler, belirsizliği ortadan kaldırır, yeniden işleme ihtiyacını azaltır ve güvenle daha hızlı ürün sunar.
Temel içgörü: şartnameler, kodlama sonrasında yazdığınız dokümantasyonlar değildir—onlar, kodlama öncesinde yazdığınız sözleşmelerdir. Testler üreten, uygulamaları doğrulayan ve sapmaları otomatik olarak yakalayan yürütülebilir yapı taşları haline gelirler.
Apidog gibi araçlar, şartname ile uygulama arasındaki kritik köprüyü otomatikleştirerek SDD'yi pratik hale getirir. API testleriniz OpenAPI şartnamenizden oluşturulduğunda ve sürekli olarak ona karşı doğrulandığında, şartname sapması imkansız hale gelir. Mimari diyagramınız kodla birlikte sürüm kontrolünde yaşadığında, mimari kararlar görünür ve tartışılabilir kalır.
Küçük başlayın. Yeni bir API uç noktası seçin. Önce OpenAPI şartnamesini yazın. Apidog ile testler oluşturun. Ekip onayı alın. Ardından uygulayın. Hatalardaki ve yeniden işleme ihtiyacındaki azalmayı ölçün. Bu veriler, Şartname Odaklı Geliştirmeyi (SDD) tüm kod tabanınıza yaymak için temel oluşturacaktır.
