Yeqa uye kokuyinhloko
Izifundo ze-AI

Yakha Ama-Backend Akhiqizwa yi-AI Abikezelwayo nge-kybes

Lesi sifundo sichaza ukuthi i-kybes iwaguqula kanjani ama-schema esizindalwazi e-YAML abe amamodeli angaguquki e-C#, Python, TypeScript, nase-Java. Uzofaka i-plugin ye-Claude Code, ulungiselele iphrojekthi, uchaze amathebula nama-query, usebenzise ama-repository akhiqiziwe, wengeze izindlela zangokwezifiso ngokuphepha, futhi uqinisekise ukwakheka nge-hooks nangokuhlolwa kwe-CI.

Yakha Ama-Backend Akhiqizwa yi-AI Abikezelwayo nge-kybes

Lokho okwenziwa yi-kybes

kybes iyi-plugin ye-Claude Code yokukhiqiza ikhodi ye-backend ebikezelwa ngendlela engaguquki kusuka kuma-schema edathabheyisi e-YAML. Ihlanganisa amafolda, amagama wamafayela, izindlela zama-repository, ukuqinisekisa idatha, i-pagination, ama-transaction, ama-index, kanye nama-test kuwo wonke amaphrojekthi e-C#, Python, TypeScript, nase-Java.

Esikhundleni sokucela i-ejenti ye-AI ukuthi ikhumbule idokhumenti ye-architecture, i-kybes iphoqelela leyo architecture ngokukhiqiza okunqunywe kusengaphambili, ama-ejenti azinikele, imithetho eqondene namafolda, ama-hook, kanye nokuhlolwa kwe-CI. I-schema efanayo ikhiqiza okukhiphayo okufana ncamashi ngamabhayithi kuwo wonke amaphrojekthi.

Umthetho oyinhloko ulula: i-schema iwumthombo weqiniso, amafayela akhiqiziwe awahlelwa ngesandla, futhi ukuziphatha okwenziwe ngokwezifiso kufanele kube kufayela le-model elihambisana nethebula laso.

Indlela isakhiwo esikhiqiziwe esisebenza ngayo

Ngethebula ngalinye, i-kybes idala izingqimba ezimbili ze-model:

  • model/generated/<Table> iqukethe ama-entity akhiqiziwe, imisebenzi ye-CRUD, ubudlelwano, ama-query achaziwe, i-cursor pagination, kanye nokuqinisekisa idatha. Lawa mafayela akhiqizwa kabusha futhi akufanele ahlelwe.
  • model/<Table> iyindawo ephephile yezindlela ezenziwe ngokwezifiso. I-C# isebenzisa i-partial class, kanti i-Python, i-TypeScript, ne-Java zisebenzisa indlela esekelwe ku-subclass.

Iphrojekthi evamile iphinde ibe nama-JSON Schema akhiqiziwe, i-PostgreSQL DDL, ukuhlaziywa kwama-index, i-index yamafayela e-model, kanye nama-artifact okuqinisekisa akhiqiziwe.

Faka i-kybes

Faka nge-Claude Code

Kusuka ku-Claude Code, engeza i-marketplace bese ufaka i-plugin:

/plugin marketplace add ivandilelio/kybes
/plugin install kybes@kybes

Ngaphakathi kwephrojekthi okuqondiswe kuyo, cela u-Claude Code ukuthi set up kybes in this project. Ikhono le-kybes:kybes-init libuza ukuthi yiziphi izilimi zama-model ozidingayo bese lidala ukumiswa, imithetho yezindlela, imiyalelo ye-CLAUDE.md, i-scaffold ongayikhetha, kanye ne-workflow ye-CI.

Ama-hook ahlala engasebenzi kuma-repository angakaqaliswa.

Faka ngomugqa womyalo

Ungakwazi futhi ukwenza i-clone ye-repository bese usebenzisa i-installer:

git clone https://github.com/ivandilelio/kybes
kybes/install.sh --target /path/to/project --scaffold --examples \
  --model-langs csharp,python,typescript,java

I-installer ingasetshenziswa izikhathi eziningi ngaphandle kokuphinda idale izinkinga. Ngemva kokwenza i-clone yephrojekthi emisiwe, ozakwethu badinga kuphela ukusebenzisa tools/kybes/setup.sh kanye.

Hlola izidingo

Ama-hook kanye ne-generator kudinga i-python3 esebenzisa kuphela i-standard library. Ama-runtime akhiqiziwe adinga ama-dependency olimi oluhambisanayo:

  • C#: net8.0, i-Entity Framework Core 8, kanye ne-provider efana ne-Npgsql.
  • Python: i-Python 3.9 noma entsha kanye ne-SQLAlchemy 2.
  • TypeScript: i-TypeORM, reflect-metadata, kanye nezinketho ze-compiler ezivuliwe ze-experimentalDecorators ne-emitDecoratorMetadata.
  • Java: i-Jakarta Persistence 3.1, i-Hibernate 6.2 noma entsha, kanye ne-Jackson yamakholomu e-json.

Chaza i-schema yedathabheyisi

Dala ifayela le-YAML ngaphansi kwe-schemas/db. Isibonelo esilandelayo sichaza ithebula lama-oda elinenombolo ye-oda engaphindeki, ubudlelwano bekhasimende obudingekayo, i-query echaziwe, kanye ne-cursor pagination ehleleka:

table: Ordini
columns:
  - { name: Id, type: uuid, primary_key: true }
  - { name: Numero, type: string, length: 20, required: true, unique: true }
  - { name: ClienteId, type: uuid, required: true }
  - { name: Data, type: date, required: true }
relations:
  - { name: Cliente, kind: many_to_one, target: Clienti, foreign_key: ClienteId }
queries:
  - name: DelClienteDal
    where: [ClienteId, { column: Data, op: gte, param: DaData }]
    order_by: [{ column: Data, dir: desc }]
pagination:
  default_order: [{ column: Data, dir: desc }]
  sortable: [Data, Numero]

Gcina ifayela njenge-schemas/db/Ordini.yaml. Ushintsho ku-schema luqala ukukhiqizwa kabusha kwezilimi ezimisiwe, lubuyekeze i-index ye-model, futhi lubale kabusha izincomo zama-index.

Sebenzisa i-API ekhiqiziwe

Ngeschema sesibonelo, i-kybes ikhiqiza amakhono alinganayo e-repository ngolimi ngalunye. Ukuqanjwa kwamagama kulandela imithetho yolimi okuqondiswe kulo:

  • Funda ngokhiye: GetByIdAsync ku-C#, get_by_id ku-Python, kanye ne-getById ku-TypeScript noma ku-Java.
  • I-cursor pagination: ListPageAsync, list_page, noma listPage.
  • Ukusesha ngekholomu engaphindeki: FindByNumeroAsync, find_by_numero, noma findByNumero.
  • Ukusesha ngokhiye wangaphandle: ListByClienteIdAsync, list_by_cliente_id, noma listByClienteId.
  • I-query echaziwe: ListDelClienteDalAsync, list_del_cliente_dal, noma listDelClienteDal.

I-API ekhiqiziwe iphinde inikeze ngemisebenzi yokuqinisekisa yokudala, yokubuyekeza, neyokususa, ama-accessor obudlelwano, kanye namakhasi asekelwe ku-cursor amelwe yi-request nekhasi eliqukethe izinto kanye ne-cursor elandelayo.

Chaza ama-query esikhundleni sokubhala ukufinyelela kwedatha kuma-handler

Faka izimo ze-query ezisekelwayo ku-schema esikhundleni sokungenisa i-ORM noma i-database driver ku-Lambda, service, noma controller. I-kybes isekela ama-operator afaka i-eq, ne, lt, lte, gt, gte, in, prefix, kanye ne-is_null.

I-generator idala indlela ye-repository futhi ihlaziye indlela yokufinyelela kuyo. Esibonelweni, izimo zokhiye wangaphandle nezosuku ziholela ku-index eku-(ClienteId, Data). Lesi sinqumo sigcinwa ku-db/generated/indexes.md.

Engeza ukuziphatha okwenziwe ngokwezifiso ku-model

Lapho izindlela ezikhiqiziwe zinganele, engeza izindlela zangokwezifiso kufayela lemodeli elingakhiqiziwe, njenge-model/Fornitori.py noma ifayela elilingana nalo lolimi olukhethiwe. Ungahleleli ukuqaliswa okukhiqiziwe.

Izindlela zangokwezifiso akufanele zingqubuzane namagama ezindlela ezikhiqiziwe. Zidinga futhi ukuhlolwa okulandelekayo ku-tests/custom/ ngaphambi kokuba umsebenzi uphele. Ifomethi elindelekile yesihlonzi sokuhlolwa ithi TC-<Table>-….

Gcina ukufinyelela kudatha ngaphakathi kongqimba lwemodeli. Umphathi kufanele abize indlela yemodeli ekhiqiziwe noma yangokwezifiso, angazakheli eyakhe imibuzo ye-SQLAlchemy, Entity Framework, TypeORM, noma Hibernate.

Qonda imikhawulo ye-kybes

Ama-hook e-kybes asebenza kuyo yonke inqubo yokuthuthukisa. Ngaphambi kokubhala, angavimba ukungeniswa kwe-ORM noma kwe-database driver ngaphandle kwemodeli, ukuhlelwa kwamafayela akhiqiziwe, amafolda amamodeli angavumelekile, ukungqubuzana kwezindlela, nezimfihlo ezibhalwe ngokusobala.

Ngemva kokubhala i-schema, i-kybes ingakhiqiza kabusha amamodeli, isebenzise ama-linter, futhi ibike izinkinga zokwakheka. Ngaphambi kokuqedwa, i-agent eyinhloko nawo wonke ama-subagent kufanele aphumelele ukuhlolwa kokwakheka, ukuhlolwa kwe-generator, iskripthi sokuqinisekisa, nemiyalo yokuhlola yephrojekthi.

Ukuhlolwa okuzenzakalelayo kwe-stop-gate kufaka:

  • arch_check, okuhlanganisa ukutholwa kwamabhulokhi aphindaphindiwe emigqa eyisishiyagalombili noma ngaphezulu.
  • gen --check yokuqinisekisa ukuthi okukhiqiziwe kusesikhathini.
  • verify.py yokuhlola amamodeli nemikhawulo ye-coverage ngokwe-ASIL.
  • Imiyalo yokuhlola yephrojekthi uqobo.

Lokhu kuhlolwa okufanayo kuyasebenza ku-CI nge---strict. Imithetho ingalungiselelwa njenge-block, warn, noma off ku-.claude/kybes.config.json. I-agent ayivunyelwe ukushintsha leli fayela lokumisa.

Sebenzisa ama-transaction, i-pagination, nama-index ngokuphepha

i-kybes ikhiqiza i-cursor pagination kusukela ekuhlelweni okuzenzakalelayo kwe-schema namakholomu avunyelwe ukuhlelwa. Lokhu kukhiqiza isicelo sekhasi esisekelwe ku-keyset nekhasi eliqukethe izinto kanye ne-cursor elandelayo. Amafomethi ama-cursor ayabelwana ngawo kuzo zonke izilimi ezisekelwayo, okusiza izinsizakalo namaklayenti ahlukene ukuthi asebenzisane.

Ama-transaction asebenzisa i-Unit of Work enamazinga okuhlukanisa ngokwethebula kanye nokuphinda kuzanywe okuzenzakalelayo lapho kuba nokwehluleka kwe-serialization nama-deadlock. Izindlela zokufinyelela ezimenyezelwe ziyahlaziywa ukuze kutholakale ama-index afanele; ama-index angekho ayakhiwa futhi ama-index aphindaphindiwe ayamakwa. Ukusesha kwezinqamuleli kungasebenzisa i-PostgreSQL varchar_pattern_ops lapho kufaneleka.

Lungiselela i-multi-tenancy

I-multi-tenancy ingalungiselelwa ithebula ngalinye kusetshenziswa elinye lamasu asekelwayo:

  • Ikholomu ye-tenant, lapho zonke izindlela ezikhiqiziwe zihluzwa khona futhi imikhawulo eyingqayizivele ibekwe ngokwe-tenant.
  • I-PostgreSQL row-level security.
  • I-schema eyodwa nge-tenant ngayinye.
  • I-database eyodwa nge-tenant ngayinye.

I-tenant iboshelwa ku-ORM session, futhi i-kybes ikhiqiza ukuhlolwa kokuhlukanisa kwesu elilungiselelwe.

Buyekeza ukwakheka kwephrojekthi ekhiqiziwe

Iphrojekthi elungiselelwe ilandela isakhiwo esibikezelwayo:

your-project/
├── schemas/db/<Table>.yaml
├── schemas/generated/json/<Table>.schema.json
├── libs/db-models/<language>/…/model/
│   ├── <Table>.{cs,py,ts} | <Table>Repository.java
│   └── generated/
├── libs/db-models/<language>/tests/
│   ├── generated/
│   └── custom/
├── docs/generated/verification/
├── db/generated/ddl/postgres/_all.sql
├── services/<context>/{functions,ms}/
├── jobs/
├── libs/utils/
├── libs/errors/
├── frontend/
├── infra/
├── MODEL_INDEX.md
└── .claude/kybes.config.json

Konke okungaphansi kwefolda ethi generated/ kungokwe-kybes. Amanye amafayela amamodeli, ukuhlolwa kwangokwezifiso, ama-schema, nekhodi yohlelo kugcinwa yithimba lakho ngokwemithetho elungiselelwe.

Qinisekisa umphumela

Indawo yokugcina ihlanganisa ukuqinisekiswa kwekhodi ekhiqiziwe, ama-hook, i-SQL, nokuziphatha kwezilimi ezahlukene. Ukuhlolwa kuhlanganisa i-CRUD, ubudlelwano, ama-cascade, imikhawulo eyingqayizivele, izimo ezikhethekile ze-pagination, ama-operator emibuzo, nokuziphatha kwe-Unit of Work.

Ukuhlolwa kweyunithi okukhiqiziwe kuthola izidingo namacala okuhlola ku-schema ngayinye. Inqubo yokuqinisekisa ihlanganisa ama-equivalence class, amanani emingcele, ukuqagela amaphutha, i-MC/DC ye-ASIL C no-D, ukulandeleka, nemikhawulo ye-coverage ngethebula ngalinye. Indawo yokugcina iphinde ihlole ukuthi i-PostgreSQL DDL ekhiqiziwe iyahlukaniseka kahle nokuthi ama-cursor akhiqizwe olunye ulimi olusekelwayo angamukelwa ezinye.

Emsebenzini obalulekile kwezokuphepha, i-kybes izenzekelayo izingxenye ze-ISO 26262-6 ezingeni leyunithi yesofthiwe, kodwa ayithathi indawo yohlelo oluphelele lokuphepha, ukuhlaziywa kwezingozi, ukuqinisekiswa kwethuluzi, ukubuyekezwa okuzimele, noma inqubo yesitifiketi yenhlangano.

Isiphetho

i-kybes inikeza inqubo egxile ku-schema yezinsizakalo zangemuva ezikhiqizwa yi-AI ngendlela ebikezelayo. Chaza amathebula, ubudlelwano, imibuzo, i-pagination, nemithetho ye-tenancy kanye kuphela; vumela i-generator enqumayo ukuthi idale amamodeli aqondene nolimi, ama-index, i-DDL, ukuqinisekiswa, nokuhlolwa; bese ubeka ukuziphatha kwangokwezifiso kungqimba lwemodeli oluvunyiwe.

Nge-Claude Code agents, ama-hook ngesikhathi sokubhala, ukutholwa kwekhodi ephindaphindiwe, ukuqinisekiswa okukhiqiziwe, nokuhlolwa okuqinile kwe-CI, iphrojekthi ihlala ihambisana njengoba i-codebase nomongo we-AI kukhula. Ukuze uthole inkomba ejulile, hlola imibhalo yephrojekthi kanye nendawo yokugcina ikhodi.