TD Tech Share — AI Coding Assistance for Software Development (ChatGPT & Codeium)

TD Tech
TD Tech
Published in
4 min readAug 2, 2024

สวัสดีเพื่อนๆชาว Dev ทุกคนนน วันนี้ TD Tech Share มีบทความเรื่อง AI Coding Assistance for Software Development มาฝากก เนื้อหาในวันนี้มาจากคุณ Gun — Anuchit Ounjai และคุณ Yo — Panumat Makeaw รับรองว่าถูกใจสาย Dev ที่อยากจะใช้ AI เข้ามาช่วยให้ชีวิตการเขียนโค้ดดีขึ้นแน่ๆ ไปดูกันน

แน่นอนว่าในปัจจุบัน AI ก็เข้ามามีบทบาทมากๆเลยในการทำงานสำหรับ Developer อย่าง Meme อันนี้ก็เล่าได้เห็นภาพดี

พอถาม Stackoverflow ก็อาจจะเฉยๆถัดไปถามพี่ Senior ก็ดีขึ้น แต่เดี๋ยวนี้เราก็จะนึกถึง ChatGPT ก่อน สุดท้ายสุดๆก็คือพี่ Senior ที่ใช้ ChatGPT 55+

AI with developer team

เราจะมาคุยกันถึงว่าเอา AI มาช่วยในงานพัฒนา Software ของเราได้ยังไงได้บ้าง ซึ่งสำหรับกระบวนการพัฒนาซอฟต์แวร์ที่เป็น SDLC (Software Development Life cycle) ในยุคนี้เราสามาถเอา AI เข้ามาเป็นเหมือนกับผู้ช่วยได้ในทุกกระบวนการตั้งแต่การทำ Requirement, Prototype, Design ตัวอย่างแรกที่จะแนะนำก็คือ

  1. ช่วยเสริมเราในส่วนของการทำ Prototyping

ข้อดีของมันก็คือเราสามารถสร้าง Prototype ได้เร็วมากขึ้นจากการใส่ Command เข้าไปให้เขา อย่างในรูปด้านล่าง

ตัวนี้เป็น Plug-in ตัวหนึ่งของ Figma นะครับ ก็คือเราสามารถเห็นความต้องการเข้าไปได้เลยว่า เราต้องการ Main page สำหรับ Hotel booking ใน Mobile app มันก็จะ Generate เหมือนกับ Component ต่างๆ มาให้เราได้เลย

2. ช่วยในเรื่องของการ Coding/Debugging

ก็ที่ข้อดีที่คิดว่าเราจะได้รับจาก AI ก็จะเป็นเรื่องของการวิเคราะห์ Code ของเราแล้วก็หา Bug ได้เร็วขึ้นโดยเฉพาะบางชุดที่มีความซับซ้อนมากๆ 200–300 บรรทัด ตัว AI มันก็ช่วยจัด Format code ให้ มีการแบ่งเป็นฟังก์ชันการทำงานแยกส่วนกันชัดเจนให้ รวมไปถึงการที่ AI มันก็จะอิงตาม Best practice ด้าน Coding ต่างๆให้เราด้วย ตัวอย่างเช่นการใช้ Service ‘Code Review’ ของ ChatGPT มันก็จะรีวิวละเอียดมาก เช่น

  • Detect เจอว่ามี Logic ที่ไม่ถูกต้องนะ มันก็จะอธิบายปัญหาให้เรา
  • Condition ไม่ถูกต้อง หรือควรต้องปรับจูน Logic ยังไง
  • การ Handle Exception
  • และให้คำแนะนำให้เราว่าควรจะปรับโค้ดให้เป็นแบบไหน Refactor ยังไงดี

อีกจุดหนึ่งที่จะมาช่วยในทีม Dev ก็จะเป็นตัว CoPilot ที่เป็น AI ที่เป็น Extension ของตัว IDE ต่างๆ ที่เราใช้ในการพัฒนา Software เช่นตัว Github Copilot หรือว่า Codeium หรือ Cursor เป็นต้น

Design with ChatGPT

หัวข้อถัดไปเรามาดูว่า AI อย่าง ChatGPT มันจะช่วยเราในงานอื่นนอกจากงาน Coding ได้ด้วยไหม อย่าง Use-case ที่จะลองก็คือให้มาช่วย Design Architecture เช่น

ใส่ Prompt ว่าให้ช่วย Design Architecture สำหรับตัว Retail Stock Management Web Application และมี Context ว่าอยากจะใช้ Google Cloud Service ในการ Deploy Application ส่วน Framework ที่ต้องการก็คือ Springboot

ซึ่งมันก็คือมันก็จะช่วย Analysis ได้ดีเลยประมาณนีง แยกเป็น Architecture ให้เราหรือว่า Front-end, Back-end ควรจะต้องมีอะไรบ้าง เรื่องของ Business Logic, API, Employee Authorization อะไรแบบนี้ มี Database Layers ต่างๆ รวมไปถึงบอกเป็น Step-by-step เลยว่าต้องทำอะไรบ้าง Monitor อย่างไร จัดการ Log หรือ Security อย่างไร มันก็ช่วยเราได้เยอะเหมือนกันในการที่เราจะเริ่ม Design งานอะไรสักอย่างขึ้นมาใหม่

หรือถ้าเราถามต่อให้มันสร้าง Diagram ขึ้นมาให้ได้ไหม มันก็ได้ทำได้ประมาณนึงเลย

Introduce AI Tools

แน่นอนว่าตัว AI ที่ทุกคนรู้จักกันเยอะที่สุดเลยน่าจะเป็น ChatGPT แต่มันก็จะมีอีกหลายๆตัวเหมือนกัน ถ้าเป็น Editor ที่ฝั่ง AI มาเลยก็มีเหมือนกัน ก็คือ Cursor หรือถ้าเป็น Extension ที่เอาไว้ใส่ใน IDE ก็คือ Codium ที่เราจะมาแนะนำในบทความนี้

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

How to use Codeium for coding

ที่เราแนะนำตัวนี้ก็เพราะมันสามารถที่จะเป็น Plug-in อยู่ใน IDE ได้หลากหลายค่ายมากๆ แล้วก็สามารถรองรับ Programming language ได้หลากหลายภาษาเลย แล้วก็ที่สำคัญเนี่ยมัน Free for individual ด้วย!

  1. Chat ความสามารถอย่างแรกที่เรามาช่วยเลยในตัวของ Codeium ก็คือจะมีตัวของช่อง Chat ที่สามารถที่จะให้เรา Generate code ตามคำสั่งที่เราต้องการได้ เช่น เราต้องการ Create HTML Table ขึ้นมา ที่มี 7 คอลัมน์พร้อม Mock data มาด้วย และก็ขอ Headers ตามนี้ด้วยนะ
หลังจากที่ถามไป มันก็จะ Gen มาให้เป็น HTML Table อย่างนี้ได้เลย ก็คือช่วยประหยัดเวลามากๆ ^^

2. Command ถ้าเราก็อยากจะปรับ Table ที่เราได้มาจากการ Gen นิดหน่อย เราสามารถใช้ตัว Command ตรงนี้มาเปลี่ยนแปลงให้ได้ เช่น ต้องการ Add class หรือปรับขนาดต่างๆ

3. Mock Data ต่อไปถ้าเราอยากให้ได้ Mock Data ที่มันจริงๆจังๆหน่อย เราก็สามารถใช้ Commmand ในการให้ช่วยเขียนโค้ดในการวนลูปได้ Step คร่าวๆก็มีประมาณรูปด้านล่างนี้ ซึ่งพอเราให้ AI มันช่วย Gen code ตั้งแต่การสร้าง Model แล้วพอเราไปประกาศตัวแปรมันก็จะรู้ทันทีเลยว่าเราจะใช้ Model ตัวไหน มันก็จะ Gen ให้ ฉลาดมากๆเลย

4. Auto-complete เราสามารถที่จะพิมพ์เป็น Comment ลงไปในโค้ดว่าอยากได้อะไร ตัว Codeium ก็จะช่วย Suggest Code มาว่าที่อยากได้คือแบบนี้แน่ๆเลย ถ้าเรา

5. Unit Test เพื่อให้แน่ใจจริงๆว่าโค้ดที่เราสร้างมามันถูกต้องตามที่เราต้องการจริงๆ เราสามารถที่จะ Gen Unit Test ได้ด้วย

6. Comments สามารถที่จะช่วยสร้างคอมเมนต์นอกจากตัว Logic ของ Function ที่เรามีได้ จัดแจงอธิบาย Parameter ต่างๆได้

7. Logging & Debugging ความฉลาดของมันก็ตัดสินใจได้ว่าตัวนี้น่าจะเป็น Info นะ อันนี้เป็น Warning หรือเป็น Error มันช่วยย่นเวลาในการเขียน Log ของเราพอควรเพราะว่าตัว AI ช่วยเขียนได้กระชับกว่า

8. Check for Bugs & Null อย่างการเช็คพวก Bug หรือ Null Pointer มันก็จะมีฟีเจอร์นี้เหมือนกัน มันก็จะช่วย Analyze Code ของเราแล้วก็ Handle พวกเคสต่างๆที่เป็น Null ให้อัตโนมัติ

9. Refactor Code ให้ Performace หรือตามปรับให้ตรงตาม Best practice ต่าง

10. Review Code ก็สามารถช่วยรีวิวโค้ดของเรา หรือของเพื่อนเราได้ด้วย ทำให้ประหยัดเวลาและเพิ่ม Productivity ของการทำงาน

คร่าวๆก็ประมานนี้ก่อนละกัน หวังว่าเพื่อนๆชาว Dev จะได้ประโยชน์จากบทความนี้ แล้วพบกันใหม่บทความหน้า!

--

--