7 กรณีการใช้งาน AI ในการเขียนโปรแกรมและการพัฒนา (& 4 ในกรณีที่ AI ล้มเหลว)
เผยแพร่แล้ว: 2023-09-13นักวิจัยสี่คนที่ห้องปฏิบัติการแห่งชาติโอ๊คริดจ์ตีพิมพ์บทความเมื่อครึ่งทศวรรษที่แล้วโดยไตร่ตรองว่ามนุษย์จะยังคงเขียนโค้ดในปี 2040 หรือไม่ คำถามนี้พบว่าอยู่ในหัวของโปรแกรมเมอร์ทั่วๆ ไป มีความวิตกและคาดหวังเกี่ยวกับคำตอบของคำถาม
นักวิจัยตอบคำถามในแง่ลบ: เครื่องจักรจะสร้างโค้ดส่วนใหญ่ ในขณะที่มนุษย์หากพวกเขาเข้าไปเกี่ยวข้อง จะถูกจำกัดอยู่เพียงการปรับแต่งโค้ดที่สร้างโดยเครื่องจักรเป็นส่วนใหญ่
ความก้าวหน้าอย่างรวดเร็วที่เกิดขึ้นในด้าน AI ทำให้การคาดการณ์เป็นจริงเร็วขึ้นมาก ขณะนี้มีระบบ AI ต่างๆ ที่สามารถสร้างโค้ดการทำงานจากคำอธิบายและแม้แต่ภาพร่างเท่านั้น สิ่งนี้นำมาซึ่งคำสัญญาและข้อผิดพลาด AI สามารถเพิ่มผลผลิต ปลดปล่อยศักยภาพและความคิดสร้างสรรค์ของมนุษย์โดยเข้ารับหน้าที่ที่ลำบากและน่าเบื่อ และเปิดโอกาสใหม่ๆ อย่างไรก็ตาม มันยังสามารถยืดเยื้ออคติ ลดความรับผิดชอบ และเพิ่มความเสี่ยงของข้อผิดพลาดร้ายแรงโดยการละทิ้งการควบคุมดูแลของมนุษย์
ดังนั้น เราจะพิจารณากรณีการใช้งาน AI เจ็ดกรณีในการเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ และยังประเมินกรณีที่เกิดการขัดข้องอีกด้วย
กรณีการใช้งานทั่วไปของ AI ในการเขียนโปรแกรม
AI ส่งผลกระทบต่องานทุกด้าน รวมถึง โดยเฉพาะการเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ จากการสำรวจครั้งหนึ่ง 31% ขององค์กรใช้ AI ในการเขียนโค้ด คำถามที่ถูกถามตอนนี้ไม่ใช่ว่า AI จะส่งผลกระทบต่อการพัฒนาซอฟต์แวร์หรือไม่ แต่อย่างไร และในระดับใด
การเขียนโปรแกรมเป็นหนึ่งในด้านที่ AI มีส่วนอย่างมากในการเพิ่มประสิทธิภาพและประสิทธิผล รายงานโดย LinkedIn เกี่ยวกับอนาคตของการทำงานคาดการณ์ว่า 96% ของงานการพัฒนาซอฟต์แวร์สามารถเพิ่มได้ด้วย AI เครื่องมือที่ขับเคลื่อนด้วย AI ถูกนำมาใช้ในงานต่างๆ ตั้งแต่ขั้นพื้นฐานไปจนถึงซับซ้อนปานกลาง
สร้างข้อมูลโค้ด
เครื่องมือ AI ซึ่งได้รับการฝึกฝนด้วยโค้ดหลายล้านบรรทัดจากพื้นที่เก็บข้อมูลสาธารณะ เช่น GitHub และ StackOverflow สามารถสร้างตัวอย่างโค้ดได้ภายในเสี้ยววินาทีของเวลาที่มนุษย์ใช้เพื่อเขียนโค้ดแบบเดียวกัน พวกเขามีความเชี่ยวชาญในหลายภาษาและสามารถสร้างโค้ดจากภาษาธรรมชาติได้
สิ่งนี้มีประโยชน์ไม่เฉพาะสำหรับผู้เริ่มต้นเท่านั้น แต่ยังสำหรับโปรแกรมเมอร์ผู้มีทักษะซึ่งสามารถปล่อยให้ AI เขียนโค้ดง่ายๆ ที่พวกเขาต้องการได้ จากนั้นพวกเขาสามารถปรับแต่งหรือปรับแต่งและนำไปใช้ในโปรแกรมของพวกเขาได้
AI สามารถสร้างเทมเพลตโค้ดได้ดีเป็นพิเศษ คุณสามารถจัดเตรียมเครื่องมือ AI เช่น GitHub Copilot พร้อมชุดพารามิเตอร์ จากนั้น AI จะสร้างเทมเพลตโค้ด สิ่งนี้มีประโยชน์สำหรับการสร้างต้นแบบหรือบรรทัดโค้ดที่ซ้ำกัน AI ยังสามารถช่วยเติมโค้ดให้สมบูรณ์ได้ด้วยการแนะนำสิ่งที่น่าจะตามมามากที่สุด ไม่เหมือนกับการเติมข้อความอัตโนมัติ คุณยังสามารถวางโค้ดที่ไม่สมบูรณ์ของคุณลงในผู้ช่วยเขียนโค้ด AI และปล่อยให้โค้ดกรอกได้
รหัสแก้ไขข้อบกพร่อง
Bugs เป็นภัยร้ายของโปรแกรมเมอร์ทุกคน สิ่งเหล่านี้อาจเป็นตัวถ่วงเวลา (เช่น การใช้เวลาหลายชั่วโมงเพื่อค้นหาว่าเหตุใดโค้ดจึงไม่ทำงานเพียงแต่พบว่าเป็นเพราะเครื่องหมายอัฒภาคหายไป) แต่ยังก่อให้เกิดความเสี่ยงด้านความปลอดภัยที่สำคัญและกระทบต่อประสบการณ์ของผู้ใช้อีกด้วย AI สามารถลดปัญหาเหล่านี้ได้บางส่วน และไม่เพียงเท่านั้น AI สามารถระบุจุดบกพร่องได้แม่นยำและรวดเร็วยิ่งขึ้น
AI สามารถวิเคราะห์โค้ดเพื่อตรวจจับข้อบกพร่องโดยระบุความไม่สอดคล้องกันและรูปแบบที่มักนำไปสู่ข้อผิดพลาด สามารถจดจำโครงสร้างโค้ดที่มักส่งผลให้เกิดจุดบกพร่อง และแจ้งเตือนนักพัฒนาถึงปัญหาที่อาจเกิดขึ้น AI ยังสามารถช่วยในการทดสอบการถดถอยและรับรองว่าการเปลี่ยนแปลงใหม่จะไม่ทำให้เกิดข้อบกพร่องในโค้ดเบส
อย่างไรก็ตาม นี่ไม่ได้หมายความว่าการดีบักสามารถมอบหมายให้ AI ไว้วางใจได้ทั้งหมด ความหมายก็คือ มนุษย์สามารถมอบหมายงานที่น่าเบื่อหน่ายและน่าเบื่อหน่ายในการแก้ไขจุดบกพร่องให้กับ AI ได้ ซึ่งจะช่วยให้พวกเขาประหยัดเวลาได้มากกับงานที่หลีกเลี่ยงได้ และอุทิศเวลาให้กับงานที่มีประสิทธิผลมากขึ้น
แปลรหัส
สมมติว่าคุณต้องการย้ายจากแพลตฟอร์มหรือสภาพแวดล้อมหนึ่งไปยังอีกแพลตฟอร์มหนึ่ง หรือใช้ตรรกะและฟังก์ชันการทำงานของโค้ดที่มีอยู่ซ้ำในบริบทใหม่ ในทั้งสองกรณีนี้ คุณสามารถใช้ AI เพื่อช่วยคุณแปลโค้ดโดยไม่จำเป็นต้องเขียนโค้ดใหม่ตั้งแต่ต้น
อย่างไรก็ตาม เครื่องมือ AI สำหรับการแปลโค้ดยังไม่น่าเชื่อถือทั้งหมด พวกเขาอาจล้มเหลวในการสังเกตความแตกต่างของภาษาหรือไม่สามารถเข้าใจตรรกะของโค้ดได้ แต่มนุษย์ก็เช่นกัน แม้ว่าการแปลจะไม่ถูกต้องสมบูรณ์ แต่ก็จะทำให้งานง่ายกว่าการแปลซอร์สโค้ดด้วยตนเองตั้งแต่ต้น มันก็เหมือนกับการทำงานกับนักแปลที่เป็นมนุษย์ รหัสที่แปลจะได้รับการตรวจสอบและแก้ไขหากมีข้อผิดพลาด
อธิบายโค้ดในภาษาธรรมชาติ
AI สามารถอธิบายโค้ดเป็นภาษาอังกฤษธรรมดา (หรือภาษาใดก็ได้สำหรับเรื่องนั้น) สิ่งนี้มีประโยชน์หากคุณกำลังเรียนรู้ภาษาใหม่หรือหากคุณพบโค้ดแบบสุ่มบรรทัดที่คุณไม่รู้ว่ามันทำอะไร
ในทำนองเดียวกัน AI สามารถถอดรหัสนิพจน์ทั่วไปและอธิบายสิ่งที่พวกเขาทำในภาษาธรรมชาติได้
ไม่เพียงแต่สามารถอธิบายบรรทัดโค้ดที่ไม่ชัดเจนเท่านั้น แต่ยังช่วยอธิบายบรรทัดเหล่านั้นด้วย AI สามารถสร้างเอกสารโค้ดที่ครอบคลุมซึ่งอธิบายวัตถุประสงค์ ฟังก์ชันการทำงาน และการใช้โค้ดได้อย่างถูกต้อง AI ยังสามารถช่วยตรวจสอบและบันทึกการส่งรหัสและสร้างคำอธิบายการเปลี่ยนแปลงที่เกิดขึ้นในการดึงคำขอหรือการกระทำ
การสร้างกรณีทดสอบ
การทดสอบโค้ดอย่างละเอียดเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าโปรแกรมทำงานได้ตามที่ตั้งใจไว้ แต่การเขียนกรณีทดสอบและการทดสอบโค้ดนั้นเป็นกระบวนการที่น่าเบื่อและใช้เวลานาน และมักถูกมองข้ามไป โชคดีที่ AI สามารถช่วยงานนี้ได้
AI สามารถใช้เขียนกรณีทดสอบโดยการวิเคราะห์โค้ดเบสและระบุสถานการณ์ที่เป็นไปได้สำหรับการทดสอบ สามารถระบุเส้นทาง สาขา และเงื่อนไขต่างๆ ภายในโค้ด และสร้างกรณีทดสอบเพื่อให้ครอบคลุมสถานการณ์เหล่านั้น
ผู้ช่วย AI เช่น Tabnine สามารถสร้างการทดสอบหน่วยได้โดยอัตโนมัติและดำเนินการทดสอบด้วยตนเองโดยอาศัยการแทรกแซงจากมนุษย์เพียงเล็กน้อย จากนั้นพวกเขาจะทำเครื่องหมายและรายงานกรณีการทดสอบที่ล้มเหลว และให้ข้อมูลสรุปของการทดสอบ ซึ่งสามารถช่วยปรับปรุงประสิทธิภาพการทดสอบและลดภาระของมนุษย์ได้
[ที่มา -https://www.tabnine.com/blog/wp-content/uploads/2023/02/unittestgen.gif]
การปรับโครงสร้างรหัสใหม่
การปรับโครงสร้างโค้ดเป็นอีกงานหนึ่งที่ใช้เวลานานและน่าเบื่อซึ่ง AI สามารถช่วยได้ AI สามารถช่วยลดเวลาที่ใช้ในการดีบักและปรับโครงสร้างใหม่ได้ประมาณครึ่งหนึ่ง
AI สามารถทำให้งานการปรับโครงสร้างใหม่เป็นอัตโนมัติ เช่น การเปลี่ยนชื่อตัวแปรหรือวิธีการ การแยกโค้ดออกเป็นฟังก์ชัน การจัดระเบียบโครงสร้างโค้ดใหม่ หรือการลดความซับซ้อน และเพิ่มความสามารถในการขยายของโค้ด
การใช้ AI สำหรับการปรับโครงสร้างโค้ดไม่เพียงแต่ช่วยลดเวลาและความพยายามเท่านั้น แต่ยังช่วยระบุกลิ่นของโค้ดและช่วยแก้ไขปัญหาที่อาจเกิดขึ้นตั้งแต่เนิ่นๆ ในกระบวนการพัฒนา ซึ่งจะช่วยลดความเสี่ยงของข้อบกพร่องและหนี้ทางเทคนิค
สร้างข้อมูลสังเคราะห์
ข้อมูลสังเคราะห์จะมีประโยชน์เมื่อข้อมูลจริงไม่พร้อมใช้งานหรือไม่สามารถใช้ได้เนื่องจากมีข้อมูลที่ละเอียดอ่อน ข้อมูลสังเคราะห์ขจัดข้อจำกัดที่เกี่ยวข้องกับการใช้ข้อมูลที่ได้รับการควบคุมหรือเป็นความลับ เนื่องจากไม่มีข้อมูลส่วนบุคคล
AI สามารถใช้เพื่อสร้างข้อมูลสังเคราะห์ทุกประเภทที่มีลักษณะใกล้เคียงกับตัวอย่างในโลกแห่งความเป็นจริง AI ยังสามารถสร้างข้อมูลสังเคราะห์สำหรับสถานการณ์ที่เกิดขึ้นได้ยากหรือรุนแรงซึ่งยากต่อการทำซ้ำด้วยข้อมูลจริง ซึ่งสามารถใช้เพื่อทดสอบความยืดหยุ่นของซอฟต์แวร์ภายใต้สภาวะที่ไม่ปกติ
AI ยังสามารถช่วยสร้างข้อมูลสังเคราะห์ที่สามารถนำมาใช้เพื่อเพิ่มชุดข้อมูลจริง สร้างสมดุลการกระจายคลาส และแนะนำรูปแบบต่างๆ
อย่างไรก็ตาม AI ไม่ใช่ยาวิเศษ
AI มีความก้าวหน้าอย่างน่าทึ่งในด้านความสามารถในการเขียนโค้ด โดยเฉพาะอย่างยิ่งในช่วงสองสามปีที่ผ่านมา ผู้ช่วย AI มีความเชี่ยวชาญในการทำงานประจำและงานต่ำต้อยโดยอัตโนมัติ แต่พวกเขาก็สะดุดกับงานที่ต้องใช้การคิดอย่างมีวิจารณญาณ พวกเขาไม่สามารถเข้าใจหลักการและแนวคิดพื้นฐานของซอฟต์แวร์ได้ พวกเขามีปัญหาในการติดตามกรอบและกระบวนทัศน์ใหม่ และพวกเขาไม่สามารถเข้าใจสถานการณ์ในชีวิตจริงได้อย่างสมบูรณ์
ต่อไปนี้เป็นสี่กรณีที่ผู้ช่วย AI ไม่น่าเชื่อถือ และเหตุใดคุณจึงต้องจ้างนักพัฒนาแอปสำหรับโปรเจ็กต์ของคุณ
การสร้างสถาปัตยกรรมระบบซอฟต์แวร์ที่ซับซ้อน
ระบบ AI ขาดระดับความเข้าใจที่จำเป็นในการออกแบบและใช้งานกระบวนการที่ซับซ้อน แม้ว่าพวกเขาจะสามารถสร้างฟังก์ชันที่ซับซ้อนเพียงพอโดยแยกออกจากกัน แต่ฟังก์ชันเหล่านี้จะสะดุดเมื่อต้องรวมฟังก์ชันเหล่านั้นและคำนึงถึงการขึ้นต่อกันจากโค้ดอื่นๆ
ทำความเข้าใจกับความต้องการของผู้ใช้ตามสัญชาตญาณ
การทำความเข้าใจและกำหนดแนวคิดความต้องการและความชอบของผู้ใช้จำเป็นต้องมีความเห็นอกเห็นใจ บริบท และความตระหนักรู้เกี่ยวกับพฤติกรรมและอารมณ์ของมนุษย์ ซึ่งเป็นคุณสมบัติที่เครื่องมือ AI ขาด ข้อจำกัดของระบบ AI ในการทำความเข้าใจบริบททางอารมณ์ ความเป็นส่วนตัว และแง่มุมที่ละเอียดอ่อนของความต้องการของผู้ใช้ตามสัญชาตญาณ ทำให้พวกเขามีความสามารถน้อยลงเมื่อเทียบกับผู้เชี่ยวชาญที่เป็นมนุษย์
การจัดการฐานรหัสแบบเดิม
เครื่องมือ AI พยายามดิ้นรนเพื่อจัดการกับโค้ดเบสแบบเดิมซึ่งเก่าและมักจะล้าสมัย โดยทั่วไปโค้ดเบสดังกล่าวขาดความครอบคลุมการทดสอบและเอกสารประกอบที่เพียงพอ ซึ่งเป็นอุปสรรคต่อประสิทธิภาพของเครื่องมือ AI
การทำงานกับกรอบและกระบวนทัศน์ใหม่
ข้อมูลคือสิ่งสำคัญของโมเดล AI สำหรับกรอบงานและกระบวนทัศน์ที่ค่อนข้างใหม่ ไม่มีข้อมูลที่เพียงพอสำหรับการฝึกอบรมระบบ AI สิ่งนี้ทำให้พวกเขาไม่น่าเชื่อถือและมีความเสี่ยงด้วยซ้ำ เพราะพวกเขาแทนที่จะยอมรับความไม่รู้กลับตอบผิดด้วยความมั่นใจในระดับสูง แนวโน้มของอาการประสาทหลอนนี้อาจทำให้เข้าใจผิดได้ง่ายแม้จะรอบคอบที่สุดก็ตาม
โพสต์ที่เกี่ยวข้อง: เหตุใดจึงต้องใช้ AI และ ML เพื่อเพิ่มประสิทธิภาพกระบวนการป้อนข้อมูลวันที่ของคุณ
การซื้อกลับบ้านครั้งสุดท้าย
AI มีความก้าวหน้าอย่างมากในด้านการเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ในช่วงไม่กี่ปีที่ผ่านมา ระบบ AI ทำให้การเขียนโปรแกรมมีประสิทธิภาพและคล่องตัวมากขึ้น สิ่งเหล่านี้ยังส่งผลต่อการพัฒนาซอฟต์แวร์ในมิติอื่นๆ อีกด้วย แต่ยังคงอยู่เพียงนั้น: เครื่องมือ! AI ต้องการมนุษย์เพื่อสั่งสอนและดูแลการดำเนินงานและตัดสินคุณภาพของผลลัพธ์
แม้จะมีงานที่พวกเขาทำได้ดี แต่ก็ยังต้องมีการควบคุมดูแลจากมนุษย์ และสำหรับคนอื่นๆ พวกเขาก็แค่ล้มลง ข้อมูลและความเชี่ยวชาญของมนุษย์ยังคงขาดไม่ได้ในการพัฒนาซอฟต์แวร์ และนี่คือสาเหตุที่บริษัทพัฒนาเว็บแอปยังคงมีบทบาทสำคัญต่อไป