Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

แนะนำการ review code ที่น่าสนใจมาก ๆ

$
0
0

traffic-jam

traffic-jam จากหนังสือ Programming Beyond Practices (Be more than just a code monkey) ได้แนะนำขั้นตอนการ review code ที่น่าสนใจดังนั้น ลองคิดดูสิว่า ถ้าเราเป็นลูกค้า หรือ ผู้ว่าจ้าง โดยที่รู้ด้วยว่าการเปลี่ยนแปลง code ต่าง ๆ จะเกิดผลกระทบ หรือ มีความเสี่ยงอะไรบ้าง ? เราน่าจะลดขั้นตอนการ review ต่าง ๆ ลงไป แล้วมาพยายามส่งมอบระบบงานให้ได้บ่อย ๆ ดีกว่าไหม ?

เป้าหมายคือลดขั้นตอนการ review code ลง

ทั้งวิธีการเขียน code ทั้งโครงสร้างของ code ทั้งชุดการทดสอบ ทั้งเรื่องของเอกสารต่าง ๆ สุดท้ายคือ ไม่มีสิ่งต่าง ๆ เหล่านี้เลย !! คำถามคือเริ่มอย่างไรดีล่ะ ?

เริ่มต้นด้วย Production Testing

มันคือสิ่งที่สำคัญมาก ๆ และเป็นสิ่งแรกเลย นั่นคือการสร้าง code ที่สามารถทำงานบน production environment หรือคล้าย ให้ได้เร็วที่สุด เพราะว่าสิ่งที่ต้องการคือ feedback ที่เหมือนจริง ไม่ใช่พัฒนาด้วยระบบหนึ่ง แต่พอตอนส่งมอบก็ออกระบบหนึ่ง !! มันจะทำให้เราเห็นว่า สิ่งที่คิด สิ่งที่ออกแบบ สิ่งที่สร้าง มันสามารถทำงานบน environment จริง ๆ ได้หรือไม่ ? หรือว่ามันเหมาะสมหรือไม่ ?
ผลที่ได้รับคือ เรากล้าที่จะเปลี่ยนแปลงและแก้ไข feature ต่าง ๆ อีกด้วย รวมทั้งรู้ความเสี่ยงต่าง ๆ อีกด้วย เช่นจากการ deploy ระบบเป็นต้น

สิ่งที่ต้องเน้นคือ Product มากกว่าการ review code

ดังนั้นสิ่งที่ต้องพูดคุยกันก่อนจะมาดู issue ต่าง ๆ ของ code คือ คุณภาพของ product และความสามารถต่าง ๆ เช่น
  • การเปลี่ยนแปลงนี้มันแก้ไขปัญหาของลูกค้าจริง ๆ ใช่ไหม ?
  • วิธีการนี้มันเสถียรและครอบคลุมแล้วใช่ไหม ?
  • ปัญหาที่จะตามมาจากการแก้ไขคืออะไรบ้าง ?
  • ต้องทำการ migrate ระบบกันอย่างไรบ้าง ?
  • สามารถ rollback การเปลี่ยนแปลงกัลบได้ง่ายไหม ถ้าเกิดข้อผิดพลาดขึ้นมา ?
  • ค่าใช้จ่ายที่ตามมาในการดูแลเป็นอย่างไร ?
คำถามเหล่านี้ มันจะช่วยให้เรารู้ปัญหาต่าง ๆ ก่อน ที่จะมาทำการ review code จริง ๆ ทั้ง code ดีหรือไม่ ? ทั้งโครงสร้างดีหรือไม่ ? ทั้งต้อง refactor code ไหม ? ทั้งการเขียน automated testing ? มันเป็นการวิเคราะห์ปัญหาแบบ outside-in นั่นคือการมองภาพของ product จากมุมมองของลูกค้าและผู้ใช้งาน

ดังนั้นเริ่มต้นด้วยความต้องการของลูกค้า

ทำให้ลูกค้ามีความสุขกับ product แน่นอนว่าทีมพัฒนาต้องมีความสุขด้วย จากนั้นจึงลงไปในระดับ code ต่อไป

Viewing all articles
Browse latest Browse all 1997

Trending Articles