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











