วันพฤหัสคุยกับ Passapong Champillon Thaithatgoon กับ Keattiwut Joe Kosittaruk อยู่ว่า Functional programming อาจจะไม่เหมาะกับทุกงาน วันนี้จับ Physics engine นี่น่าจะอันนึงที่อาจจะทำ FP แล้วไม่ธรรมชาติ
เขียน Object ให้เป็น Ball.addKineticEnergy(right, 100) แล้วซ่อน State x,y ปัจจุบันไว้ใน Object เป็นโมเดลที่เหมาะกับเกมมากกว่าพยายามเปิดเผย x,y นะ
ถ้าเป็น FP จริงๆ มัน Equivalent อยู่แล้ว จะทำเป็น nextContext = context |> addKineticEnergy(ball, right, 100) |> nextFrame() เพื่อเก็บ context ก็ได้ แต่ก็ไม่รู้ว่า Natural ขนาดไหน ลองอ่านคู่มือ Physics engine ใช้ Object-oriented Model หมดเลย ขนาดใน Javascript นะ
แต่ที่มั่นใจคือเขียนเกมกับใช้ Physics engine การให้เข้าถึง X,Y ที่เป็น State ได้ง่ายๆ มันไม่ใช่ มันควรจะเข้าถึงผ่าน Mutation ที่เป็นธรรมชาติในโลกจริง อย่าง Gravity, Force, KineticEnergy พอมัน Emphasize state mutation มากกว่าตัว State แล้วผมว่าโมเดลด้วย Object + Message parsing มันจะเน้นย้ำในสิ่งที่ควรเน้นย้ำให้เห็นชัดเจน และทำให้ส่วนที่ไม่ควรจะถูกเน้นย้ำเข้าถึงยากขึ้น
ซึ่งนั่นแหละคือการ "ออกแบบโค้ด"