Day 1 : ทำความรู้จัก Ruby On Rails


Ruby On Rails (RoR) คือ Web Application Framework โดยใช้ภาษา Ruby ในการพัฒนา
คำอธิบายดีๆ เกี่ยวกับ RoR คืออะไร

    * Introduction To Ruby On Rails from wiki.nectec
    * introduction ruby-on-rails from PunNeng

Ruby เป็นภาษาโปรแกรมมิ่งที่พัฒนาโดยชาวญี่ปุ่น นาย Yukihiro “matz” Matsumoto
โดยนำข้อดีของหลายภาษาที่เค้าชอบ Perl, Smalltalk, Eiffel, Ada, and Lisp มารวมกันกลายเป็น Ruby ลักษณะของ Ruby เป็นแบบ Object Oreinted Programming มีโครงสร้างที่ดูคล้ายและใกล้เคียงภาษามนุษย์ (เค้าบอกอย่างนั้น)

    Ruby is simple in appearance, but is very complex inside, just like our human body.
                                                                                      Says Yukihiro Matsumoto
 

Rails เป็น Web Framework มีลักษณะเป็น MVC (Model-View-Controller) พัฒนาโดย 37signals
Rails ถูกออกแบบมาให้มีการใช้งานที่ง่ายและรวดเร็ว ลดปัญหางานทีี่ต้องทำซ้ำๆ ทำให้ได้ productivity
ที่สูงขึ้น สอดคล้องกับ Methodology แบบ Ajile  และมีแนวความคิดพื้นฐานคือ

  • Don't Repeat Yourself (DRY) อะไรที่อยู่แล้ว ก็ไม่มีความจำเป็นต้องทำสิ่งนั้นซ้ำ
    Reuseable นั้นเอง
  • Convention over configuration คือข้อตกลงที่ Rails สร้างขึ้นเป็นแบบแผน ที่กำหนดมา
    ขอเพียงเราทำตามรูปแบบเหล่านั้นผลลัพธ์จะออกมาตามที่เราต้องการ โดยที่ไม่จำเป็นต้อง
    ใช้การ configuration สำหรับคนที่ใช้ Convention ได้อย่างคล่องแคล่วและถูกต้องแล้วจะทำให้
    การพัฒนาระบบได้เร็วขึ้นเพราะไม่ต้องมาทำการ configuration ให้ยืดยาว แต่มีข้อดีก็ต้องมีข้อเสียครับ เพราะ Convention ถ้าเป็นมือใหม่หัดเขียนคงต้องศึกษาและทำความเข้าใจกันมากซักหน่อย และมันอาจสร้างความประหลาดใจให้คุณได้

MVC (Model-View-Controller) ก่อกำเนิดขึ้นมาตั้งแ่ต่ปี 1979 นานโขแล้วเลยทีเดียว คิดขึ้นโดย
Trygve Reenskaug ใช้กับ Smalltalk แนวคิดเป็นที่ยอมรับในวงกว้างมี Framework ในยุคหลังๆ หยิบยืมแนวความคิดนี้ไปใช้เช่น Struts, Spring, Tapestry, CakePHP และอีกมากมาย รวมถึง Rails
ผมเชื่อว่าถ้ามีความรู้เรื่อง MVC ติดตัวไปไม่่ว่าไปตกระกำลำบากที่ไหน คงไม่อดตายแน่นอนครับ
เพราะ Web Application Framework ตระกูลหลักๆ ในตอนนี้ยืดแนวคิดนี้เป็นพื้นฐานทั้งนั้น
MVC  เป็นลักษณะสถาปัตยกรรมที่มีการแบ่งการทำงานออกเป็น 3 Layer คือ

  • Model เป็นภาชนะเก็บข้อมูลหรือสถานะการทำงาน แต่ Model เป็นหม้อที่วิเศษกว่านั้น
    เพราะนอกจากจะเก็บข้อมูลยังสามารถทำการตรวจสอบความถูกต้องของข้อมูลได้อีกด้วย
  • View เป็นส่วนการแสดงผลเป็น User Interface ที่ User จะได้พบเจอ โดยอาจจะนำ Model มาแสดงผลในส่วนนี้ และ Userแต่่ล่ะคนอาจที่จะใช้ข้อมูลกลุ่มเดียว
    แต่การแสดงผลอาจจะต่างออกไป เช่น 1 Model มี 2 View (ไม่ใช่รักสามเศร้าน่ะครับ)
  • Controller เป็นส่วนการเชื่อมโยงการทำงาน เป็นส่วนที่เลือกว่าจะใช้ Model อันไหน หรือ View มาทำงาน เพื่อตอบสนองการทำงานได้ถูกต้องตาม User ต้องการ 

Figure: Illustration of Data-flow within ash.MVC Framework

Figure: Illustration of MVC Framework from ash-mvc

    ทั้ง 3 Layer จะการทำงานที่แยกขาดออกจากกัน แต่ล่ะส่วนก็ทำหน้าที่ของตัวเองไป
จะมีการยุ่งเกี่ยวสัมพันธ์กับ Layer อื่นกันตรงจุดที่กำหนดเท่านั้น ทำให้มีความยืดหยุ่นสูงขึ้น
เอื้ออำนวยให้กับการพัฒนาระบบที่มีขนาดไหญ่ขึ้นมีความซับซ้อนมากขึ้น
เพราะเมื่อ Layer ใดมีปัญหาเราก็จัดการกับ Layer นั้น แล้วค่อยไล่ไปยังจุดที่มีการเชื่อมต่อกับ Layer อื่น
ว่าปัญหานี้มีผลกระทบกับ Layer นั้นหรือไม่ ทำให้ทุกๆ การทำงานใน MVC เราสามารถควบคุมทุกอย่างไว้ได้หมด

ในบันทึกนี้เป็นการอธิบาย Concept คร่่าวๆของ RoR หวังว่าคงจะทำให้คุณผู้อ่านเห็นภาพรวมไม่มากก็น้อย
ในบันทึกหน้าจะมี Reading List และ Resource ที่เกี่ยวกับ RoR มาฝาก

คำสำคัญ (Tags): #mvc#rails#ruby#ruby on rails#tutorial
หมายเลขบันทึก: 175378เขียนเมื่อ 5 เมษายน 2008 02:47 น. ()แก้ไขเมื่อ 23 มิถุนายน 2012 02:50 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)

อ่านบทความ Ruby on Rails ไปพร้อมกันกับเรา Symbolet

www.symbolet.com

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท