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