← 返回列表

Ingqungquthela Yengxoxo Ye-AI 16: I-spec coding enhle kufanele ibe kanjani?

I-spec coding enhle (ukuhlela okwenziwa yi-spec), umongo wayo ukuguqula 'imibono engaqondakali' ibe 'isivumelwano esiqondile, esiqinisekiswayo, futhi esenziwayo'. Akusikho nje ukubhala idokhumenti, kodwa ukwakha ulimi lokuxhumana olungenakugxambukela phakathi komuntu ne-AI (noma umuntu nomuntu). Ngezansi ngizokunikeza isikhombisi se-spec enhle ngemikhakha emine: isakhiwo se-spec, izimiso zokubhala, inqubo yokusebenzisana ne-AI, nokuqinisekisa ikhwalithi.


1. Isakhiwo esijwayelekile sedokhumenti ye-spec (ngesibonelo semojula yomsebenzi)

Isahluko Okuphoqelekile Isibonelo
1. Inhloso nobubanzi Ichaza ngomusho ukuthi kwenziwani, kucaciswe okungenziwa "Senza i-API yokubhalisa umsebenzisi, akufaki ukuqinisekisa i-imeyili"
2. Isivumelwano sokufaka/okukhiphayo Isakhiwo sedatha, uhlobo, amasimu aphoqelekile/okukhetha, amanani ayizibonelo Umzimba wesicelo {email: string, password: string}, impendulo 201 noma 400 enekhodi yephutha
3. Ukuziphatha nengqikathi Imithetho yebhizinisi, izimo zemikhawulo, ukushintsha kwesimo Ubude bephasiwedi 8-20 amasign, okungenani inombolo eyodwa; uma i-imeyili isikhona buyisela 409
4. Ukusingatha amaphutha Zonke izimo ezingavamile ezingenzeka kanye nezikhodi/imilayezo yamaphutha Ukuhluleka kokuxhuma database → buyisela 503, ungabezi isitaki
5. Izidingo ezingezona ezenziwayo Ukusebenza (isikhathi sokuphendula < 200ms), ukuphepha (imibuzo enemikhawulo), amalogi, ukubonakala Wonke ama-SQL kufanele asebenzise ukuhlanganiswa kwangaphambili; qopha email kodwa ungaqophi password
6. Izimo zokuhlola (ezibalulekile) Okungenani izimo ezi-3 ezijwayelekile + izimo ezi-2 zemikhawulo/ezindala, unikeze okulindelekile Bona ithebula elingezansi
7. Izithembiso nezithiyo Yimuphi umtapo, inguqulo, okuguquguqukayo kwendawo Python 3.10+, FastAPI, okuguquguqukayo kwendawo DB_URL

Izimo zokuhlola isibonelo (ezifakiwe kuspec)

Isimo Okufakiwe Okulindelekile okukhiphayo
Ukubhalisa okujwayelekile email: a@b.com, pwd: Pass1234 201, buyisela i-user_id
Iphasiwedi imfushane kakhulu pwd: Ab1 400, ikhodi yephutha WEAK_PASSWORD
I-imeyili isivele ikhona I-imeyili efanayo 409, ikhodi yephutha EMAIL_EXISTS

I-spec enhle kufanele ibhale izimo zokuhlola kuqala, ngoba i-AI ingakwazi ukukhiqiza izivivinyo zamayunithi ngokuqondile ngazo, bese iqinisekisa ngokuzenzakalelayo.


2. Izimiso eziyinhloko zokubhala i-Spec (inguqulelo ye-SMART)

Isimiso Incazelo Isibonelo esiphambene
Ukucacile (Precise) Sebenzisa izinombolo eziqondile, izinhlobo, izimo ze-boolean, gwema 'ngangokunokwenzeka', 'imvamisa' ❌ 'Iphasiwedi kufanele iphephe ngokwanele' → ✅ 'Iphasiwedi okungenani ama-8, inamakapithali, amancane, izinombolo'
Okulungile (Verifiable) Isidingo ngasinye kufanele sihloleke ngokuhlolwa okuzenzakalelayo noma ukuhlolwa komuntu ukuthi sidlulile noma sehlulekile ❌ 'Ikhodi kufanele ibe nokuhle' → ✅ 'Ukuxaka kwesekethe yomsebenzi ≤ 10, azikho izingxenye zekhodi eziphindayo'
Okungenakugxambukela (Unambiguous) Igama elifanayo lichaza into efanayo kuyo yonke ingqungquthela, uma kunesidingo nikeza incazelo ❌ 'Uma umsebenzisi engekho, buyisela iphutha' → ✅ 'Umsebenzisi engekho → buyisela 404 kanye {code: 'USER_NOT_FOUND'}'
Okuphelele (Complete) Kuhlanganisa indlela ejabulisayo, zonke izindlela ezingavamile, nezidingo ezingezona ezenziwayo ❌ Kubhalwe izimo eziphumelelayo kuphela → ✅ Kuhlanganisa ukuphelelwa isikhathi kwedatabase, ukungabi namvume, njll.
Okwezinto (Atomic) I-spec eyodwa ichaza umsebenzi owodwa ozimele (ukuze i-AI ikwazi ukuwenza ngokugcwele) ❌ Sebenzisa i-spec eyodwa ukubhala 'uhlelo lonke lokukhokha' → ✅ Hlukanisa 'ukudala i-oda lokukhokha', 'ukuhlola isiginesha esakayo', 'ukubuyisela imali'

3. Inqubo ye-Spec Coding lapho usebenzisana ne-AI

  1. Umuntu ubhala i-spec (isakhiwo esingenhla, ikakhulukazi abhale izimo zokuhlola nezisayina zemisebenzi).
  2. Nikeza i-AI i-spec ngasikhathi sinye (ungafaki izidingo ngengxoxo, ukuze ugweme ukungcola kwe-vibe).
  3. I-AI ikhiphe ikhodi + izivivinyo zamayunithi (I-AI kufanele ikhiqize izivivinyo ezenzakalelayo ngokusekelwe ezimweni zokuhlola ezisephecini).
  4. Hlola izivivinyo: Uma zonke zidlulile, qhubeka; uma zingadluli, lungisa i-spec noma ikhodi ngokuqondile (kungase kube nesekethe encane, kodwa qopha izinguquko).
  5. Ukubuyekeza komuntu: Hlola ukuthi akukho misebenzi engaphandle kwe-spec okungeniwe (scope creep), hlola ukuphepha/ukusebenza.
  6. Hlanganisa: Thumela idokhumenti ye-spec nekhodi yokugcina endaweni yokugcina, njengombhalo ohlala njalo.

Umkhuba obalulekile: Ukuguqulwa kwe-spec kube yikhodi — sebenzisa spec.md + test_spec.py, lapho ifayela lokuhlola livela ngokuqondile ezibonelweni ezisephecini, ukuze uma ulungisa ikhodi ngemuva, usuke usebenza izivivinyo ukuqinisekisa ukuthi i-spec ayonakalanga.


4. Imiphumela ye-Spec enhle (ingasetshenziswa njengezindlela zokwamukela)

  • Ukucacisisa: I-spec efanayo inikwa ama-AI ahlukene (noma abantu abahlukene) ikhiqize ukusetshenziswa okufanayo.
  • Ukuhlolwa: Emva kokubhala ikhodi, ngukushesha kungaqinisekiswa ngokuzenzakalelayo ubuqiniso obungu-90%.
  • Ukwelashwa: Ngemuva kwengxenye yonyaka, noma ubani obheka i-spec angakwazi ukuqonda inhloso yedizayini yokuqala.
  • Izindleko eziphansi zokuxhumana: Lapho iqembu lixoxa, kuxoxwa nge-spec kuphela, hhayi imigqa yekhodi ethile.
  • Ukuphepha/ikhwalithi kufakiwe: Izidingo zokuphepha (njengemibuzo enemikhawulo) nezimo zemikhawulo zibhaliwe kuspec, i-AI kufanele izilandele.

5. Isibonelo se-Spec enhle (inguqulo elula kakhulu)

# Spec: I-API yokubhalisa umsebenzisi

## Ububanzi
- Thola i-imeyili, iphasiwedi
- Ayithumeli i-imeyili yokuqinisekisa, ayihloli ubuqiniso be-imeyili

## Isivumelwano
POST /register
Content-Type: application/json
Request: { "email": string, "password": string }
Response 201: { "user_id": string }
Response 400: { "code": "INVALID_PASSWORD" | "INVALID_EMAIL" }
Response 409: { "code": "EMAIL_ALREADY_EXISTS" }

## Ukuziphatha
- I-imeyili kufanele ihambisane nefomethi eyisisekelo ye-RFC 5322 (a@b.c)
- Iphasiwedi: ubude 8-20, okungenani inombolo eyodwa nohlamvu olukhulu olulodwa
- Sebenzisa i-bcrypt ukubhala ngendlela efihliwe, izindleko zikasawoti 10
- Uma ngaphambi kokugcina ku-database kutholakala ukuthi i-imeyili isivele ikhona → 409

## Izimo zokuhlola (okufakiwe -> ikhodi yesimo esilindelekile + inkambu yempendulo)
| Okufakiwe i-imeyili | iphasiwedi | Okulindelekile |
|------------|----------|------|
| test@x.com | Pass1234  | 201, user_id ikhona |
| test@x.com | pass      | 400, INVALID_PASSWORD |
| bad        | Pass1234  | 400, INVALID_EMAIL |
| I-imeyili esivele ikhona | Pass1234 | 409, EMAIL_ALREADY_EXISTS |

## Okungezona ezenziwayo
- Ama-SQL kufanele asebenzise imibuzo enemikhawulo (ukugwema ukufakwa okungenamlutha)
- Amalogi aqopha i-IP yomthombo wokubhalisa, angaqophi iphasiwedi
- Isikhathi sokuphendula 95% yezicelo < 100ms (ngaphandle kwe-bcrypt)

## Izithembiso
- Python 3.10+, FastAPI, bcrypt, asyncpg

I-Spec Coding enhle = ukubhala 'izinqumo zedizayini' zomuntu zibe 'izimo zokuhlola + isiginesha yohlobo + imikhawulo yokuziphatha' kwemishini, vumela i-AI ukuthi igcwalise ukusetshenziswa, kuyilapho umuntu ehlala elawula ikhwalithi nesiqondiso.

评论

暂无已展示的评论。

发表评论(匿名)