•Ruby คืออะไร
เป็นภาษาคอมพิวเตอร์ที่มีลักษณะเป็นโปรแกรมแปลภาษา (interpreter) เหมือนกับ Perl, Python,Java
เป็นภาษา script object oriented เป็นภาษาที่มี Syntax ที่สั้น กระชับ ไม่ซับซ้อน
Ruby มักมีรูปแบบ Syntax คล้ายกับภาษา Perl และ Python โดยรวมข้อดีของ Perl และ Python ไว้ มักมีผู้บอกว่าสิ่งไหนที่มีใน Perl แต่ไม่มีใน Python หรือสิ่งไหน
ที่มีใน Python แต่ไม่มีใน Perl มักจะพบอยู่ในภาษา Ruby

•ที่มาของภาษา Ruby
- Ruby ถูกคิดค้นและพัฒนาในประเทศ ญี่ปุ่น โดย Yukihiro Matsumoto
-1993, February 24: Yukihiro Matsumoto ("Matz") started to work on Ruby.
-1993, Summer: First "Hello, world!" program works.
-1995, December: First release 0.95.
-1996, December: 1.0 is released.
-1999: Supposedly overtakes Python in Japan.
-2000: The first official newsgroup.
-2000-2001: Several books and magazine articles published.
-2003, August 4: 1.8.0 is released.
-2005, December 24 : 1.8.4 is released .

•Ruby On Rails (Rails or ROR) คืออะไร
-เป็นโอเพนซอร์ส web application framework ที่พัฒนาด้วยภาษา Ruby
-มีลักษณะของ Model-View-Controller(MVC) architecture
-สนับสนุนให้แอพลิเคชั่นในโลกถูกพัฒนาด้วยโค้ดที่น้อยลงกว่าเฟรมเวิร์คอื่น และมี
configuration น้อยที่สุด เพื่อความง่ายต่อการประยุกต์ใช้
-มีหลักการของ "Don't Repeat Yourself" (DRY) คือ สิ่งไหนที่รู้แล้ว ก็จะไม่ทำซ้ำ
-Don't Repeat Yourself หมายความว่า ถ้าคิดว่าถูกแล้วก็ไม่ควรทำซ้ำ เช่น
ถ้ามอง ในโคดภาษา JAVA,C++ จะเห็น semicolons (;) ทุกๆที่ เพื่อบอกว่าจบ
บรรทัด แต่ Ruby บอกว่า ฉันรู้แล้วว่าจบบรรทัด เพราะผู้เขียนได้กดแป้น Enter เพื่อที่จะ
เริ่มบรรทัดใหม่ ดังนั้นมันจึงบันทึกการเคาะแป้นพิมพ์ ซึ่งใน Rails มีบางข้อตกลงที่เข้าใจ
ระหว่างคุณและคอมพิวเตอร์
-Rails เป็นอันดับหนึ่งของการเผยแพร่ ผ่าน RubyGems (เป็นตัวจัดการ package ในภาษา
Ruby ที่จะดูในเรื่องของ รูปแบบของ packaging และมี Libraries ไว้ให้ใช้มากมาย

•ประวัติความเป็นมาของ ROR
- Rails ถูกพัฒนาโดย David Heinemeier Hansson
- version 1.0 13 ธันวาคม 2005
- version 1.1 28 มีนาคม 2006

•Web application framework คืออะไร
Framework เป็นโครงสร้างของโปรแกรม โปรแกรมเมอร์ส่วนใหญ่ ใช้เวลาส่วนมากของการพัฒนา web application ไปกับการเขียนโปรแกรมโดยทั่วไป มากกว่าฟังก์ชันพิเศษ ดังนั้นการนำชิ้นส่วนของ code เดิมกลับมาใช้ (Reusable) จึงได้รับความนิยม ในการสร้าง web application โดยตัว Component ที่นำกลับมาใช้ใหม่นี้ จะเรียกว่า "framework" Framework ที่ดีต้องง่ายในการเพิ่ม แก้ไข เปลี่ยนแปลง ในส่วนของ application

• Rails framework
- Form data validation (การตรวจสอบข้อมูลใน form)
- Application template (การสร้าง template ด้วย CSS?)
- Email sending and receiving (การจัดการ รับ-ส่ง email)
- Date and time formatting and manipulation (รูปแบบของวัน – เวลา)
- Session and cookie management (การจัดการ session , cookie )
- สนับสนุนการทำงาน Web 2.0 ด้วย AJax

• Model
ใน object oriented การใช้เว็บ database-driven จะเป็นแบบ MVC ซึ่ง Model จะประกอบด้วย class ที่เชื่อมต่อกับ RDBMS ใน Ruby On Rails class model จะถูกจัดการผ่านทาง Active Record (เป็นตัวเข้าถึงข้อมูลในฐานข้อมูล) ซึ่งโปรแกรมเมอร์ทุกคนควร ต้องทำเป็น subclass คือ ActiveRecord?::Base class และโปรแกรมจะเข้าใจอัตโนมัติว่าจะใช้ตาราง RDBMS อันไหน และเรียกคอลัมภ์ต่างๆในตารางเอง

ใน Model มีการติดต่อกับ Active Record เพื่อช่วยจัดการงานด้าน Database เช่น

  • ดูแลในเรื่องของการติดต่อสื่อสารระหว่าง Object และ Database โดยที่ผู้พัฒนาไม่ต้องยุ่งยากกับการใช้ SQL command
  • เป็นงานด้านการตรวจสอบความสัมพันธ์ของข้อมูล มีผลกับฐานข้อมูล
  • Handles validation(ตรวจสอบความถูกต้อง), association(ความสัมพันธ์ระหว่างฐานข้อมูล), transactions, and more…

• View
- เป็นส่วนที่ต้องแสดงผลผ่าน web browser
- เขียนด้วยพื้นฐานของ HTML(.rhtml), แทรกด้วย script ของ ruby คล้าย PHP,JSP,ASP
- การทำงานสัมพันธ์อยู่กับ controller
- นำ component มาใช้ใหม่ได้ (Reusable)
- สนับสนุน Ajax
- View เป็นการแสดงผลทาง logic หรือ การทำอย่างไรให้ข้อมูลจาก Controller class ถูกแสดงผล วิธีการใน Rails จะใช้ Embedded Ruby (ไฟล์นามสกุล .rhtml) ซึ่งก็เป็นพื้นฐานจาก HTML และด้วยไวยากรณ์ (syntax) ที่คล้าย JSP นอกจากนี้ด้วยยังสนับสนุนการใช้ HTML และ XML
- สำหรับ method ที่อยู่ใน class ของ controller หากต้องการที่จะแสดงผลแก่ผู้ใช้ จึงจำเป็นต้องเขียน code ย่อยขึ้นมา และเก็บในโฟลเดอร์ของ view นี้เอง โดยจะต้องตั้งชื่อไฟล์นี้ เป็นชื่อเดียวกันกับ method ใน controller ที่ต้องการให้มี output ในการแสดงผล เช่น
- ใน controller mysite มีการกำหนด method ที่มีชื่อว่า
index,home,contact เป็นต้น โดยทั้ง 3 method ต้องมีการแสดงผลต่างกัน ดังนั้น
โปรแกรมเมอร์ต้องเขียนไฟล์ในการแสดงผลใน โฟลเดอร์ view 3 ไฟล์ ได้แก่
index.rhtml , home.rhtml , contact.rhtml เป็นต้น
- นอกจากนี้ยังสามารถกำหนด stysheet และ template เพื่อให้งานเว็บแอพลิเคชั่นนั้นมี
มาตรฐานเดียวกันทั้งหมด ในกรณี template จะสร้างไฟล์ ที่เป็นตัวกำหนด header,
content, footer ไว้ที่โฟลเดอร์ layout ภายใต้โฟลเดอร์ view ซึ่งลักษณะการทำ
งานของไฟล์นี้ จะถูกเรียกใช้ในการแสดงผลทุกครั้ง เป็นต้น

• Controller
- เป็นส่วนที่ทำงานเป็นอันดับแรกเมื่อมีโปรแกรมถูกเรียก จาก Web browser
- เป็นส่วนที่ติดต่อการทำงานระหว่างผู้ใช้และโปรแกรม
- มีการติดต่อกับ Database(ฐานข้อมูล) ด้วย Model และแสดงผลข้อมูลผ่านทาง View
- เป็นส่วนที่มีการประมวลผลหลัก ของโปรแกรม

• การทำงานของ Ruby On Rails
1.Client หรือผู้ใช้ร้องขอข้อมูลทาง Web site
2.Web server รับการร้องขอในรูปแบบต่างๆ ผ่านทาง HTTP,RSS,ATOM หรือ SOAP
3.Web server ส่งต่อไปยังไฟล์ที่ชื่อว่า dispatcher ที่อยู่ใน Rails ซึ่งเป็นไฟล์สำหรับโหลด Controller ให้ทำงาน
4.ไฟล์ Dispatcher ทำงาน โดยจะโหลดตัว Controller ที่อยู่ใน Rails ขึ้นมา
5.Controller เป็นส่วนแรกของการทำงานแบบ MVC ติดต่อกับ Model และ View หน้าที่คือการประมวลผลหลักของโปรแกรม ซึ่งการทำงานขึ้นอยู่กับสิ่งที่ผู้ใช้ร้องขอมา เช่น
• ถ้าผู้ใช้ร้องขอ ข้อมูลใน Database
- Controller จะติดต่อไปยัง Model
- Model ก็จะมีตัว Active Record สำหรับจัดการทุกอย่างที่เกียวข้องกับ
Database
- สุดท้ายก็จะส่งข้อมูลที่ได้จาก Model กลับไปให้ Controller
- Controller ส่งผลลัพธ์กลับไปยังผู้ใช้ผ่าน View
• ถ้าผู้ใช้ ร้องขอข้อมูลในรูปแบบของ Webservice
- Controller จะมีการทำงานโดยใช้ Action Web service
- และส่งผลลัพธ์กลับไปยังผู้ใช้ผ่าน View
• ถ้าเป็นในรูปแบบของ Mail
- Controller จะใช้ Active mailler สำหรับจัดการ การรับ-ส่ง
Email
- Refresh ตัวมันเอง
6.สุดท้ายข้อมูลต่่างๆ ที่ผ่านการประมวลผลใน Controller แล้ว จะถูกส่งมายังส่วนของ View
7.View ส่งข้อมูลกลับมายัง Web browser เพื่อแสดงผลกับผู้ใช้งาน ซึ่งรูปแบบการแสดงผลก็ได้แก่ HTML,CSS,Javascript,Image,XML เป็นต้น

• การสนับสนุนต่างๆของ Ruby On Rails
- Database
- MySQL
- PostgreSQL
- SQLite
- SQL Server
- DB2
- Oracle
- OS
- Windows
- Unix/Linux
- Mac OS X

• สรุปข้อดีของ Ruby On Rails
- Code เขียนง่าย ไม่ซับซ้อน เมื่อเทียบกับ java
- ถ้า Code สั้น ดังนั้นโอกาสในการเกิด Bug จึงน้อย
- เป็น Open source
- มี Library ให้นำไปใช้เป็นจำนวนมาก
- ง่ายต่อการนำไปขยายและพัฒนาต่อ (extend)
- เป็น pure Object Oriented้

• สรุปข้อเสียของ Ruby On Rails
- ผู้พัฒนาต้องการเรียนรู้ตามโครงสร้างของ Rails

- Ruby มี Library ให้เรียกใช้น้อยกว่าภาษาอื่น

จัดทำโดย : Omegalll
ขอขอบคุณ : http://wiki.nectec.or.th/giti/Knowledge/RubyOnRails
****สามารถศึกษาต่อเพิ่มเติม ได้ที่ URL ด้านบนนะครับ****
****ขอคุณทุก ๆ ท่าน และหวังว่า Blog นี้จะเป็นสื่อที่ให้ความรู้เกี่ยวกับ Ruby ได้พอสมควร ผิดพลาดประการใด Comment ได้เลยนะครับมือใหม่หัดขับครับ

Get latest news from Blognone

Comments

By: multiplex on 26 November 2007 - 13:48 #36204

น่าจะ Post ที่ codenone นะครับ

By: piranus on 27 November 2007 - 06:06 #36257

ก็ดีนะครับ เผื่อบางคนไม่ได้เข้า codenone เลย จะได้เป็นการแนะนำไปในตัว

By: ABZee on 27 November 2007 - 07:14 #36262

ละเอียดดีครับ แต่อ่านยากไปนิด

PoomK

By: JavaDevil
iPhoneUbuntuIn Love
on 28 November 2007 - 02:24 #36390

ถ้าเราเขียน Web แล้วสามารถ deploy บน server อะไรครับ แล้ว Web Hosting ส่วนใหญ่ support หรือเปล่า?

แล้วที่ต่อกับ database แล้วไม่ต้องใช้ SQL Command มันเก่งขนาดนั้นเลย?? -- น่าสนใจมากๆ

By: Freedomlover
AndroidRed HatUbuntuWindows
on 9 August 2008 - 16:12 #60876 Reply to:36390

ในไทย ยังไม่ค่อยเจอโฮสที่ support นะครับ มีไม่กี่ที่อะ ยกตัวอย่างมาใ้ห้ 1 ที่ ที่ support ครับ

www.jaideawhosting.com

By: moniguna on 28 November 2007 - 10:18 #36412

น่าจะจัด หน้าตาบทความให้อ่านง่ายกว่านี้นะครับ