Ruby Best Practice Patterns ฉบับสรุป
หลังจากที่ผมเคยคิดจะจด Domain เกี่ยวกับ Ruby หรือ Rails มาเฉพาะของตัวเอง สรุปว่ายังไม่พร้อมสักเท่าไรเลยมาทำใน Blog ก่อนละกันครับ แล้วเดียวค่อย Dump บทความไปยังบ้านใหม่ก็ยังไม่สาย เอาละครับมาฟังผมสรุปวีดีโออันนี้กันครับ Ruby Hoedown 2008 : Ruby Best Practice Patterns โดยนาย Rein Henrichs คนนี้เขาพูดดีมากครับ แต่กว่าผมจะจับใจความได้เล่นเอาเหนื่อยเหมือนกัน โดยผมจะสรุปเฉพาะ 40 นาทีแรกนะครับ ซึ่งเป็นเนื้อหาของเขาโดยตรง แล้วส่วน 30 นาทีหลังมันเป็นคนถามคำถาม แล้วเขาตอบ ซึ่งผมจะไม่นำมารวมในนี้ละกันครับ มาเริ่มกันเลยครับ
- Best Practice คือเทคนิคสุดยอดที่ยังถูกยอมรับและใช้
- Pattern คือทางเลือกที่ดีที่สุดที่ถูกใช้แล้วใช้อีก ซึ่งช่วยในการสื่อสารระหว่างกันดีขึ้น
- Pattern ช่วยให้คุณเขียนโค๊ดที่คนอื่นเข้าใจได้
โดยเริ่มแรกเข้าจะพูด Unfactoring from Pattern (ซึ่งเป็นสิ่งที่ไม่ควรกระทำแต่ในวีดีโอพูดว่าควรทำเพราะมัน Save Your Job) อันนี้ผมสรุปอันหลังที่เขาพูดเลยละกันครับ โดยเขาพูดถึง Best Practice ของ Ruby ดังนี้ครับ
- DRY – Don’t Repeat Yourself (อย่าทำงานซ้ำ)
- Local Consequences (จำกัดผลลัพธ์ ซึ่งจะช่วยให้คุณคุมงานง่ายขึ้น)
- Optimize for Understanding (ทำให้เหมาะสมกับความเข้าใจ)
- Accurate Domain Model (ทำต้นแบบความคิดอย่างระมัดระวัง)
- Intention Reveling Name (เปิดเผยชื่อแบบตรงๆ)
- Composed Method (การประพันธ์ Method)
โดยเจ้า Rein Henrichs นั้นพูดมาว่า “การทำให้งาน ตามเวลา,ต่ำกว่าทุน,ไม่มี bug เราเลือกได้แค่ 2 อย่างโดยต้องคำนึงถึงความเสี่ยง , ความสามารถในการผลิต , ความสามารถในการดูแลรักษา และการเขียน Code คือความเสี่ยง และความเสี่ยงไม่เป็นมิตรกับความสามารถในการผลิต และระบบจากรุ่นก่อนต้องการ การดูแลรักษา โค๊ดของคุณจะกลายเป็นโค๊ดรุ่นก่อนทันทีที่ถูกเขียน” ดังนั้นจุดแข็งที่ Ruby ต้องการคือ
- Ruby ต้องการทำให้ Code ดูแลได้ง่ายขึ้น แต่ไม่ได้เขียนเพื่อให้ระบบเร็วขึ้น
- Ruby ต้องการให้เขียน Code สำหรับมนุษย์อ่าน
- Ruby Code จะต้องบอกผู้อ่านถึงจุดประสงค์ของมัน
โดยเจ้า Best Practice Pattern ที่พูดมานั้นช่วยให้้เราเขียน code ที่คนอื่นเข้าใจได้ เพราะคุณต้องคิดมากขึ้นในการสร้างมัน จากบรรทัดไปอีกบรรทัด จาก method ไป method โดยสรุปมันทำให้โค๊ดคุณเร็วขึ้น ความเสี่ยงน้อยลง และดูแลง่ายขึ้น
Composed Method
การประพันธ์ Method ชื่อมันตามนี้จริงๆผมชอบ Concept มากโดยเขาถือว่า แต่ละ Method จะมี 2 แบบคือ Simple Method กับ Complex Method โดยแต่ละ Method จะต้องทำงาน Task ง่ายๆ 1 Task และชื่อของ Method จะต้องมีชื่อที่เข้าใจง่าย แล้ว Complex Method จะประกอบด้วย Simple Method หลายๆอันมารวมกัน โดยเจ้า Rein Henrichs เนี้ยเขาชอบเขียน 1 Method เพียง 4-5 บรรทัดเท่านั้น แล้วค่อยนำ Method มาต่อกันเป็นชั้นๆขึ้นไป
แนวทางการศึกาษาการใช้ Pattern ในการแก้ปัญหาต้องทำดังนี้
- Context เป็นสิ่งสำคัญมาก แต่ละ Pattern แก้ส่วนเล็กๆของปัญหา โดยการเขียน code ที่ดี โดยถ้าเราสามารถจำแนกได้ว่า pattern ไหนเหมาะกับอะไร จะแก้ปัญหาได้อย่างถูกต้อง
- เราต้องรู้ความต้องการของเราก่อน เพื่อที่จะเลือก Paradigm และ Pattern เพื่อทำสิ่งนั้น เช่น ทำเพื่อ Perfomance หรือ Maintainability พยายามรู้ให้ได้ว่าเราต้องการเน้นในเรื่องอะไรมีเรื่องอะไร
- ดู Examples ต่างๆที่อยู่ใน Ruby Libraries ที่คุณใช้ เพราะเขาเขียนไว้ดีอยู่แล้ว ต้องถามว่าทำไมเขาทำแบบนี้ ทำไมตรงนี้เขาทำด้วยวิธีอื่น แล้วเราก็หัดใช้และ apply
- Try Them ลองทำ แล้วเขียนด้วย Pattern ที่คุณรู้ ลองทำแล้วคิดดูกลับไปว่า ต้องทำยังไงมีวิธีอื่นที่ดีกว่านี้ไหม
นี้คือสิ่งที่ผมสรุปย่อๆมาให้ครับจริงๆแล้วคนนี้ยังพูดถึง คำถามและคำตอบที่เ้จ้า Ruby สามารถแก้ปัญหาได้ โดยวิธีง่ายแสนง่าย ตัวอย่างคำถามคือ How do i ensure that two actions happen together ? , How can I send Multiple Messages to the same object? วันนี้ผมลาไปก่อนแล้วครับ สวัสดีครับ
| Tweet |
เนื้อหาคล้ายกันที่น่าสนใจ


ขอบคุณมากครับ
เขียนได้ดีมากมากเลย จะพยายามติดตามทุกบทความครับ