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