ค้นหาเว็บไซต์

ChatGPT สามารถเขียนใหม่และปรับปรุงโค้ดที่มีอยู่ได้อย่างไร


เรารู้ว่าเครื่องมือ AI เจนเนอเรชั่นนี้สามารถสร้างโค้ดได้ แต่คุณรู้หรือไม่ว่า ChatGPT ยังสามารถอธิบายและเขียนโค้ดของคุณใหม่ได้ด้วย บางทีเราควรเรียกมันว่า Code Whisperer

ในช่วงไม่กี่เดือนที่ผ่านมา เราได้สำรวจความสามารถของ ChatGPT ในการสร้างโค้ด ChatGPT ถือเป็น "AI เจนเนอเรชั่น" และการสร้างโค้ดจากพรอมต์นั้นเหมาะสมกับคำศัพท์เจนเนอเรทีฟอย่างแน่นอน เราได้แสดงให้เห็นว่ามันสามารถสร้างปลั๊กอิน WordPress ที่สมบูรณ์และใช้งานได้ได้อย่างไร รวมถึงเขียนโค้ดในภาษาต่างๆ มากมาย ทั้งแบบกระแสหลักและแบบคลุมเครือ

แต่ในการทดลองเมื่อเร็วๆ นี้ ฉันสังเกตเห็นความสามารถอีกอย่างหนึ่ง นั่นคือ ChatGPT สามารถอ่านและถอดรหัสโค้ดได้ เราได้รับคำใบ้ถึงความสามารถนี้เมื่อฉันลองใช้ ChatGPT เป็นเครื่องมือในการช่วยแก้ไขจุดบกพร่อง ฉันป้อนโค้ดเล็กๆ และข้อความแสดงข้อผิดพลาดให้กับมัน และมันสามารถแสดงให้ฉันเห็นว่าฉันทำผิดตรงไหน

แต่สิ่งที่ฉันจะแสดงให้คุณดูในวันนี้คือ ChatGPT สามารถช่วยให้คุณเข้าใจและอาจเขียนโค้ดใหม่ได้อย่างไร นี่เป็นเรื่องใหญ่ทีเดียว

อธิบายจาวาสคริปต์

เพื่ออธิบายสิ่งนี้ ฉันจะเริ่มต้นด้วยโค้ด JavaScript ส่วนเล็กๆ ที่จะตรวจสอบว่าค่าที่ป้อนเป็นสกุลเงินหรือไม่ มันใช้สำนวนปกติที่ค่อนข้างลึกลับในบรรทัดแรกและบรรทัดที่สาม ซึ่งเราจะขอให้มันช่วยเราในเรื่องนี้

เริ่มต้นด้วยการให้ ChatGPT อธิบายว่าโค้ดทำอะไร นี่เป็นความสามารถที่ทรงพลังมาก โดยเฉพาะอย่างยิ่งหากคุณกำลังสืบทอดโค้ดจากโปรแกรมเมอร์คนอื่น แม้ว่าจะไม่มีการรับประกันว่า ChatGPT จะถูกต้อง แต่วิธีนี้อาจช่วยคุณประหยัดเวลาได้หลายชั่วโมงโดยให้คุณสัมผัสได้ว่าโค้ดทำงานอย่างไร ฉันใช้พรอมต์:

อธิบายรหัสต่อไปนี้

และฉันก็วางลงในบล็อคโค้ด นี่คือสิ่งที่ ChatGPT กล่าวไว้:

เราสามารถทำสิ่งที่น่าสนใจด้วยความสามารถนี้ เช่น เราสามารถให้ ChatGPT เขียนโค้ดใหม่ได้ ตัวอย่างเช่น ฉันถาม ChatGPT:

เขียนบรรทัดต่อไปนี้ใหม่เพื่อไม่ให้ใช้นิพจน์ทั่วไป:

กลับ !isNaN(n) && n >= 0 && /^\d+(\.\d{1,2})?$/.test(str);

คำตอบต่อไปนี้แสดงทั้งพลังของนิพจน์ทั่วไปในการรักษาโค้ดให้กระชับ และความสามารถของ ChatGPT ในการใช้โค้ดที่มีอยู่แล้วเขียนใหม่:

อธิบายโค้ด C โอเพ่นซอร์สจาก repo GitHub

ในตัวอย่างที่สองนี้ ฉันกำลังทำงานร่วมกับ Gimp ซึ่งเป็นโปรแกรมแก้ไขกราฟิกแบบโอเพ่นซอร์ส เราจะดูที่บล็อกของโค้ดเริ่มต้นที่บรรทัด 438 ที่ทำงานในส่วนนำเข้า .PSD ของแอปพลิเคชันโอเพ่นซอร์ส นี่คือรหัสนั้น:

ฉันขอให้ ChatGPT อธิบายโค้ดอีกครั้ง และนี่คือคำตอบ:

สิ่งนี้จะมีประสิทธิภาพมากยิ่งขึ้นคือคุณสามารถใช้ ChatGPT เพื่อแปลงภาษาได้ ฉันขอให้ ChatGPT เขียนใหม่จาก C ดั้งเดิมเป็น Python:

เขียนโค้ดนั้นใหม่ใน Python และทำให้มันกระชับที่สุด

ChatGPT ยังระบุสิ่งต่อไปนี้หลังโค้ด: ฟังก์ชัน g_free จากโค้ดต้นฉบับไม่รวมอยู่ในเวอร์ชัน Python เนื่องจากการจัดการหน่วยความจำได้รับการจัดการโดยอัตโนมัติโดยตัวรวบรวมขยะของ Python

การปรับปรุงโค้ดที่มีอยู่

ในตัวอย่างนี้ ฉันป้อน ChatGPT ให้กับส่วนของโค้ดที่ฉันไม่ค่อยพอใจนัก รหัสของฉันค้นหาฐานข้อมูล WordPress และอัปเดตบางรายการ นี่คือรหัสต้นฉบับ:

ฉันถาม:

คุณสามารถปรับปรุงรหัสต่อไปนี้

มันให้โค้ดใหม่แก่ฉัน:

นอกจากนี้ยังให้คำอธิบายแก่ฉันด้วยว่ามันทำอะไร:

มีความแปลกประหลาดประการหนึ่งที่นี่ ฉันรันโค้ดเดียวกันผ่านการสืบค้นเดียวกันสองครั้ง ครั้งที่สอง มีการปรับปรุงอีกอย่างหนึ่ง: แบบสอบถาม SQL ได้รับการแก้ไขให้เลือกเฉพาะคอลัมน์ที่จำเป็น (option_id, option_name และ option_value) แทนที่จะใช้ SELECT ซึ่งสามารถปรับปรุงประสิทธิภาพได้โดยลดการดึงข้อมูลที่ไม่จำเป็น

นี่คือบล็อกของโค้ดนั้น:

โค้ดเวอร์ชันที่สองนี้มีการเปลี่ยนแปลงที่มีค่าที่สุด ซึ่งช่วยปรับปรุงประสิทธิภาพของการสืบค้นฐานข้อมูล ฉันพบว่ามันแปลกที่โค้ดเดียวกันที่ป้อนให้กับ ChatGPT พร้อมพรอมต์เดียวกันทุกประการจะให้ผลลัพธ์ที่แตกต่างกันสองแบบ

ฉันลองเป็นครั้งที่สามและ ChatGPT ให้รหัสที่เพิ่มบรรทัดที่มีการใส่ความคิดเห็น: แบบสอบถาม SQL ได้รับการแก้ไขเพื่อรวมเงื่อนไขเพิ่มเติม option_value LIKE '%testy@test.com%' แสดงความคิดเห็นในรหัสต้นฉบับ .

นี่คือรหัสนั้น:

นั่นเป็นสิ่งที่ไม่แน่นอน คุณไม่ควรเขียนโค้ดใหม่และรวมกลับเข้าไปในบรรทัดโค้ดที่มีการใส่ความคิดเห็นไว้ รหัสนั้นถูกใส่ความคิดเห็นด้วยเหตุผล

อาหารสมอง

เช่นเดียวกับการสำรวจความสามารถของ AI อื่นๆ ของเรา ฉันพบว่ามันทั้งมีประโยชน์อย่างยิ่งและยุ่งยากเล็กน้อย

ในตัวอย่างสุดท้ายของฉัน การที่ ChatGPT ส่งคืนเวอร์ชันที่แตกต่างกันสามเวอร์ชันจากโค้ดบล็อกเดียวนั้นค่อนข้างแปลก ปัญหาอีกอย่าง: ความจริงที่ว่าการลองครั้งที่สามนั้นใช้ไม่ได้จริง ๆ เพราะมันรวมบรรทัดโค้ดที่มีการใส่ความคิดเห็นไว้ด้วย

คำแนะนำของฉันอีกครั้ง: คุณสามารถใช้ ChatGPT เพื่อขอความช่วยเหลือในการเขียนโค้ดได้ตามใจชอบ แต่โปรดทราบว่ามันไม่สอดคล้องกัน ตรวจสอบให้แน่ใจว่าคุณรู้วิธีการเขียนโค้ดที่ดีพอที่จะสังเกตเห็นผลลัพธ์ที่ไม่สอดคล้องกันเหล่านี้ หากคุณเป็นมือใหม่หัดเขียนโค้ด อย่าพึ่ง ChatGPT อย่างเต็มที่เพื่อทำงานแทนคุณ ตรวจสอบให้แน่ใจว่าคุณตรวจสอบและทดสอบทุกสิ่งที่มันมอบให้คุณ

คุณเคยใช้ ChatGPT เพื่ออธิบายหรือเขียนโค้ดใหม่หรือไม่ แบ่งปันกับเราในความคิดเห็นด้านล่าง

คุณสามารถติดตามการอัปเดตโครงการในแต่ละวันของฉันได้บนโซเชียลมีเดีย อย่าลืมติดตามฉันบน Twitter ที่ @DavidGewirtz บน Facebook ที่ Facebook.com/DavidGewirtz บน Instagram ที่ Instagram.com/DavidGewirtz และบน YouTube ที่ YouTube.com/DavidGewirtzTV

บทความที่เกี่ยวข้อง