Monet ihmiset ovat julistaneet, että ChatGPT voi kirjoittaa esseitämme, maalata kuviamme ja vastata hakukyselyihimme. Mutta voiko se myös koodata?

Yksi ChatGPT: tä koskevan hypetyksen suurimmista väitteistä on, että se voi olla tehokas ohjelmointityökalu. Idea menee seuraavasti: kuvailet mitä haluat luonnollisella kielellä; chatbot luo koodin, joka tekee juuri sen. Mutta kuinka hyvä ChatGPT itse asiassa on tässä?

Mikä olisikaan parempi tapa saada se selville kuin testata? Pyysimme ChatGPT: tä rakentamaan yksinkertaisen verkkosovelluksen tyhjästä. Tässä on testimme tulos ja vaiheet, joiden avulla voit rakentaa verkkosivuston alusta alkaen ChatGPT: n avulla.

Vaihe 1: Luo suunnitelma verkkosovelluksellesi

Aivan kuten luot verkkosovellusta millä tahansa työkalulla, sinun on laadittava suunnitelma siitä, mitä haluat sovelluksesi näyttävän ja vaiheet, jotka sinun on tehtävä sen rakentamisessa, ennen kuin annat ChatGPT: n suorittaa näytä.

Ensimmäisessä tehtävässämme pyysimme ChatGPT: tä kehittämään suunnitelman yksinkertaiselle chat-sovellukselle. Tätä varten kuvailimme verkkosovelluksemme vaatimukset ja pyysimme sitten chatbotia laatimaan yksityiskohtaisen suunnitelman sovelluksen kehittämiseksi.

Yllä olevan kehotteen käytön jälkeen saimme seuraavan tuloksen:

Näytä minulle -laajennuksen on oltava käytössä ChatGPT-tililläsi, jotta voit luoda yllä olevan kaltaisen vuokaavion. Sinä pystyt asenna ja käytä ChatGPT-laajennuksia vain muutamassa vaiheessa, vaikka tarvitset premium-tilauksen.

Ilman laajennusta saat tekstipohjaisen suunnitelman tai ASCII-vuokaavion. Se on silti kunnossa. Myös ilman laajennusta ChatGPT: n pitäisi silti tarjota selkeä sovellussuunnitelma alla olevan esimerkin mukaisesti.

Vaihe 2: Piirroksen jakaminen pienemmiksi moduuleiksi

Nyt kun kokonaiskuva on luotu, pyysimme ChatGPT: ltä apua sovelluksen jakamisessa pienempiin osiin, jotka voimme kehittää erikseen ja sitten integroida kokonaiseksi verkkosovellukseksi. ChatGPT ehdotti sen jakamista kolmeen osaan:

  1. Rekisteröintimoduuli
  2. Kirjautumismoduuli
  3. Chat-moduuli

Meillä oli muitakin ideoita, mutta tässä on tarkoitus antaa ChatGPT: n tehdä asiat.

1. Rekisteröintikomponentin rakentaminen

Hyppäsimme heti rekisteröintikomponentin rakentamiseen. Pyysimme ChatGPT: tä laatimaan sopivan algoritmin. Tässä puutuimme asiaan tarkentamalla, että rekisteröintiä varten tarvitaan vain käyttäjän käyttäjätunnus, sähköpostiosoite ja avatar. Tässä on kehote:

Ja tässä tulos:

Seuraavaksi kehotimme ChatGPT: tä rakentamaan rekisteröintikomponentin.

Vaikka emme sisällyttäneet salasanakenttää osana rekisteröintiprosessia, ChatGPT teki oikean kutsun sisällyttämällä sen luotuun HTML-koodiin. Kopioimme koodin ilman muutoksia, ja tältä se näyttää selaimessa.

Seuraavaksi kehotimme ChatGPT: tä luomaan PHP-rekisteröintikomentosarjan. Aluksi pyysimme "Kirjoita PHP-koodi palvelinpuolen logiikkaa varten lomakkeen lähetyksen käsittelyä varten." Vaikka luotu skripti toimi hyvin, siinä oli paljon haavoittuvuuksia.

Ei ollut salasanojen hajautus, ei virheiden käsittelyä, ja se oli altis SQL-injektiolle – ChatGPT teki vain minimin. Tämän korjaaminen oli suhteellisen helppoa. Pyysimme vain ChatGPT: tä "tunnistamaan kaikki viat juuri luomassasi koodissa ja sitten käytä tunnistettuja pisteitä koodin optimointiin." Tämän jälkeen PHP-rekisteröintiskriptimme oli valmis mennä.

Kehotteen sanamuodolla on väliä. Sinun on kerrottava hyvin selkeästi ja tarkasti, mitä ChatGPT: n tarvitsee tehdä. Kun pyysimme sitä "korjaamaan tämän koodin ongelman", se ei korjannut suurinta osaa siitä, mitä olimme toivoneet sen korjaavan. Täältä löydät lisäohjeita ChatGPT-kehotteiden kirjoittamiseen joissain paikoissa voit oppia kirjoittamaan tehokkaita kehotteita.

Seuraavaksi pyysimme ChatGPT: tä "Kirjoita SQL-koodi luodaksesi tietokannan PHP-skriptillä tallennetuille tiedoille."Tässä on tuloksena saatu SQL-koodi:

Ja tässä on taulukko, joka on luotu suorittamalla SQL:

Kun tietokanta oli luotu, kokeilimme ensimmäistä rekisteröintiämme, ja se toimi ilman virheitä.

2. Kirjautumiskomponentin rakentaminen

Kun rekisteröintikomponentti oli poissa tieltä, otimme sisäänkirjautumiskomponentin. Yllättäen se oli helpoin rakentaa istunnonhallinnan lisälogiikasta huolimatta.

Tässä on luotu kirjautumissivu. Tärkein kohokohta on, että se käyttää samoja värivaihtoehtoja kuin rekisteröintisivu.

Kun olimme luoneet "server.login.php"-tiedoston ChatGPT: n ohjeiden mukaisesti ja lisänneet luodun PHP-skriptin, teimme ensimmäisen onnistuneen kirjautumisen ilman muutoksia tai virheenkorjausta.

3. Chat-komponentin rakentaminen

Keskustelukomponentin rakentaminen oli pienen kokeilumme viimeinen – ja luultavasti vaikein osa. Aluksi pyysimme vain ChatGPT: tä kirjoittamaan chat-komponentin koodin. Tarpeetonta sanoa, että se oli valtava epäonnistuminen. Jos haluat luoda monimutkaisempia komponentteja, sinun on jaettava se pienempiin osiin ja käsiteltävä niitä peräkkäin.

Pyysimme ChatGPT: ltä ehdotuksia chat-komponentin jakamisesta, ja se ehdotti, että luomme kolme sivua:

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

Kun ChatGPT ehdottaa tiedostonimeä, toisen nimen käyttäminen projektissa saattaa vahingossa aiheuttaa ongelmia, koska chatbot viittaa samaan nimeen kaikessa luomassaan koodissa hanke. Löysimme vaikean tien. Älä tee samaa virhettä.

Chat.php-sivun luominen

Aluksi annoimme ChatGPT: lle yksityiskohtaiset ohjeet siitä, miltä halusimme chat-käyttöliittymän näyttävän.

Luodun HTML-koodin suorittamisen jälkeen meillä oli chat-käyttöliittymä ilman viestin syöttöruutua. Korjataksemme tämän pyysimme ChatGPT: tä "kirjoita koodi uudelleen niin, että se sisältää viestin syöttöruudun ja lähetyspainikkeen." Tältä luotu koodi näyttää selaimessa toisella kokeilukerralla.

Aina kun luotu koodi ei anna toivottuja tuloksia tai jättää pois tärkeän osan, kehota ChatGPT: tä kirjoittamaan viimeinen koodi uudelleen. Pyydä sitä sisällyttämään komponentti tai tekemään mitä tahansa, mitä ei tehty alkuperäisessä koodissa. Tässä ovat muutamia vinkkejä ChatGPT: n käyttämiseen ohjelmointiin.

"Send-messages.php"- ja "Fetch-messages" -sivujen luominen

Tyytyväisinä käyttöliittymään jatkoimme skriptin rakentamista käsittelemään keskustelulogiikkaa. Voidakseen lähettää ja hakea viestejä tietokannasta ChatGPT korosti oikein, että tarvitsemme "viestit"-taulukon. Pyysimme chatbotia luomaan SQL: n viestitaulukolle.

SQL-koodin luomisen jälkeen pyysimme chatbotia luomaan PHP-skriptin viestilogiikan käsittelemiseksi.

ChatGPT loi skriptin sekä "send-messages.php"- että "fetch-messages.php"-sivuille. Molempia komentosarjoja suoritettaessa meillä oli lopulta ensimmäinen virhe (joka oli oudosti tyydyttävä). Projektiin pääseminen näin pitkälle ilman yhden koodirivin virheenkorjausta vaikutti hieman liian hyvältä ollakseen totta, huolimatta sen suhteellisen yksinkertaisuudesta.

Osoittautuu, että virhe johtui siitä, että ChatGPT otti käyttöön ilmoittamattoman istuntomuuttujan tarkistuksen ($_SESSION['user_id']) käsikirjoitukseemme. Epäilemme, että tämä johtui melko pitkän tauon ottamisesta projektista, jolloin ChatGPT unohti osan projektissa käytettyjen muuttujien konteksteista ja nimistä.

Kun käytät ChatGPT: tä sovelluksen rakentamiseen, varmista, että käytät samaa chat-säiettä ja yritä suorittaa liittyvät komponentit loppuun mahdollisimman pian. Uuden keskusteluketjun käyttäminen tai pitkän tauon pitäminen saattaa aiheuttaa epäjohdonmukaisuuksia. ChatGPT: llä on taipumus unohtaa joitain nykyisen projektin yksityiskohtia (esim. väriteema), jos pidät pitkiä taukoja koodausistuntojen välillä.

Korjasimme kuitenkin virheen ja otimme koodin käyttöön. Rekisteröidyimme, kirjauduimme sisään ja kokeilimme chat-ominaisuutta. Vaikka pystyimme lähettämään viestejä rekisteröidyltä käyttäjältä toiselle, viestikuplien väri ja järjestely olivat hieman väärässä. Emme kuitenkaan tuomitse liian ankarasti sovellusta, jonka valmistuminen kesti tunnin ja 23 minuuttia.

ChatGPT: Erinomainen koodausassistentti

ChatGPT on selvästi tehokas koodausavustaja. Se, että chatbot pystyy tuottamaan vaikuttavaa koodia yksinkertaisista ja joskus ei niin selkeistä ohjeista, on osoitus sen koodauskyvystä.

Toki siinä on vielä paljon puutteita. Ongelma, joka liittyy rajoitettuun kontekstiikkunaan ja sen kykyyn yhdistää logiikka useista itsenäisesti rakennetuista komponenteista, on suuri ongelma. Chatbot voi kuitenkin auttaa sinua rakentamaan melko monimutkaisia ​​verkkosovelluksia nopeasti, jos tiedät ratkaisusi.