Daudzi cilvēki ir paziņojuši, ka ChatGPT var rakstīt mūsu esejas, gleznot attēlus un atbildēt uz mūsu meklēšanas vaicājumiem. Bet vai tā var arī kodēt?

Viens no lielākajiem ChatGPT ažiotāžas apgalvojumiem ir tas, ka tas var būt efektīvs programmēšanas rīks. Ideja ir šāda: jūs aprakstāt to, ko vēlaties dabiskā valodā; tērzēšanas robots ģenerē kodu, kas tieši to dara. Bet cik labi patiesībā ChatGPT to dara?

Kāds ir labāks veids, kā to noskaidrot, kā pārbaudīt? Mēs lūdzām ChatGPT izveidot vienkāršu tīmekļa lietotni no nulles. Šeit ir mūsu testa rezultāts un darbības, kuras varat veikt, lai izveidotu vietni no jauna, izmantojot ChatGPT.

1. darbība: ģenerējiet jūsu tīmekļa lietotnes plānu

Tāpat kā jūs to darītu, veidojot tīmekļa lietotni ar jebkuru rīku, jums ir jāizklāsta projekts vēlaties, lai jūsu lietotne izskatītos, un darbības, kas jāveic tās izveidei, pirms ļaujat ChatGPT palaist parādīt.

Pirmajam uzdevumam mēs lūdzām ChatGPT izstrādāt vienkāršas tērzēšanas lietotnes projektu. Lai to izdarītu, mēs aprakstījām prasības mūsu tīmekļa lietotnei un pēc tam lūdzām tērzēšanas robotam detalizēti izstrādāt programmas izstrādes plānu.

Pēc iepriekš minētās uzvednes izmantošanas mēs saņēmām šādu rezultātu:

Lai izveidotu blokshēmu, kas līdzīga mūsu iepriekš redzamajai, savā ChatGPT kontā ir jāiespējo spraudnis “Rādīt man”. Jūs varat instalējiet un izmantojiet ChatGPT spraudņus tikai dažas darbības, lai gan jums būs nepieciešams premium klases abonements.

Bez spraudņa jūs iegūsit uz tekstu balstītu projektu vai ASCII mākslas blokshēmu. Tas joprojām ir labi. Pat bez spraudņa ChatGPT joprojām ir jānodrošina skaidrs lietotnes projekts, piemēram, tālāk redzamajā piemērā.

2. darbība: projekta sadalīšana mazākos moduļos

Tagad, kad esam izveidojuši kopējo attēlu, mēs lūdzām ChatGPT palīdzību, lai sadalītu lietotni mazākos komponentos, kurus varam izstrādāt atsevišķi un pēc tam integrēt, lai izveidotu pilnīgu tīmekļa lietotni. ChatGPT ieteica to sadalīt trīs komponentos:

  1. Reģistrācijas modulis
  2. Pieteikšanās modulis
  3. Tērzēšanas modulis

Mums bija citas idejas, taču mērķis ir ļaut ChatGPT piezvanīt.

1. Reģistrācijas komponenta izveide

Mēs sākām tieši izveidot reģistrācijas komponentu. Mēs lūdzām ChatGPT izstrādāt atbilstošu algoritmu. Šeit mēs iejaucāmies, norādot, ka reģistrācijai ir nepieciešams tikai lietotāja lietotājvārds, e-pasts un iemiesojums. Lūk, uzvedne:

Un lūk rezultāts:

Tālāk mēs aicinājām ChatGPT izveidot reģistrācijas komponentu.

Lai gan mēs reģistrācijas procesā neiekļāvām paroles lauku, ChatGPT veica pareizo izsaukumu, iekļaujot to ģenerētajā HTML kodā. Mēs nokopējām kodu bez izmaiņām, un lūk, kā tas izskatās pārlūkprogrammā.

Tālāk mēs aicinājām ChatGPT ģenerēt PHP reģistrācijas skriptu. Sākumā mēs aicinājām “Uzrakstiet PHP kodu servera puses loģikai, lai apstrādātu veidlapas iesniegšanu”. Lai gan ģenerētais skripts darbojās labi, tam bija daudz ievainojamību.

Nebija paroles jaukšanas, kļūdu apstrādes, un tika veikta SQL injekcija — ChatGPT izdarīja tikai pašu minimumu. To labot bija salīdzinoši viegli. Mēs vienkārši lūdzām ChatGPT “identificēt visu, kas nav kārtībā ar tikko ģenerēto kodu, un pēc tam izmantojiet identificētos punktus, lai optimizētu kodu." Līdz ar to mūsu PHP reģistrācijas skripts bija gatavs aiziet.

Jūsu uzvednes formulējumam ir nozīme. Jums ir ļoti skaidri un konkrēti jānorāda, kas jums jādara ChatGPT. Kad mēs vienkārši lūdzām tai "novērst problēmu ar šo kodu", tas neatrisināja lielāko daļu no tā, ko mēs cerējām, ka tas tiks novērsts. Papildinformāciju par ChatGPT uzvedņu rakstīšanu skatiet šeit dažas vietas, kur iemācīties rakstīt efektīvas uzvednes.

Tālāk mēs lūdzām ChatGPT:Uzrakstiet SQL kodu, lai izveidotu datubāzi PHP skriptā uzņemtajiem datiem."Lūk, iegūtais SQL kods:

Un šeit ir tabula, kas izveidota, izpildot SQL:

Kad datu bāze bija izveidota, mēs izmēģinājām savu pirmo reģistrāciju, un tā darbojās bez kļūdām.

2. Pieteikšanās komponenta izveide

Kad reģistrācijas komponents nebija pieejams, mēs izmantojām pieteikšanās komponentu. Pārsteidzoši, to bija visvieglāk izveidot, neskatoties uz papildu sesiju pārvaldības loģiku.

Šeit ir ģenerētā pieteikšanās lapa. Galvenais akcents ir tas, ka tajā tiek izmantotas tādas pašas krāsu opcijas kā reģistrācijas lapā.

Pēc faila "server.login.php" izveidošanas, kā norādīts ChatGPT, un pievienojot ģenerēto PHP skriptu, mēs veicām pirmo veiksmīgo pieteikšanos bez jebkādām izmaiņām vai atkļūdošanas.

3. Tērzēšanas komponenta izveide

Tērzēšanas komponenta izveide bija mūsu mazā eksperimenta pēdējā un, iespējams, grūtākā daļa. Sākumā mēs vienkārši lūdzām ChatGPT izrakstīt tērzēšanas komponenta kodu. Lieki piebilst, ka tā bija kolosāla neveiksme. Ja vēlaties izveidot sarežģītākus komponentus, tas ir jāsadala mazākos komponentos un jārisina viens pēc otra.

Mēs lūdzām ChatGPT ieteikumus par tērzēšanas komponenta sadalīšanu, un tas ieteica izveidot trīs lapas:

  1. Chat.php
  2. Send-messages.php
  3. Fetch-messages.php

Ja ChatGPT iesaka faila nosaukumu, cita nosaukuma izmantošana projektā var nejauši izraisīt problēmas, jo tērzēšanas robots atsaucēs uz vienu un to pašu nosaukumu visā kodā, ko tas izveido visā projektu. Mēs uzzinājām grūtāko ceļu. Nepieļaujiet to pašu kļūdu.

Chat.php lapas izveide

Lai sāktu, mēs sniedzām ChatGPT detalizētus norādījumus par to, kā vēlamies izskatīties tērzēšanas saskarnei.

Pēc ģenerētā HTML koda palaišanas mums bija tērzēšanas interfeiss bez ziņojuma ievades lodziņa. Lai to labotu, mēs vienkārši aicinājām ChatGPT uz "pārrakstiet kodu, iekļaujot ziņojuma ievades lodziņu un sūtīšanas pogu.Lūk, kā ģenerētais kods izskatās pārlūkprogrammā otrajā izmēģinājuma versijā.

Ikreiz, kad ģenerētais kods nesniedz vēlamos rezultātus vai izlaiž kādu svarīgu komponentu, vienkārši aiciniet ChatGPT pārrakstīt pēdējo kodu. Pasakiet tai iekļaut komponentu vai darīt visu, kas netika darīts sākotnējā kodā. Šeit ir daži padomi par ChatGPT izmantošanu programmēšanai.

Lapu "sūtīšanas ziņojumi.php" un "Fetch-messages" izveide

Apmierināti ar saskarni, mēs turpinājām veidot skriptu, lai apstrādātu tērzēšanas loģiku. Lai varētu nosūtīt un ienest ziņojumus no datu bāzes, ChatGPT pareizi uzsvēra, ka mums būs nepieciešama "ziņojumu" tabula. Mēs lūdzām tērzēšanas robotam izveidot SQL ziņojumu tabulai.

Pēc SQL koda ģenerēšanas mēs lūdzām tērzēšanas robotam ģenerēt PHP skriptu, lai apstrādātu ziņojumapmaiņas loģiku.

ChatGPT ģenerēja skriptu gan lapām "send-messages.php", gan "fetch-messages.php". Palaižot abus skriptus, mums beidzot bija pirmā kļūda (kas bija dīvaini apmierinoša). Iedziļināties projektā, neatkļūdojot nevienu koda rindiņu, šķita pārāk labi, lai būtu patiesība, neskatoties uz tā relatīvo vienkāršību.

Izrādās, kļūdu izraisīja ChatGPT, ieviešot nedeklarēta sesijas mainīgā ($_SESSION['lietotāja_id']) mūsu skriptā. Mums ir aizdomas, ka tas bija diezgan ilgas projekta pārtraukuma rezultāts, kā rezultātā ChatGPT aizmirst dažus kontekstus un projektā izmantoto mainīgo lielumu nosaukumus.

Izmantojot ChatGPT, lai izveidotu lietotni, noteikti izmantojiet to pašu tērzēšanas pavedienu un mēģiniet pēc iespējas ātrāk pabeigt saistītos komponentus. Izmantojot jaunu tērzēšanas pavedienu vai ilgu pārtraukumu, var rasties neatbilstības. Ja starp kodēšanas sesijām veicat ilgus pārtraukumus, ChatGPT mēdz aizmirst dažas pašreizējā projekta detaļas (piemēram, krāsu shēmu).

Tas nozīmē, ka mēs labojām kļūdu un izvietojām kodu. Mēs reģistrējāmies, pieteicāmies un izmēģinājām tērzēšanas funkciju. Kamēr mēs varējām nosūtīt ziņojumus no viena reģistrēta lietotāja citam, ziņu burbuļu krāsa un izvietojums bija nedaudz nepareizs. Tomēr par lietotni, kuras pabeigšana prasīja stundu un 23 minūtes, mēs to nevērtēsim pārāk skarbi.

ChatGPT: lielisks kodēšanas palīgs

ChatGPT nepārprotami ir spēcīgs kodēšanas palīgs. Tas, ka tērzēšanas robots var iegūt iespaidīgu kodu, izmantojot vienkāršas un dažreiz ne tik skaidras instrukcijas, liecina par tā kodēšanas spējām.

Protams, tam joprojām ir daudz trūkumu. Liela problēma ir problēma ar ierobežotu konteksta logu un tā spēju sasaistīt loģiku no vairākiem neatkarīgi veidotiem komponentiem. Tomēr tērzēšanas robots var palīdzēt ātri izveidot diezgan sarežģītas tīmekļa lietotnes, ja zināt, kā rīkoties.