spec-driven development
əjdahalar googllapsevdoelm - breaking bad - ssenari yazmaq - yazarların favorit oyunları - steven krantz - oecd - robert downey jr - call of duty: modern warfare 3 - riskbudur.az - stackoverflow.com
Burada “spec” adətən bu sənədlərin toplu anlayışıdır:
- funksional tələblər
- biznes qaydalar
- API strukturu
- use-case ssenariləri
- qəbul kriteriyaları
- domen obyekt modelinin təsviri
- edge-case-lərin əvvəlcədən müəyyən olunması
Yəni təxminən “nə yazacağıq?” sualının bütün cavabları kod başlamadan əvvəl sənədləşdirilir.
Niyə belə yanaşma yaranıb?
Çünki komanda böyüdükcə problem də böyüyür:
- proqramçılar fərqli təsəvvürlərlə işləyir
- hər adam öz dünyasına görə yazır
- tələb dəyişəndə kod xəritəsi dağılır
- texniki borc yığılır
hər dəyişikliyin domino effekti olur
Spec bunu həll edir - çərçivə yaradır.
Bu yanaşmanın gözəlliyi nədir?
Spec-driven development-də kod artıq “təxmin edilən” yox, “sənədləşdirilmiş” reallığı icra edir.
Başqa cür desək:
SPEC -> kodun taleyi üçün konstitusiyadır.
Proses adətən belə olur:
1. Biznes nəticəsi müəyyən edilir
2. Onun spesifikasiyası yazılır
3. Modul dizaynı çıxır
4. Acceptance test yazılır
5. Kod SPEC-ə uyğun yazılır
6. Deployment
Burada “test” koddan əvvəl doğulur — test də SPEC-dən çıxır.
Bəzən buna living specification də deyilir.
Burada ən kritik anlayışlar
Spec-də qeyri-müəyyənlik olmamalıdır
icazə verilmiş və verilməmiş hallar yazılmalıdır
Edge case-lər əvvəlcədən təsvir olunmalıdır
Data flow diagramları mütləq olmalıdır
Terminlər lüğəti yaradılmalıdır
Çünki SPEC nə qədər zərifdirsə - implementasiya da bir o qədər təmiz olur.
Spec-driven development vs. Agile
Bir çoxları düşünür ki Agile sənədləşmə azdır deyir — bu yanlışdır.
Agile-də sənəd az deyil, lazımsız sənəd azdır.
Spec isə lazımlı sənəddir.
Sprint-də belə olur:
- Sprint-dən əvvəl SPEC çıxır
- Story-də acceptance criteria SPEC-dən gəlir
- PR review-də SPEC-ə uyğunluq yoxlanır
Yəni SPEC həm plan, həm nəzarət mexanizmidir.
Bu yanaşma niyə trenddədir?
Çünki AI-də yeni dövr başlayıb.
Claude Code, o1, Dev-agents kimi sistemlər SPEC oxumağı sevir.
AI-yə SPEC verirsən -> AI sənə:
- modul strukturu
- API endpointləri
- service orchestration planı
- class hierarchy
təklif edir.
Əgər SPEC olmayan layihədə AI işləyirsə -> nəticə xaotik olacaq.
indi düzgün yanaşma belədir:
Əvvəl SPEC -> sonra AI-nin kod generasiyası
Və sən artıq sadəcə nəticəni yoxlayırsan.
Nəticə olaraq
Spec-driven development - kod yazmağı mühəndislikdən məhsul idarəsinə çevirir.
Deyir ki:
“Kod nəticə deyil. Kod nəticəni həyata keçirən mexanizmdir.”
Nəticə isə SPEC-də doğulur.
üzv ol
şərhlər: