𝗖𝗼𝗱𝗲 𝗔𝘆𝗼 𝗔𝗜 𝗛𝗮𝗶𝘁𝗮𝗮𝗻𝗱𝗶𝗸𝗮
Ninatumia uhakiki wa fomu (form validation) kama swali la mahojiano ya kiufundi. Inaonekana rahisi. Majibu hufichua jinsi watu wanavyofikiri.
Nilijaribu tatizo hili kwenye Claude, ChatGPT, na Gemini. Zote zilifikia suluhisho zilezile.
Watu wengi hutumia function moja yenye type parameter kushughulikia anwani tofauti. Inafanya kazi. Lakini kila sheria mpya huongeza tawi jipya kwenye function hiyo hiyo. Tofauti hubaki zikiwa zimejificha.
Jibu la kibinadamu lenye akili zaidi nililoliona lilitumia recursion. Linapitia muundo wa data. Ni la kuvutia. Lakini lina kasoro. Linahakiki tu sehemu (fields) zilizopo. Ikiwa funguo (key) imepotea, function hiyo haitaiona kamwe. Haina chanzo cha ukweli (source of truth).
AI zote tatu zilifanya kosa hili hili. Nilipobainisha kasoro hiyo, zote zilipendekeza schema. Mbinu inayozingatia schema (schema-driven approach) ni thabiti kiufundi. Inashughulikia funguo zilizopotea na inaweza kukua vizuri.
Lakini kuna njia bora zaidi: Composition.
Badala ya function moja kubwa au schema tata, unatengeneza function mahususi kwa kila aina.
- Function moja kwa anwani ya kawaida.
- Function moja kwa usafirishaji (shipping).
- Function moja kwa malipo (billing).
Unaziunganisha ili kujenga uhakiki wako (validator).
Mbinu hii inatatua tatizo la funguo zilizopotea. Uhakiki wa malipo (billing validator) daima hukagua namba ya VAT, hata kama funguo hiyo haipo. Inafanya kazi kwa sababu anwani ya malipo ni dhana halisi ya biashara. Si muundo tu katika data yako.
Tofauti huonyeshwa waziwazi. Aina mpya ya anwani inapokuja, unaongeza function mpya. Humbadili kodi ya zamani.
AI na wahandisi bora mara nyingi huangukia mtego uleule. Tunafundishwa kutafuta miundo (patterns) na kuweka mantiki sehemu moja (centralize logic). Tunajaribu kuondoa marudio kwa gharama yoyote ile.
AI hurithi silika hii kutoka kwenye data yetu ya mafunzo. Inapa kipaumbele u-generalize (generalization).
Tatizo si kwamba AI iko kimakosa. Ni kwamba AI mara chache huuliza swali muhimu zaidi: Je, mabadiliko haya yapo kwenye kodi yangu au kwenye data yangu?
Ikiwa aina za anwani ni thabiti, tumia composition. Ikiwa aina za anwani zinabadilika kupitia data ya nje, tumia schema.
Suluhisho rahisi zaidi si lile lenye mistari michache zaidi. Ni lile linaloakisi uwanja wa biashara yako (business domain).
Source: https://dev.to/iceonfire/the-code-ai-wont-write-1ieb
Optional learning community: https://t.me/GyaanSetuAi