bugün məsləhət təsadüfi
sözaltı sözlük
postlar Yoxlama mesaj

...

spec-driven development

əjdahalar   googlla
psevdoelm - breaking bad - ssenari yazmaq - yazarların favorit oyunları - steven krantz - oecd - robert downey jr - call of duty: modern warfare 3 - riskbudur.az - stackoverflow.com
    1. Spec-driven development - proqram inkişafının elə bir yanaşmasıdır ki, burada prosesin start nöqtəsi kod deyil, dəqiqləşdirilmiş texniki spesifikasiya (SPEC) olur.

    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.

şərhlər:

hələ şərh yoxdur.


hamısını göstər

üzv ol

...