Pair Programming with GO : 1

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์
ภาควิชาคอมพิวเตอร์
คณะวิทยาศาสตร์
มหาวิทยาลัยศิลปากร

ให้สร้าง Program ภาษา Go ที่คำนวณเกรดของนักเรียนจากคะแนนสอบ โดยทำตามขั้นตอนต่อไปนี้

สร้าง struct ชื่อ Student ที่มีฟิลด์ดังนี้

name (string)
score (float64)

สร้างฟังก์ชัน calculateGrade ที่รับพารามิเตอร์ score เป็น float64 และคืนค่าเป็น string

ถ้าคะแนน >= 80 คืนค่า "A"
ถ้าคะแนน >= 70 คืนค่า "B"
ถ้าคะแนน >= 60 คืนค่า "C"
ถ้าคะแนน >= 50 คืนค่า "D"
ถ้าคะแนน < 50 คืนค่า "F"

สร้าง method ชื่อ getGrade สำหรับ struct Student ที่เรียกใช้ฟังก์ชัน calculateGrade
ในฟังก์ชัน main()

สร้าง slice ของ Student เพื่อเก็บข้อมูลนักเรียนอย่างน้อย 4 คน
ใช้ loop เพื่อแสดงข้อมูลของนักเรียนแต่ละคน โดยแสดงชื่อ คะแนน และเกรด

แสดงผลลัพธ์ในรูปแบบ
ชื่อ [ชื่อนักเรียน], คะแนน [คะแนน], เกรด [เกรด]

การทำ Pair Programming

จัดทีม
แบ่งเป็นคู่ โดยมีบทบาท "Driver" (คนเขียนโค้ด) และ "Navigator" (คนให้คำแนะนำ)

เตรียมพร้อม
เตรียมคอมพิวเตอร์หนึ่งเครื่องที่มี Go ติดตั้งแล้ว
เปิด VSCode

วางแผน
อ่านโจทย์ร่วมกันและวางแผนการทำงานคร่าว ๆ
สลับบทบาทกันทุก 10 นาที หรือหลังจบแต่ละขั้นตอน

เริ่มทำงาน

1. สร้างโครงสร้างพื้นฐาน
Driver สร้างไฟล์ main.go และเขียนโครงสร้างพื้นฐาน
Navigator ให้คำแนะนำเกี่ยวกับการจัดวางโค้ด

2. สร้าง struct Student
Driver เขียน struct Student
Navigator ตรวจสอบความถูกต้องของชื่อฟิลด์และประเภทข้อมูล

สลับบทบาท
3. สร้างฟังก์ชัน calculateGrade
Driver เขียนฟังก์ชัน calculateGrade
Navigator แนะนำการใช้ switch หรือ if-else และตรวจสอบเงื่อนไข

สลับบทบาท
4. สร้าง method getGrade
Driver เขียน method getGrade สำหรับ Student
Navigator ตรวจสอบการเรียกใช้ calculateGrade อย่างถูกต้อง

สลับบทบาท
5. สร้างฟังก์ชัน main
Driver สร้าง slice ของ Student และเพิ่มข้อมูลนักเรียน
Navigator แนะนำวิธีการสร้าง slice และเพิ่มข้อมูล

สลับบทบาท
6. เขียน Loop แสดงผล
Driver เขียนลูปเพื่อแสดงข้อมูลนักเรียน
Navigator ตรวจสอบการใช้ fmt.Printf และรูปแบบการแสดงผล

7. ทดสอบและแก้ไข
ร่วมกันรันโปรแกรมและตรวจสอบผลลัพธ์
แก้ไขข้อผิดพลาด (ถ้ามี) โดยอภิปรายร่วมกัน

8. Refactor และปรับปรุง
ร่วมกันพิจารณาว่ามีส่วนใดที่ควรปรับปรุงหรือทำให้อ่านง่ายขึ้น
สลับกันเป็น Driver เพื่อทำการปรับปรุง

9. สรุป
อภิปรายร่วมกันถึงสิ่งที่ได้เรียนรู้และปัญหาที่พบ
แลกเปลี่ยนความคิดเห็นเกี่ยวกับวิธีการทำงานร่วมกัน