自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

谷歌陣地失守!ChatGPT又準(zhǔn)又快,改bug完全不需要搜

人工智能 新聞
ChatGPT上岸第一劍,先斬開(kāi)發(fā)者!

上一波圖像生成模型大火,讓藝術(shù)家們十分焦慮,并開(kāi)始聯(lián)合抗議Stable Diffusion等模型侵犯自己的版權(quán),而這次ChatGPT帶來(lái)的文字革命則是讓各行各業(yè)都產(chǎn)生了危機(jī)感。

圖片

尤其是程序員群體,更是瑟瑟發(fā)抖,親手把自己的飯碗整沒(méi)了,未來(lái)只能淪為「代碼審核專(zhuān)員」。

圖片

但ChatGPT改代碼的能力真有想象中那么強(qiáng)嗎?

可能還真就有那么強(qiáng)!

用上ChatGPT,完全不需要從浩如煙海的文檔中尋找一個(gè)有價(jià)值答案了,只需要一個(gè)問(wèn)題,直接就能返回大概率是正確的答案,并且還有諸多示例,從依賴(lài)庫(kù)版本更新到MacOS技術(shù)支持無(wú)所不能。

ChatGPT出馬,一個(gè)能頂倆,老板直呼省錢(qián)...

理解編程語(yǔ)言的版本更新

「版本匹配」絕對(duì)是最讓程序員們掉頭發(fā)的問(wèn)題,每次碰到tensorflow不兼容、各種依賴(lài)庫(kù)版本互斥、語(yǔ)言版本特性等問(wèn)題都要耗費(fèi)大量的精力來(lái)調(diào)試和修改。

大部分人都不會(huì)關(guān)注每次版本更新到底都有哪些內(nèi)容變動(dòng),但ChatGPT把它們都記下來(lái)了。

比如老板給你一個(gè)需求,把所有網(wǎng)站從非常過(guò)時(shí)的 PHP 7.4版本遷移到最新的PHP 8,這個(gè)問(wèn)題可能就頭疼了。

PHP是WordPress和許多其他網(wǎng)絡(luò)管理工具所依賴(lài)的網(wǎng)絡(luò)編程語(yǔ)言,其中會(huì)涉及到大量的插件,而其中某些插件并不兼容PHP 8,如果想讓升級(jí)后的網(wǎng)站成功運(yùn)行,就必須找到并修復(fù)其中的代碼。

一般的解決流程是,先到PHP.net上搜索問(wèn)題,然后再在StackExchange上查找一些相關(guān)評(píng)論,確定具體該如何修改,整個(gè)過(guò)程非常混亂且耗時(shí)。

現(xiàn)在可以把問(wèn)題的細(xì)節(jié)直接輸入給ChatGPT,就能快速得到一個(gè)解決方案,并且回答中還會(huì)包括一些演示代碼。

問(wèn):我在用PHP的時(shí)候,在沒(méi)有傳入數(shù)組的情況下,extract函數(shù)返回了一個(gè)fatal error,代碼在 PHP 7.4中就正常運(yùn)行,但在 PHP 8中有錯(cuò)誤。PHP 8的extract有什么變化嗎?

I'm having trouble with the PHP extract function giving a fatal error when not passed an array. In PHP 7.4, I did not get the error, but I seem to in PHP 8. Did extract change for PHP 8?

ChatGPT回答:在 PHP8中,extract()函數(shù)的行為變得更加嚴(yán)格。在以前的 PHP 版本中,如果沒(méi)有傳入數(shù)組,extract ()函數(shù)只會(huì)返回 false;但是在 PHP 8中,如果沒(méi)有傳入數(shù)組,則會(huì)拋出一個(gè)致命錯(cuò)誤。此修改是為了提高函數(shù)的健壯性,并防止意外輸入引起的潛在錯(cuò)誤。

你可以通過(guò)使用 is_array() 函數(shù)檢查傳遞給函數(shù)的變量是否是數(shù)組,然后再調(diào)用extract ()

圖片

還可以使用 array_key_exists() 函數(shù)檢查傳入的變量是否為數(shù)組。

圖片


或者使用... 運(yùn)算符將數(shù)組解構(gòu)為多個(gè)變量。

圖片

事實(shí)證明,根據(jù)ChatGPT的答案幾分鐘內(nèi)就可以修完bug,其中很大一部分原因是知道去哪里找到答案,并且ChatGPT也說(shuō)明了在不同版本的 PHP 中函數(shù)的行為是如何變化的。

問(wèn):當(dāng)把代碼從 PHP 7.4遷移到 PHP 8時(shí),哪些 PHP 函數(shù)可能會(huì)出問(wèn)題?

What PHP functions are likely to break when moving from PHP 7.4 to PHP 8?

ChatGPT回答:當(dāng)從 PHP 7.4遷移到 PHP 8時(shí),有一些函數(shù)和特性可能會(huì)無(wú)法運(yùn)行或具有不同的行為。以下是一些可能引發(fā)問(wèn)題的主要變化:

  • 如前面答案中所提到的,如果沒(méi)有傳入一個(gè)數(shù)組,則extract()函數(shù)會(huì)拋出一個(gè)致命錯(cuò)誤;
  • PHP 8.0中刪除了foreach , array_keys()和current();
  • PHP 8.0中刪除了 create_function() 函數(shù),建議使用匿名函數(shù);
  • list()構(gòu)造,在與 foreach 一起使用時(shí),現(xiàn)在會(huì)將鍵和值作為單獨(dú)的變量返回,而非單個(gè)數(shù)組;
  • 在 PHP 8.0中已經(jīng)刪除了__autoload() 函數(shù);
  • $php_errormsg 變量在 PHP 8.0中已被刪除;
  • 一些棄用(deprecations)函數(shù)已經(jīng)被刪了,包括create_function(),each()、__autoload()和 ()和$php_errormsg

這些只是從 PHP 7.4遷移到 PHP 8時(shí)可能會(huì)發(fā)生問(wèn)題的一些更改示例,在升級(jí)之前徹底測(cè)試您的代碼和應(yīng)用程序是一個(gè)好主意,以確保一切都按預(yù)期運(yùn)行。

在這份回答中,ChatGPT同時(shí)還說(shuō)了「如前面答案中所提到的」,讓人感到既驚訝又惶恐。

在正在修改的代碼中,原來(lái)的開(kāi)發(fā)人員(已經(jīng)離職很久了)經(jīng)常使用create_function,當(dāng)時(shí)我不知道該函數(shù)已經(jīng)被棄用了,但根據(jù)ChatGPT提供的修改列表,只需要搜索代碼,找到需要更新和重寫(xiě)的內(nèi)容。

然后,繼續(xù)要求 ChatGPT 展示替換該函數(shù)的方法。

問(wèn):在 PHP 中使用 create_function 重寫(xiě)代碼的好方法是什么?給我一個(gè)使用 create_function 的例子。

What's a good way to rewrite code using create_function in PHP? Can you give me an example using create_function, and then one using the currently proper mechanism?

create_function 是 PHP 中已棄用的函數(shù),用于創(chuàng)建匿名函數(shù)。官方不再推薦使用這個(gè)函數(shù),PHP 8.0 中已經(jīng)刪除了它?,F(xiàn)在可以使用 function 關(guān)鍵字創(chuàng)建匿名函數(shù)(也稱(chēng)為閉包)。

下面是一個(gè)示例:

圖片

下面是使用匿名函數(shù)的等價(jià)代碼:

圖片

此外,還可以使用 use 關(guān)鍵字將變量傳遞到閉包中:

圖片

這個(gè)回答相當(dāng)清晰,看了解釋以后很快就可以重寫(xiě)完代碼。

MacOS技術(shù)支持

假設(shè)在研究Mac上的優(yōu)化存儲(chǔ)(Optimize Storage)時(shí)也有一些問(wèn)題,為了縮小研究范圍可以直接問(wèn)ChatGPT。

問(wèn):使用 MacOS 功能Optimize Mac Storage時(shí),Time Machine是否會(huì)因?yàn)橐恍┪募槐硎緸楸镜貦C(jī)器上的存根而進(jìn)行不完整的備份?

If you use the MacOS feature Optimize Mac Storage, will Time Machine make incomplete backups because some files are only represented as stubs on the local machine?


ChatGPT回答:MacOS 中的「優(yōu)化 Mac 存儲(chǔ)」功能使用 iCloud 將很少使用的文件從 Mac 卸載到云中,同時(shí)在本地機(jī)器上保留一個(gè)「存根」(stub)文件來(lái)表示原始文件。這樣可以節(jié)省 Mac 硬盤(pán)上的空間。

當(dāng)設(shè)置Time Machine以進(jìn)行備份時(shí),將會(huì)備份所有文件,包括那些已經(jīng)使用「優(yōu)化 Mac 存儲(chǔ)」卸載的文件,不過(guò)是用存根文件來(lái)替代取代原始文件。

這也意味著,如果你要從Time Machine備份中恢復(fù)你的 Mac,并且「優(yōu)化 Mac 存儲(chǔ)」功能是啟用的,那么任何卸載的文件將不會(huì)包含在恢復(fù)中,需要再次從 iCloud 下載。

值得注意的是,如果卸載了大量的文件,那么Time Machine備份可能會(huì)比不使用優(yōu)化 Mac 存儲(chǔ)占用更多的空間,因?yàn)閭浞荽娓募加酶俚目臻g。

簡(jiǎn)而言之,如果你使用「優(yōu)化 Mac 存儲(chǔ)」功能,Time Machine將會(huì)做不完整的備份,因?yàn)樗粫?huì)備份存根文件,而非已經(jīng)卸載到云端的原始文件。

上面ChatGPT的答案是正確的。

總結(jié)

ChatGPT確實(shí)可以節(jié)省開(kāi)發(fā)和解決bug所需時(shí)間。

通常情況下,程序員寫(xiě)代碼時(shí)需要不斷進(jìn)行調(diào)試,還要進(jìn)行大量的網(wǎng)絡(luò)搜索,從搜索結(jié)果中找到線索,包括閱讀討論和評(píng)論。

當(dāng)然,整個(gè)搜索過(guò)程可以提供很多信息,絕對(duì)比你從聊天機(jī)器人那里得到的信息更多,還可以在評(píng)論區(qū)還可以看到很多隱藏的技巧。

但當(dāng)需要趕時(shí)間或者在一個(gè)關(guān)鍵的最后期限前,大量搜索絕對(duì)是一個(gè)笨方法,借助ChatGPT來(lái)解決編程問(wèn)題已經(jīng)被證明是非常有效的。

ChatGPT和其他的模型一樣,你必須意識(shí)到AI的答案并非總是正確,你極有可能會(huì)得到完全錯(cuò)誤的答案,但它確實(shí)是一個(gè)非常出色的工具。

不過(guò),ChatGPT到底是從哪里得到的這些信息?是否曾經(jīng)有人專(zhuān)門(mén)寫(xiě)過(guò)一篇關(guān)于extract或是create_function的文章?是否某些人的知識(shí)被用作答案生成的原始素材?

按目前的情況來(lái)看,至少對(duì)于 Google 的作者來(lái)說(shuō),曾經(jīng)還有機(jī)會(huì)讓搜索引擎為文章提供流量,作為分享信息的回報(bào),但是像 ChatGPT 這樣的聊天機(jī)器人直接壟斷了信息獲取渠道,當(dāng)然用戶得到了更高的生產(chǎn)效率。有人會(huì)失去工作的成就感嗎?

問(wèn):當(dāng)你回答一個(gè)問(wèn)題時(shí),你是否接受了其他人貢獻(xiàn)的知識(shí),你是否從原始的人力資源中獲得了工作成果?

ChatGPT, when you answer a question, are you taking knowledge others have contributed and are you taking work and credit away from the original human sources?

ChatGPT的答案:作為一個(gè)由 OpenAI 創(chuàng)建的人工智能語(yǔ)言模型,我沒(méi)有個(gè)人的觀點(diǎn)或想法。不過(guò)我可以告訴你,用來(lái)生成回復(fù)的信息是基于我所接受的數(shù)據(jù)訓(xùn)練,這些數(shù)據(jù)包括來(lái)自互聯(lián)網(wǎng)的巨量文本。

這段文字是由許多不同的人和來(lái)源寫(xiě)的,我沒(méi)有能力為我提供的信息歸功于特定的個(gè)人。我的目標(biāo)是提供有用和準(zhǔn)確的信息,以幫助用戶找到他們正在尋找的答案。

重要的是要記住,我的回答是基于我所受訓(xùn)練的數(shù)據(jù)中的模式生成的,可能并不總是完全準(zhǔn)確或最新的。

責(zé)任編輯:張燕妮 來(lái)源: 新智元
相關(guān)推薦

2013-05-14 10:54:57

jQuery網(wǎng)站開(kāi)發(fā)

2019-10-15 18:30:28

機(jī)械硬盤(pán)硬盤(pán)Windows 10

2014-12-10 10:45:56

Android應(yīng)用權(quán)限

2015-04-17 09:34:42

程序員

2021-05-27 12:04:57

M1芯片漏洞惡意軟件

2019-11-11 13:40:45

Python 開(kāi)發(fā)編程語(yǔ)言

2021-12-27 13:57:34

Vite 工具項(xiàng)目

2022-01-04 14:21:56

Vite組件React

2010-07-29 11:08:03

施密特谷歌

2023-02-27 07:15:26

2017-03-13 13:54:40

戴爾

2024-01-22 08:06:02

React服務(wù)端組件

2022-10-17 10:13:58

谷歌云游戲

2020-10-27 15:01:25

編程語(yǔ)言PythonJava

2024-05-27 10:09:26

2012-08-23 09:50:07

測(cè)試測(cè)試人員軟件測(cè)試

2024-12-04 13:54:19

pnpm存儲(chǔ)項(xiàng)目

2023-07-18 19:11:21

配置信令系統(tǒng)

2009-11-23 12:45:22

2022-03-31 06:18:21

WiFi 6EWiFi 6
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)