Programimi me AI dhe rreziku qe nuk thuhet
Publikuar: Muajin e kaluar
Sot, mjetet e inteligjences artificiale si GitHub Copilot, ChatGPT apo Claude jane bere asistentet e pandashem te cdo programuesi. Premtimi i tyre eshte tundues: shkruaj kod 10 here me shpejt. Dhe ne fakt, per funksione te izoluara apo skripte te shpejta, AI ben mrekulli.
Por cfare ndodh kur AI perfshihet masivisht ne projekte te gjera dhe komplekse?
Ajo qe po kalon ne heshtje eshte nje rrezik struktural. AI po ndihmon ne krijimin e kodit me nje shpejtesi marramendese, por ne te njejten kohe po mbush sistemet me nje borxh teknik te papare. Ajo qe sot duket si nje zgjidhje e shpejte dhe magjike, neser kthehet ne nje makth mirembajtjeje.
Ke degjuar per sindromen e vjeter "Gjithcka punon dhe askush se kupton"? AI eshte i shkelqyer per te dhene nje rezultat qe kalon testet e castit. Nese i kerkon nje zgjidhje, AI do te gjeneroje bllokun e kodit qe e ben ate pune. Megjithate, AI nuk ka intuite arkitekturore. Per te zgjidhur nje problem te ri, AI shpesh tenton te krijoje nje klase te re ose nje strukture te izoluar, ne vend qe te refaktorizoje dhe te perdore logjiken ekzistuese te projektit. Gjithashtu, AI nuk kujtohet se para tre ditesh ka shkruar nje funksion te ngjashem ne nje modul tjeter. A ndoshta ne nje tjeter folder, thjesht te pa-aksesueshme nga AI por e plote ne mendjen tende. Rezultati? Duplikim masiv i kodit me ndryshime minimale nuancash. AI ka mungese te theksuar riperdorshmerie (Don't Repeat Yourself - DRY).
Ne projekte te medha, ku perdoren arkitektura si MVC, Domain-Driven Design (DDD) apo Microservices, struktura eshte gjithcka. Kur programuesi mbeshtetet verberisht te AI per te shtuar funksionalitete te reja, hierarkia e projektit fillon e kalbet (Code Rot). Kjo ndodh sepse AI ka prirjen te zgjedhe rrugen me te shkurter per te kthyer pergjigjen. Kjo behet duke injektuar logjike biznesi brenda Controller-ave, duke krijuar varesi te ndersjella (tight coupling) midis klasave qe duhet te ishin te ndara, dhe duke ndertuar hierarki trashegimmie (inheritance) te cuditshme dhe konfuze vetem per te pershtatur nje model te dhenash te momentit. Pas pak muajsh, projekti kthehet ne nje spaghetti code ( sic oldschool-erat e quajne ) ku asnje programues i ri (dhe as ai qe e ka ndertuar vete) nuk e kupton dot ku fillon dhe ku mbaron rrjedha e te dhenave.
Eshte e vertete qe ne fillim, metrika e produktivitetit fluturon. Shtohen features te reja cdo dite. Menaxheret e projekteve jane te lumtur. Por ky eshte nje iluzion. Ligji i ri i programimit me AI thote qe koha qe kursen sot duke gjeneruar kod me AI, do te shpenzohet trefish neser duke bere debug dhe refactoring. Sepse kur vjen koha per te bere nje ndryshim rrenjesor ne sistem ose per te migruar nje databaze, kodi i gjeneruar pa nje linje te qarte udhezuese behet nje bllokade. Cdo modifikim ne nje pike thyen tre gjera te tjera ne module te paparashikueshme. Kostoja e mirembajtjes afatgjate (Maintenance Cost) rritet eksponencialisht, duke zhvleresuar plotesisht kohen e kursyer ne fillim.
Keshtu qe AI nuk duhet pare si nje zevendesues i trurit, por si nje makineri qe kerkon kontroll rigoroz te cilesise. Per te mbajtur projektet e shendetshme ne epoken e AI, staku teknik dhe manuali i punes duhet te ndryshojne:
1. AI eshte senior, por ti je arkitekt. Mos e ler AI te vendose se ku shkon kodi dhe si ndertohet struktura. Ti si programues duhet te diktosh arkitekturen dhe ti kerkosh AI vetem mbushjen e vrimave logjike brenda rregullave strikte te vendosura me pare.
2. Kodi i gjeneruar nga AI duhet te kaloje ne nje site me te imet se kodi i shkruar nga nje njeri. Pyetja kryesore nuk duhet te jete "A punon?", por "A pershtatet kjo me dizajnin tone dhe a eshte e riperdorshme?".
3. Nese perdori AI per te ecur shpejt, duhet te ndash kohe te dedikuar ne cdo sprint per te pastruar, konsoliduar klasat dhe thjeshtuar strukturen perpara se ajo te dale jashte kontrollit.
AI eshte nje mjet fantastik, por AI nuk mban pergjegjesi per te ardhmen e aplikacionit tend. Nese e perdor vetem per shpejtesi afatshkurter, po nderton keshtjella prej rere qe do te shemben ne ndryshimin e pare te kerkesave te klientit. Produktiviteti i vertete nuk eshte sa rreshta kod shkruan sot, por sa i lehte eshte ky kod te kuptohet dhe te ndryshohet pas dy vitesh.
Nuk ka komente