Ruby on Rails (บางครั้งเรียกว่า RoR) เป็น open-source web application framework ยอดนิยมที่สุด
มันสร้างด้วยภาษาโปรแกรมมิ่ง Ruby
คุณสามารถใช้ Rails ช่วยสร้างแอปพลิเคชันได้ ตั้งแต่ simple ถึง complex ไม่มีขีดจำกัดสิ่งที่คุณบรรลุได้กับ Rails!
Framework คืออะไร?
Framework คือชุดของโค้ด เครื่องมือ และ utilities ที่ให้โครงสร้างเฉพาะให้คุณทำงานเมื่อเขียนซอฟต์แวร์
โครงสร้างนี้ทำให้โค้ดของคุณ organized มากขึ้น
งานของคุณจะง่ายขึ้นเมื่อคุณเรียนรู้การใช้งานให้ถูกต้อง
Rails ทำอะไรอย่างแน่นอน?
Rails ช่วยสร้างเว็บไซต์
ประเภท เว็บไซต์ที่คุณใช้ทุกวัน
ไซต์ที่ให้คุณ login, คอมเมนต์ และรีวิว, ซื้อของ…
Rails ประกอบด้วยหลาย components เพื่ออำนวยความสะดวก
ตัวอย่าง:
Active Record ช่วยอ่าน สร้าง และ update records ใน database ของคุณโดยไม่ต้องเป็น database genius
ในขณะที่ routing mechanism อนุญาตให้คุณ map URLs (เช่น /login) ไปยัง actions เฉพาะได้ง่ายๆ
หากคุณต้องเขียนทั้งหมดจากศูนย์โดยไม่มี framework จะเป็นงาน มหาศาล
แต Rails จัดการรายละเอียดทั้งหมดนี้ให้คุณ…
ดังนั้นคุณจึงโฟกัสที่การสร้างแอปพลิเคชันของตัวเอง!
ตัวอย่าง Ruby on Rails Applications
ใครใช้ Rails บ้าง?
มีตัวอย่าง Ruby on Rails sites อะไรบ้าง?
นี่คือบางส่วน:
- Github
- Shopify
- Ask.fm
- Kickstarter
- Scribd
- ConvertKit
- Twitch
- Instacart
- Zendesk
- SoundCloud
บริษัทเหล่านี้ไม่ได้เป็นบริษัทเล็ก!
และทั้งหมดได้ประโยชน์จากการใช้ Ruby on Rails ในการบริการลูกค้า
คุณควรเรียน Rails ไหม?
หากคุณมองหาอาชีพที่ท้าทาย สนุก และสร้างสรรค์ สร้างเว็บไซต์ยอดเยี่ยมที่ช่วยคน Rails อาจเหมาะกับคุณ
ใครก็เรียน Rails ได้ แม้คุณไม่มีประสบการณ์ programming
อาจใช้เวลามากหรือน้อยขึ้นอยู่กับตำแหน่งของคุณ
แตทุก skill สามารถเรียนรู้และ master ได้
ประโยชน์ของการใช้ Rails:
- เป็น integrated solution Rails ให้ ทุกอย่างที่คุณต้องการสร้าง web application
- Rails conventions และ default configuration ประหยัดงานเยอะมาก!
- Rails มี ecosystem ยอดเยี่ยม หาเครื่องมือและ support ที่ต้องการได้หมด
- อยู่ภายใต้ active development ได้ fixes และ features ใหม่เป็นประจำ!
และเหตุผลที่ดีที่สุด:
"คุณได้ใช้ Ruby ซึ่งยังคงเป็นภาษาที่สวยงามและหรูหราที่สุดที่ผมเคยพบ" — DHH, ผู้สร้าง Ruby on Rails
ปรัชญา Rails
Ruby on Rails เป็น opinionated framework
ความเห็นหนึ่งคือ convention ควรสำคัญกว่า configuration
หมายความว่าอะไร?
หมายถึงคุณต้องตัดสินใจน้อยลง เพราะผู้สร้าง Rails ตัดสินใจให้คุณแล้ว
เพราะคุณตัดสินใจน้อยลง คุณจะ productive มากขึ้น และทำสิ่งต่างๆ เสร็จเร็วขึ้น
แต่หากอยากเปลี่ยนบางอย่าง คุณทำได้
มี ตัวอย่าง convention over configuration อะไรบ้าง?
Rails มองหาชื่อไฟล์เฉพาะเมื่อหาโค้ดของคุณ
เช่น หากคุณมี model Book Rails จะมองหาไฟล์ชื่อ app/models/book.rb
นี่คือ convention
แทนที่จะต้องพูดว่า:
"Hey Rails, นี่คือที่ตั้งของไฟล์นี้"
Rails บอกคุณว่ามันควรอยู่ที่ไหน
ภาพรวม Rails แบบ Ten Thousand Foot
Rails เหมาะกับ big picture ของ complete web application อย่างไร?
ผมวาดไว้ให้คุณ:

Rails รับ requests, route ไปยัง action ที่เหมาะสม ซึ่ง interact กับ database (ผ่าน ActiveRecord) เพื่อ fulfill request แล้วคืนผลลัพธ์ (HTML หรือ JSON) กลับไปยังผู้ใช้
หากอยาก zoom in ส่วนของ Rails ต้อง technical หน่อย
Rails ใช้สถาปัตยกรรม MVC
MVC ย่อมาจาก Model, View, Controller
นี่คือภาพ:

Actions จัดเป็น controllers controllers ตัดสินใจวิธี process request และขอข้อมูลจาก database ที่ต้องการ
จากนั้น controller render view
View คือ design และ content ของหน้า
เป็นผลิตภัณฑ์สุดท้ายที่จะส่งคืนให้ผู้ใช้
ใครคิดค้น Ruby on Rails?
David Heinemeier Hansson (DHH) ปล่อย Ruby on Rails 1.0 เมื่อ ธันวาคม 2005
เกือบ 14 ปีต่อมา David ยังคงทำงานบน Rails พร้อมกลุ่ม open-source contributors ใหญ่ เพื่อทำให้มันดีขึ้นและเร็วขึ้น
ทำไมเขาถึงสร้าง Rails?
"ผมสร้าง Rails เพราะผมอยาก enjoy กับสิ่งที่ผมทำงาน" — DHH
ดูเหมือนเหตุผลดีมาก 🙂
Ruby เทียบกับ Ruby on Rails
Ruby เป็นภาษาโปรแกรมมิ่ง
Ruby on Rails เป็น framework สร้างบน Ruby
ความแตกต่างคืออะไร?
Ruby คือสิ่งที่แปลง source code (รวม Rails) ให้คอมพิวเตอร์เข้าใจ
Rails เป็น layer บน Ruby
Layer ที่ช่วยสร้าง web applications
แต Ruby เอง ทำได้มากกว่านั้น เป็นภาษาโปรแกรมมิ่งพลังงาน
นี่คือบางสิ่งที่คุณทำได้:
- คุณสามารถ crawl และ scrape websites เพื่อดึงข้อมูล
- คุณสามารถ automate tasks เช่น backups, alerts และ notifications
- คุณสร้าง tools และ utilities ในทุกประเภท เช่น log parsers, security scanners, file content analysis…
สรุปคือ:
Rails ทำให้ Ruby เป็น platform ที่ดีมากสำหรับสร้าง web applications แตก็มี ecosystem ของ non-Rails programs ที่แข็งแกร่งสร้างด้วย Ruby เช่นกัน
วิธีเริ่มเรียน Rails
ตอนนี้:
นี่คือ ข้อผิดพลาดใหญ่ที่สุดที่คนหลายคนทำ
แตคุณหลีกเลี่ยงได้หากเข้าใจสิ่งนี้:
เรียน general programming concepts และภาษา Ruby ก่อน
ก่อนจะกระโดดเข้าสู่ Rails!
เหตุผลง่ายมาก
คุณ ไม่สามารถ เริ่มสร้างบ้านจากหลังคา…
หากคุณไม่เข้าใจ foundation ของ Rails คุณจะสับสน
เมื่อเห็น error message มันจะฟังดูเหมือนภาษาต่างดาว
และนั่นจะ ทำให้คุณ frustrate มาก
วิธีแก้?
เริ่มเรียน Ruby
อดทน ตรวจสอบให้แน่ใจว่าคุณเรียนดี
หากมองหา Ruby tutorial ฟรี beginner-friendly นี่คือตัวที่ผมเขียนให้คุณ
ครอบคลุม basic ทั้งหมด
และทำ สิ่ง unique ที่ tutorial ส่วนใหญ่ไม่ทำ:
- มัน motivate คุณให้ดำเนินต่อไป
- เก็บสิ่งต่างๆ ให้ simple
- เตือนคุณเกี่ยวกับ pitfalls และสิ่งที่ต้องระวัง
พร้อมเริ่ม旅程 Ruby developer?
เริ่มเรียน Ruby ตอนนี้