Käytän ChatGPT:tä auttamaan minua korjaamaan koodia nopeammin, mutta millä hinnalla?

kuva5.jpg

Aikaisemmin tällä viikolla näytin sinulle, miten ChatGPT voi luoda kokonaisen WordPress-laajennuksen, joka täytti tietyt, joskin hieman yksinkertaiset toiminnalliset vaatimukset. Nyt jatkan ChatGPT:n testaamista, jotta saisin käsityksen siitä, voiko siitä olla hyötyä - tällä kertaa auttamalla minua saamaan teknistä ohjausta.

Lisäksi: Pyyysin ChatGPT:tä kirjoittamaan WordPress-liitännäisen. Se teki sen alle 5 minuutissa

Kuten olen tehnyt aiemmissa ChatGPT-tutkimuksissani, kirjoitukseni on joko tavallista tai lihavoitua tekstiä, ja tekoälyn vastaukset ovat kursivoitua tekstiä. Ensin näytän sinulle kysymykset ja vastaukset, sitten keskustelen niiden vaikutuksista.

Ohjelmointikielen muutosten ymmärtäminen

Hosting-palveluntarjoajani siirtää kaikki sivustonsa erittäin vanhentuneesta PHP 7.4 versiosta PHP 8:aan. PHP on verkkosivujen ohjelmointikieli, jota WordPress ja useat muut verkkohallintatyökalut käyttävät. Minulla oli pari lisäosaa, jotka eivät olleet yhteensopivia PHP 8:n kanssa, ja halusin selvittää, mitkä niiden koodin osa-alueista minun pitäisi etsiä ja korjata.

Yleensä selaisin PHP.net-sivustoa, tekisin useita Google-hakuja ja lukisin kommentteja StackExchangesta selvittääkseni, millaista ohjelmointityötä minun olisi tarpeen tehdä. Mutta se on melko sotkuinen ja aikaa vievä prosessi. Sen sijaan kysyin ChatGPT:lta yksityiskohtaisen ja suoran kysymyksen, ja sain erittäin hyödyllisen vastauksen, mukaan lukien koodinpätkiä.

Minulla on ongelmia PHP extract-funktion kanssa, se antaa vakavan virheen, kun sille ei anneta taulukkoa. PHP 7.4: ssä en saanut virhettä, mutta näyttäisi siltä, ​​että PHP 8: ssa minulla on. Onko extract muuttunut PHP 8: ssa?

PHP 8:ssa extract()-funktion käyttäytyminen on muuttunut tiukemmaksi. Aiemmissa PHP:n versioissa extract()-funktio palautti yksinkertaisesti falsen, jos sille ei annettu taulukkoa, mutta PHP 8:ssa se aiheuttaa vakavan virheen, jos sille ei anneta taulukkoa. Tämä muutos tehtiin parantamaan funktion kestävyyttä ja estämään mahdollisia virheitä odottamattoman syötteen takia.

Voit tarkistaa, onko muuttuja, joka on lähetetty funktioon, taulukko tai ei käyttämällä is_array()-funktiota ennen extract()-funktion kutsumista.

kuva3.jpg

Voit myös käyttää array_key_exists() -funktiota tarkistaaksesi, onko annettu muuttuja taulukko vai ei.

kuva6.jpg

Vaihtoehtoisesti voit käyttää ... operaattoria hajottamaan taulukon muuttujiksi.

kuva7.jpg

Kävi ilmi, että ChatGPT:n vastaus oli äärimmäisen hyödyllinen ja sain sen ongelman korjattua muutamassa minuutissa. Suuren osan siitä, että pystyin korjaamaan tuon virheen, oli tietää, mistä etsiä. ChatGPT selvensi, miten toiminta muuttui PHP:n eri versioiden välillä.

Koska yritin tulevaisuusvarmistaa koko liitännäistä siirtymällä uuteen versioon, kysyin myös tämän:

Mitkä PHP-funktiot todennäköisesti eivät toimi siirryttäessä PHP 7.4:stä PHP 8:aan?

Kun siirryt PHP 7.4:stä PHP 8:aan, on muutamia toimintoja ja ominaisuuksia, jotka voivat rikkoutua tai toimia eri tavalla. Tässä on joitain merkittävimpiä muutoksia, jotka saattavat aiheuttaa ongelmia:

  • extract()-funktio, kuten aiemmassa vastauksessa mainittiin, aiheuttaa nyt vakavan virheen, jos sille ei anneta taulukkoa.
  • each()-funktio on poistettu PHP 8.0:sta. Voit käyttää sen sijaan foreach-silmukkaa tai array_keys()- ja current()-funktioita.
  • create_function()-funktio on poistettu PHP 8.0:sta. Suositellaan käyttämään nimettömiä funktioita sen sijaan.
  • list()-rakennetta käytettäessä foreach-silmukan kanssa palautetaan nyt avain ja arvo erillisinä muuttujina, eikä yhtenä taulukkona.
  • __autoload()-funktio on poistettu PHP 8.0:sta. Sen sijaan tulisi käyttää spl_autoload_register()-funktiota.
  • $php_errormsg-muuttuja on poistettu PHP 8.0:sta. Tulisi käyttää error_get_last()-funktiota.
  • Osa aiempien PHP-versioiden hylkäyksistä on nyt poistettu PHP 8.0:sta. Erityisesti create_function(), each(), __autoload() ja $php_errormsg on poistettu.

Tässä on vain muutamia esimerkkejä muutoksista, jotka voivat aiheuttaa ongelmia siirryttäessä PHP 7.4:stä PHP 8:aan. On hyvä idea testata koodisi ja sovelluksesi perusteellisesti ennen päivitystä varmistaaksesi, että kaikki toimii odotetusti.

Huomaa, että ChatGPT käytti lausetta "kuten edellisessä vastauksessa mainittiin". Se pystyy pitämään kirjaa vastauksista keskustelussa. Se on sekä "wow" että pelottavaa.

Koodia tarkistaessani selvisi, että alkuperäinen kehittäjä (joka on jo kauan poissa kuvasta) käytti paljon create_functionia. En tajunnut, että se on poistettu käytöstä. Mutta käyttämällä yllä olevaa hyödyllistä listaa, etsin koodista mitä pitää päivittää ja uudelleenkirjoittaa. Pyydinkin sitten ChatGPT:tä näyttämään minulle tapoja korvata tuo funktio.

Mikä olisi hyvä tapa kirjoittaa koodi uudelleen käyttäen create_functionia PHP:ssä? Voisitko antaa minulle esimerkin create_functionin käytöstä, ja sitten yhden käyttäen tällä hetkellä suositeltua mekanismia?

create_function on vanhentunut funktio PHP:ssa, jota käytettiin nimettömien funktioiden luomiseen. Tätä funktiota ei enää suositella käytettäväksi, koska se on poistettu PHP 8.0:sta. Sen sijaan nimettömiä funktioita, jotka tunnetaan myös sulkeumina, voidaan luoda käyttämällä function-avainsanaa.

Tässä on esimerkki create_function-funktion käytöstä:

kuva2.jpg

Ja tässä on vastaava koodi käyttäen anonyymiä funktiota:

kuva8.jpg

Lisäksi voit käyttää use-avainsanaa muuttujien välittämiseen sulkemalle.

kuva1.jpg

Yleensä suositellaan käyttämään nimettömiä funktioita sen sijaan, että käytettäisiin create_function-funktiota, sillä niillä on parempi suorituskyky ja luettavuus.

Näyttää siltä, että tämä oli erittäin selkeä selitys ja pystyin nopeasti kirjoittamaan koodin uudelleen asianmukaisesti. Kyseinen lisäosa toimii nyt ongelmitta isäntäpalvelun uudessa PHP 8 -ympäristössä.

MacOS tekninen tuki

Kun tutkin artikkeliani Optimize Mac Storage -ominaisuuden vaaroista, minulla oli myös muutamia kysymyksiä. Kuten artikkelissani näkyi, ryhdyin testaamaan ja vahvistamaan joitakin huolenaiheistani. Mutta nopeana tapana rajata tutkimustani, kysyin ChatGPT:lta seuraavaa:

Jos käytät Macin toimintoa Optimize Mac Storage, tekeekö Time Machine epätäydellisiä varmuuskopioita, koska jotkin tiedostot ovat edustettuna vain paikallisessa koneessa olevina tönikkinä?

macOS:n "Optimoi Macin tallennustila" -ominaisuus käyttää iCloudia harvoin käytettyjen tiedostojen siirtämiseen Maciltä pilveen, samalla kun säilytetään paikallisella koneella "stub" -tiedostoa alkuperäisen tiedoston edustajana. Tämä voi säästää tilaa Macin kovalevyllä.

Kun Aikakone on konfiguroitu tekemään varmuuskopioita, se varmuuskopioi kaikki tiedostot, mukaan lukien ne, jotka on siirretty pois käytöstä käyttäen "Optimoi Mac Storage". Kuitenkin, alkuperäisten tiedostojen sijaan varmuuskopioidaan ennen siirtoa olevat kaksoistiedostot, jotka edustavat siirrettyjä tiedostoja.

Tämä tarkoittaa sitä, että jos palauttaisit Mac-tietokoneesi aikakonevarmuuskopiosta, joka on luotu "Optimoi Macin tallennustila" -toimintoa käytettäessä, niin mitään siirrettyjä tiedostoja ei sisällytettäisi palautukseen ja ne tulisi ladata iCloudista uudelleen.

On tärkeää huomata, että jos sinulla on paljon tiedostoja, jotka on poistettu käytöstä, varmuuskopiot vievät enemmän tilaa kuin jos et käytä Optimoi Mac Storage -toimintoa, koska Time Machine varmuuskopioi stub-tiedostot, jotka vievät vähemmän tilaa, mutta Time Machine koh behandlend g hänenä alkuperäisinä tiedostoina.

Huolestuttaa kyllä. Ainakin Googlella kirjoittajilla on mahdollisuus saada liikennettä hakukoneen kautta artikkeleilleen, kun he jakavat tietoa. Mutta chatbotin kuten ChatGPT:n tapauksessa alkuperäinen lanka katoaa. Toki sain tuottavuushyödyn nopeasta vastauksesta. Mutta joku siellä menetti luultavasti tunnustuksensa työstään?

Pysy kuulolla. Tämä generatiivinen tekoälyllä aaltoilu aiheuttaa suuria myrskyjä. Pysy mukanani ja ZDNETin kanssa, kun yritämme ymmärtää, mitä se tarkoittaa meille kaikille.

ChatGPT, kun vastaat kysymykseen, hyödyntätkö muiden antamaa tietoa ja vievätkö sinun vastauksesi ja ansiot pois alkuperäisiltä inhimillisiltä lähteiltä?

Koska olen OpenAI:n luoma tekoälykielelukumalli, minulla ei ole henkilökohtaisia mielipiteitä tai ajatuksia. Kuitenkin voin kertoa sinulle, että tiedot, joita käytän vastausten luomiseen, perustuvat siihen dataan, johon olen koulutettu. Tämä data koostuu valtavasta määrästä tekstiä internetistä. Teksti on kirjoitettu monien eri ihmisten ja lähteiden toimesta, eikä minulla ole kykyä yhdistää tietoa tiettyihin yksilöihin. Tavoitteenani on tarjota hyödyllistä ja tarkkaa tietoa auttaakseni käyttäjiä löytämään etsimänsä vastaukset. On tärkeää muistaa, että vastaukseni perustuvat dataan esiintyviin kuviin, eivätkä ne välttämättä ole aina täysin tarkkoja tai ajan tasalla.

Joten, joo. Se. "Suuria määriä tekstiä internetistä." Liikkukaa ihmiset. Täällä ei ole mitään nähtävää.

Eli lyhyesti sanottuna Time Machine tekee puutteellisia varmuuskopioita, jos käytät "Optimoi Macin tallennustilaa" -toimintoa, koska se varmuuskopioi vain tynnyritiedostot sen sijaan, että se varmuuskopioisi alkuperäiset tiedostot, jotka on siirretty pilvivarastoon.

Se oli oikea vastaus.

Seuraukset

No, säästää varmasti aikaa. Normaalisti ohjelmointi internetissä sisältää tanssin koodauksen ja virheenkorjauksen ympäristön välillä, sekä paljon pieniä verkkohaun pätkiä, joissa jäljitetään vihjeitä ja luetaan keskusteluja ja kommentteja.

Älä ymmärrä minua väärin. Tuo prosessi voi olla hyvin informatiivinen, ja noiden kommenttien joukossa on paljon kansanperinnettä, jota et koskaan saa chatbotilta. Mutta se ei ole tehokas tapa käyttää aikaa, kun olet kiireessä tai kriittisellä määräajalla. Koodikysymysten esittäminen ChatGPT:lle osoittautui erittäin tehokkaaksi.

Kuten minkä tahansa AI:n kanssa, sinun täytyy olla tietoinen siitä, että AI:n tietämyksessä on puutteita, ja saatat hyvin saada täysin vääriä vastauksia. Mutta ChatGPT:n käyttäminen suoraviivaisena työkaluna, kuten muitakin työkaluja työkalupakissani, osoittautui melko tuottavaksi.

Kyllä minäkin ihmettelen, mistä se sai tiedot. Onko siellä joku kirjoittaja, kuten minä, joka kirjoitti syvällisen informatiivisen artikkelin extract tai create_functionistä, ja jonka sanat "pyöritetään" ChatGPT:n vastauksiksi ilman tunnustusta tai taloudellista hyötyä? Käytetäänkö jonkun hankkimaa tietoa lähdeaineistona mainitsematta?

Liittyvät artikkelit

Näytä lisää >>

Avaa tekoälyn voima HIX.AI:lla!