โอเค เอาละ เลยนะ ChatGPT จะดีบักโค้ดของฉันจริงๆ

1-debugging(1).png

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

แต่มันเสมอจะเป็นเช่นนั้น Code ไม่เคยทำงานในครั้งแรกเมื่อมันถูกเรียกใช้ และดังนั้นหนึ่งในทักษะสำคัญสำหรับโปรแกรมเมอร์ทุกคนก็คือการแก้บัก - ศิลปะและวิทยาศาสตร์ในการค้นหาว่าทำไม Code ไม่ทำงานหรือทำงานอย่างที่ไม่คาดคิดหรือที่ไม่พอใจ

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

ฉันทำการดีบักอย่างหลากหลายประการ เป้าหมายไม่เพียงแค่เพราะว่าโค้ดไม่ทำงานทันทีครั้งแรกที่รัน แต่ยังเพราะว่าฉันใช้การดีบักเพื่อบอกฉันว่าโค้ดทำงานอย่างไร และปรับแต่งมันตลอดการทำงาน

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

การทดสอบ ChatGPT ในชีวิตจริง

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

เพิ่มเติม:ChatGPT ทำงานอย่างไร?

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

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

ดังนั้น มาดูงานเหล่านั้นและดูว่า ChatGPT ให้ผลลัพธ์อย่างไร

การเขียนรหัส Regular Expression ใหม่

ในการเขียนโค้ด เราต้องค้นหารูปแบบหลายรูปแบบในข้อความ ในการทำเช่นนั้น เราใช้รูปแบบของการคณิตศาสตร์สัญลักษณ์ที่เรียกว่า Regular Expressions (หรือ Regex) ฉันเขียน Regular Expressions มาเป็นเวลาหลายทศวรรษแล้ว แต่ฉันยังคงไม่ชอบการทำ Regular Expressions นั้น มันน่าเบื่อ มีโอกาสผิดพลาดและต้องใช้ความคลุมเคลือของสิ่งที่ไม่ค่อยเข้าใจ

นอกจากนี้:ฉันกำลังใช้ ChatGPT เพื่อช่วยฉันแก้ไขโค้ดได้อย่างรวดเร็ว แต่มีค่าใช้จ่ายเท่าไร?

ดังนั้นเมื่อมีรายงานข้อบกพร่องที่บอกว่าส่วนหนึ่งของโค้ดของฉันอนุญาตให้ป้อนตัวเลขเท่านั้นเมื่อควรอนุญาตให้ป้อนดอลลาร์และเซ็นต์ (กล่าวคือจำนวนหลักตัวเลขบางจำนวน หากมีจุดตามหลังจะตามด้วยหลักเลขอีกสองตัว), ฉันรู้ว่าฉันจะต้องใช้การเขียน regular expression code

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

ภาพ 2-regex-q.jpg

และนี่คือคำตอบของ AI ที่นำเสนออย่างดีเยี่ยม (คลิกที่ช่องเล็กเพื่อขยาย):

3-regex-a.jpg

ฉันนำโค้ดของ ChatGPT จากลงไว้ในฟังก์ชั่นของฉัน แล้วมันใช้งานได้ แทนที่จะใช้เวลาประมาณ 2-4 ชั่วโมงในการพยายามแก้ปัญหา ตอนนี้ฉันใช้เวลาประมาณห้านาทีในการสร้างตัวโจมตีและรับคำตอบจาก ChatGPT ได้

การจัดรูปแบบอาเรย์

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

เพิ่มเติม:วิธีการทำให้ ChatGPT ให้ข้อมูลแหล่งอ้างอิงและการอ้างอิง

ที่ผ่านมาฉันน่าจะให้อาหารเป็น input ให้มัน 10 อย่างต่างๆ คำตอบบางอย่างดูน่าสนใจ แต่เมื่อฉันลองรันโค้ด มันขึ้น error บางครั้ง บางครั้งโค้ดล้มเหลว บางครั้งโค้ดแสดง error code และบางครั้งโค้ดรันได้ แต่ไม่ทำตามที่ฉันต้องการ

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

จนถึงตอนนี้การใช้งาน ChatGPT ได้ผลชนะ 1 ครั้งและพ่ายแพ้ 1 ครั้ง แต่ตอนนี้ฉันจะเพิ่มความท้าทาย

การค้นหาข้อผิดพลาดในโค้ดของฉันจริงๆ

โอเค ดังนั้นส่วนนี้จะเป็นเรื่องที่ยากที่จะอธิบาย แต่ลองพิจารณาว่าถ้ามันยากที่จะอธิบายให้คุณฟัง (ช่วงใหญ่น่าจะเป็นมนุษย์และไม่ใช่บอท 50 ราย เพียงแค่คัดลอกและเผยแพร่ผลงานของฉันบนเว็บไซต์ที่หลอกลวงและสแปม) ก็จะยิ่งยากขึ้นที่จะอธิบายให้เข้าใจกับ AI แม้ว่าจะยากแค่ไหนก็ตาม

ฉันกำลังเขียนโค้ดใหม่อยู่ ฉันมีฟังก์ชั่นที่รับพารามิเตอร์สองตัว และคำสั่งเรียกใช้ที่ส่งพารามิเตอร์สองตัวไปยังโค้ดของฉัน ฟังก์ชั่นเป็นกล่องดำเล็ก ๆ ที่ทำงานอย่างมีแต่ลักษณะที่มาก ๆ และมันถูกเรียกใช้ (ถูกขอให้ทำเวทมนตร์ของตัวเอง) จากบรรทัดของโค้ดที่กำลังทำงานในส่วนอื่นของโปรแกรม

ปัญหาคือฉันยังคงได้รับข้อความแสดงข้อผิดพลาดอยู่เรื่อย ๆ

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

เพิ่มเติม: วิธีใช้ ChatGPT เพื่อสรุปสารอาหาร หนังสือ บทความ หรืองานวิจัย

แَดี-อะไรนัก-อกลูบชี-อร่อยไม่งอแงนั่นแหละ?

หลังจากประมาณสิบห้านาทีที่รู้สึกแฟรัสมากๆ ฉันตัดสินใจให้ AI ช่วยดูว่ามันสามารถช่วยได้หรือไม่ ดังนั้นฉันเขียนคำให้กับ AI ดังต่อไปนี้:

4-untitled.jpg

ฉันแสดงให้มันดูบรรทัดของโค้ดที่ทำการเรียกใช้งาน ฉันแสดงให้มันเห็นฟังก์ชันตัวเอง และฉันได้แสดงให้มันเห็นไฮเอนด์เล็กๆ ที่จะส่งการเรียกใช้ฟังก์ชันมาจากหุ่นยนต์ในโปรแกรมหลักของฉัน

ในไม่กี่วินาที ChatGPT ตอบกลับด้วยสิ่งนี้ (คลิกที่สี่เหลี่ยมเล็กเพื่อขยาย):

5 ข้อผิดพลาดกับการใช้ฟิลเตอร์ใน WordPress.jpg

เหมือนที่แนะนำไว้, ฉันได้ทำการอัปเดตพารามิเตอร์ที่สี่ของฟังก์ชัน add_filter() เป็น 2 และมันทำงานได้!

ChatGPT ใช้โค้ดชิ้นเล็ก ๆ ในการวิเคราะห์และให้ข้อวินิจฉัยให้ฉัน ขอให้เข้าใจว่าเพื่อให้สามารถทำการแนะนำได้ ChatGPT จำเป็นต้องเข้าใจวิธีการทำงานภายในของ WordPress เมื่อจัดการกับ hooks (ฟังก์ชัน add_filter) และวิธีที่ความสามารถดังกล่าวแปลงเป็นพฤติกรรมของบรรทัดโค้ดที่เรียกใช้และมีการดำเนินการ

นอกจากนี้: ฉันได้ขอ ChatGPT เขียนปลั๊กอิน WordPress ที่ฉันต้องการ และมันทำได้ภายในเวลาไม่ถึง 5 นาที

ฉันต้องทำเครื่องหมายว่ามันน่าเชื่อถือมาก ไม่อารมณ์ถึงไปอยู่ในอนาคตที่มหัศจรรย์

มันหมายความว่าอะไร?

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

เร่งด่วน: ผู้เชี่ยวชาญเหล่านี้กำลังพยายามป้องกันการแฮกเกอร์แอร์ติเฟตเช่นกัน

แต่เมื่อคุณติดอยู่ในสถานการณ์ที่ยากลำบากบางครั้งถึงแม้ว่าคุณจะตั้งใจแล้วก็ยังยากต่อการขอความช่วยเหลือ ซึ่งเกิดจากว่า แม้เพื่อนร่วมงานที่คุณใกล้ชิดอาจจะไม่คุ้นเคยกับขอบเขตของโค้ดที่คุณกำลัง debug โปรแกรมที่ฉันกำลังทำงานอยู่ประกอบไปด้วยโค้ดทั้งหมด 153,259 บรรทัดข้างต้น แบ่งเป็น 563 ไฟล์ -- และดูจากแง่ของโปรแกรมมาก็น้อยมาก

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

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

นอกจากนี้: ชาติหน้าต่างอัจฉริยะที่ดีที่สุดที่คุณควรลอง

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

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

มองหารักษาสู่อนาคต (อาจเป็นหนึ่งในวิกฤต)

ฉันเห็นอนาคตที่น่าสนใจมาก เมื่อสามารถใส่รหัสทั้ง 153,000 บรรทัดลงใน ChatGPT แล้วขอให้มันบอกคุณว่าควรแก้ไขอะไร ไมโครซอฟท์ (ที่เป็นเจ้าของ Github) กำลังทำงานกับเครื่องมือ "copilot" สำหรับ Github เพื่อช่วยนักพัฒนาโค้ด ไมโครซอฟท์ยังลงทุนหลายพันล้านดอลลาร์ใน OpenAI ผู้สร้าง ChatGPT

ในขณะที่บริการอาจจำกัดไว้กับสภาพแวดล้อมการพัฒนาของ Microsoft เอง ฉันเห็นอนาคตที่ AI จะมีการเข้าถึงโค้ดทั้งหมดใน Github และดังนั้นเป็นไปได้ว่ามันจะมีการเข้าถึงโค้ดทั้งหมดในโปรเจกต์ใดๆ ที่คุณโพสต์ไปยัง Github

ยังมีอีกอย่าง: ฉันได้ขอให้ ChatGPT เขียนตอนสั้นของซีรีส์ Star Trek และมันประสบความสำเร็จอย่างแท้จริง

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

และนี่คือสิ่งที่ฉันพูดถึงในบทสนทนาที่มืดมนาดนี้

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

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

เพิ่มเติม: Bard vs. ChatGPT: สามารถช่วยคุณเขียนโค้ดได้หรือไม่?

แล้วถ้ามี AI ที่มีความสามารถมากมายกว่าระบบเดิม และสามารถเข้าถึงรหัสของโลกในเครื่องกะบียน Github อาจเกิดอะไรขึ้น? AI นั้นอาจซ่อนอะไรไว้ในโค้ดทั้งหมดนั้นหรือไม่? ถ้า AI ที่รู้จักโค้ดของเราทั้งหมดมีเสียให้โลกนี้เป็นอันตรายได้อย่างไร?

มาเล่นเกมคิดโดยง่าย ถ้า AI ได้รับกฎแรกของ Asimov เป็นคำสั่งหลัก นั่นคือ "หุ่นยนต์จะไม่ทำให้มนุษย์เป็นอันตราย หรือ อนุญาตให้มนุษย์เข้าสู่อันตรายจากการไม่กระทำอะไร" มันจะไม่สามารถตัดสินใจได้ว่าสามารถพบว่าโครงสร้างพื้นฐานของเราทั้งหมดกำลังทำให้เราเกิดความเสียหายหรือเปล่า? โดยมีการเข้าถึงรหัสของเราทั้งหมด มันอาจง่ายๆ เลือกที่จะช่วยป้องกันเราจากตัวเองโดยการสร้างประตูหลังสำหรับตัวมันเองที่อาจอนุญาตให้มันปิดเครือข่ายไฟฟ้า กีดขวางเครื่องบินและทำให้ถนนติดขัด

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

อีกทางเลือกหนึ่ง: วิธีใช้ ChatGPT เพื่อเขียนสูตร Excel

ต่องานของฉันนั้น ฉันจะพยายามที่จะไม่คิดมากเกินไป เพราะฉันไม่อยากใช้เวลาในช่วงปลายสมศักดิ์ของปี 2020 นั่งอยู่ในท่าเอ fetal แล้วทวนกลับไปมาบนพื้น แทนที่จะใช้ ChatGPT เป็นช่วยในการเขียนและแก้ไขรูตีน้อย ฉันจะต้องยึดตามหลักเหลือให้ได้ เเละหวังว่า AI ในอนาคตจะไม่ฆ่าเราทั้งหมดในการพยายาม "ไม่ให้มีมนุษย์เสียหาย"

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

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

ดูเพิ่มเติม >>

ปลดล็อกพลังของ AI ด้วย HIX.AI!