3 Java Champions เผยเคล็ดลับใช้ GitHub Copilot ให้มีประสิทธิภาพ

· By: SirilukP

3 Java Champions เผยเคล็ดลับใช้ GitHub Copilot ให้มีประสิทธิภาพ

เครื่องมือเขียนโค้ดด้วย AI สามารถสร้างโค้ดได้อย่างรวดเร็ว แต่ความเร็วเพียงอย่างเดียวไม่สามารถแก้ปัญหาทางวิศวกรรมซอฟต์แวร์ที่ยากที่สุดได้ นักพัฒนายังคงต้องให้บริบท ตรวจสอบผลลัพธ์ รักษาความสามารถในการบำรุงรักษา และรับผิดชอบต่อสิ่งที่ส่งมอบ เพื่อเรียนรู้วิธีที่นักพัฒนาผู้มีประสบการณ์สร้างสมดุลดังกล่าว เราได้พูดคุยกับ Java Champions สามท่านที่มีประสบการณ์นานกว่าทศวรรษ พวกเขาได้แบ่งปันตัวอย่างการใช้ GitHub Copilot ในงานด้านโปรดักชันและโอเพนซอร์ส พร้อมแนวทางปฏิบัติเพื่อเปลี่ยนผลลัพธ์จาก AI ให้กลายเป็นซอฟต์แวร์ที่เชื่อถือได้

พบกับ Java Champions

  • Vlad Mihalcea ผู้ก่อตั้ง Hypersistence และผู้เขียนหนังสือ High-Performance Java Persistence
  • Patrick Baumgartner นักสร้างสรรค์ซอฟต์แวร์ที่ 42talents พร้อมประสบการณ์ Java กว่า 20 ปี
  • Frank Delporte นักเขียนด้านเทคนิคอาวุโสที่ Azul และผู้ดูแล Foojay.io พร้อมประสบการณ์ Java กว่า 15 ปี

Vlad Mihalcea

โปรไฟล์ GitHub: @vladmihalcea

GitHub Copilot ช่วยคุณอย่างไรบ้างในช่วงนี้?

ผมใช้มันวิเคราะห์และออกแบบฟีเจอร์ใน Hypersistence Utils และ Optimizer ตัวอย่างเช่น ผมเคยผัดวันประกันพรุ่งการพัฒนาเว็บแอปสำหรับ Optimizer มาตลอดเพราะคิดว่าต้องใช้เวลาหลายสัปดาห์ แต่เมื่อมี Copilot ผมใช้เวลาเพียงสองวันก็ส่งมอบงานได้สำเร็จเหมือนมีสมาชิกในทีมเพิ่มมาอีกคน

รูปแบบการใช้งานทั่วไปของคุณเป็นอย่างไร?

ผมใช้ GitHub Copilot ใน IntelliJ IDEA เพราะสะดวกต่อการตรวจสอบซอร์สโค้ดและดีบั๊ก มันช่วยเร่งการตรวจสอบและการสร้างต้นแบบได้ดีมาก แต่ผมยังคงตรวจสอบโค้ดที่สร้างโดย AI เสมอ เพราะเป้าหมายคือการเพิ่มประสิทธิภาพ ไม่ใช่การเข้ามาแทนที่ผมทั้งหมด บางครั้งคำตอบจาก AI ก็ยังต้องการการแทรกแซงจากมนุษย์

คุณสามารถแบ่งปันเคล็ดลับและแนวทางปฏิบัติที่ดีที่สุดได้ไหม?

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

เคล็ดลับอีกอย่างคือการเลือกโมเดลให้เหมาะกับงาน สำหรับงานซับซ้อนผมใช้ Opus พร้อมการใช้เหตุผลระดับสูงสุด แต่ถ้าเป็นงานง่ายๆ อย่างการเขียนรายงานหรือบันทึกการปล่อยตัว (release notes) ผมจะใช้โมเดลที่เบากว่าเพื่อประหยัดทรัพยากร

Patrick Baumgartner

โปรไฟล์ GitHub: @patbaumgartner

งานของคุณเกี่ยวข้องกับการโค้ชทีม แนวทางของคุณคืออะไร?

ผมเน้นการทำงานร่วมกับทีมเพื่อแก้ปัญหาเร่งด่วนและก้าวไปข้างหน้าทีละขั้น โดยใช้แนวทาง Software Craft เช่น TDD และ Refactoring ผมชอบที่ AI เป็นเครื่องมือที่ทรงพลังในการเรียนรู้และทดลองร่วมกับผู้คน

คุณช่วยเล่าวิธีที่ GitHub Copilot ช่วยงานคุณเมื่อเร็วๆ นี้ได้ไหม?

มีสามตัวอย่างสำคัญครับ อย่างแรกคือการย้ายสไลด์การสอน 900 สไลด์จาก Reveal.js ไปยัง Marp ซึ่งถ้าทำเองคงใช้เวลาหลายสัปดาห์ แต่ด้วย Copilot ผมใช้เวลาเพียง 8-10 ชั่วโมง โดยเน้นการตรวจสอบความถูกต้องด้วยการเปรียบเทียบสกรีนช็อตและ PDF ทำให้ผมมั่นใจในผลลัพธ์ภายใต้หลักการที่ว่า "มอบหมายการดำเนินการได้ แต่ห้ามมอบหมายความรับผิดชอบ"

ตัวอย่างที่สองคือการแก้บั๊กในแอปพลิเคชัน terminal UI ที่พบปัญหาบน Windows เราใช้ Copilot จำลองปัญหาและสร้างการแก้ไขจนสามารถส่ง upstream fix ได้สำเร็จ นอกจากนี้ AI ยังช่วยแนะนำวิธีนำเสนอข้อมูลบนหน้าจอให้มีประสิทธิภาพมากขึ้นด้วย

ส่วนตัวอย่างสุดท้ายคือการสร้างแอปเรียนคณิตศาสตร์สำหรับเด็ก Copilot ช่วยท้าทายสมมติฐานเดิมของผม ทำให้ผมเปลี่ยนจากการสร้างแอปแบบกว้างๆ มาเป็นการเน้นหลักสูตรเฉพาะในสวิตเซอร์แลนด์และรองรับหลายภาษา พร้อมระบบ spaced repetition ที่ช่วยให้เด็กเรียนรู้ได้ดีขึ้น

โดยปกติคุณใช้ Copilot อย่างไร?

ปัจจุบันผมเปลี่ยนมาใช้เวิร์กโฟลว์แบบ agentic เกือบทั้งหมด ผมใช้ VS Code เมื่อต้องการวงจรฟีดแบ็กที่เห็นภาพชัดเจน แต่ถ้าเป็นงานใหญ่ผมมักสั่งการ coding agent ผ่านเทอร์มินัล หรือแม้แต่ควบคุมเอเจนต์จากโทรศัพท์มือถือระหว่างเดินทางเพื่อพัฒนาปลั๊กอิน Maven ซึ่งช่วยให้ผมทำงานได้ทุกที่โดยไม่ต้องเขียนโค้ดเองทั้งหมด

คุณมีเคล็ดลับทิ้งท้ายไหม?

เลิกใช้ one-shot prompting ครับ ผมมักให้เอเจนต์สัมภาษณ์ผมก่อนเพื่อทำความเข้าใจความต้องการให้ถูกต้อง เพราะการเดินผิดทางนั้นมีราคาแพง นอกจากนี้ควรเปลี่ยนบทเรียนที่ได้รับให้เป็น "ทักษะที่นำกลับมาใช้ใหม่ได้" (Agent Skills) และใช้เครื่องมือวิศวกรรมที่ให้ผลลัพธ์แน่นอน (deterministic) มาช่วยตรวจสอบผลลัพธ์จากโมเดล AI

AI กำลังนำความเป็นวิศวกรรมกลับมาสู่ซอฟต์แวร์ เราในฐานะมนุษย์ต้องเป็นผู้รับผิดชอบการกำหนดโซลูชันและใช้ AI ช่วยในการดำเนินการ

Frank Delporte

โปรไฟล์ GitHub: @FDelporte

GitHub Copilot ช่วยคุณอย่างไรบ้างในช่วงนี้?

มันเป็นผู้ช่วยที่ยอดเยี่ยมในการรีวิว pull requests ล่าสุดผมใช้แก้บั๊กในไลบรารี Pi4J บน Raspberry Pi ซึ่งเป็นปัญหาที่หาต้นตอได้ยากเพราะไม่มีการแจ้งเตือนข้อผิดพลาดใดๆ

ผมส่งไฟล์ที่เกี่ยวข้องให้ Copilot coding agent วิเคราะห์ เพียงครึ่งชั่วโมงมันก็พบว่าปัญหาเกิดจาก virtual threads ที่บล็อกการทำงานบน native call จน carrier threads ของ CPU ทั้งสี่คอร์เต็ม ทำให้ปุ่มที่ห้าทำงานไม่ได้ AI ไม่เพียงแต่แก้บั๊กได้ แต่ยังอธิบายเหตุผลเบื้องลึกได้อย่างชัดเจนผ่านการสนทนาในรีวิว

คุณมีแนวทางปฏิบัติที่อยากแนะนำไหม?

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

เริ่มต้นใช้งาน GitHub Copilot >

Source: GitHub Blog
ดูแลงานแปลและเรียบเรียงโดย SirilukP

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร