Isriya Paireepairit / mk / markpeak
A Thai tech geek. Co-founder of Blognone and SIU. Blogging on almost everything.
หลังจากอ่านอย่างเป็นเรื่องเป็นราวก็พอจับแนวคิดของ Rails ได้
สมัยผมเรียน โปรเจคจบผมคือทำ web-based monitoring tools ที่ชื่อ SCMSWeb โดยงานหลักคือใช้ Python เขียน CGI (ซึ่งก็ไม่ค่อยมีใครเค้าทำกัน) ส่วนงานรองก็ตกแต่งเว็บ เขียน CSS
ก็เลยรู้ซึ้งว่า การเขียน web application นั้น เอาเข้าจริงงานมันมีไม่กี่อย่าง ซ้ำๆ ซากๆ น่าเบื่อมาก และ debug ยากอีกต่างหาก
งานหลักๆ มีดังนี้
สิ่งที่ทำให้ Rails ดัง ก็เพราะออกแบบมาจัดการกับปัญหาพวกนี้ เราจะได้เอาเวลาไปทำอย่างอื่นที่มีประโยชน์กว่า และลดปัญหาบั๊กจากอะไรที่ดูเป็น template เหล่านี้ด้วย
Active Record
คราวที่แล้วผมเขียนไว้ว่าฟีเจอร์ของ Rails ที่ประทับใจผมมาก ก็คือการแมป table ในฐานข้อมูลเข้ากับ class ในโปรแกรมของเราอัตโนมัติ ชื่อเรียกของมันคือ Active Record น่ะเอง การทำงานของมันขอยกเป็นประโยคมาดีกว่า
Active Record automatically maps tables to classes, rows to objects (instances of the model classes), and columns to object attributes.
อย่างที่เขียนไปแล้วว่ามันฉลาดมาก สามารถแมปคลาส Country กับตาราง countries หรือแม้แต่คลาส Person กับตาราง people แน่มั้ยล่ะ อันนี้ช่วยแก้ปัญหาข้อแรก
Action Pack
ทำหน้าที่จัดการกับส่วน view และ controller ให้เรา เช่น ช่วย gen URL หรือฟอร์มตาม class ที่เรากำหนดใน model อย่างอัตโนมัติ เดี๋ยวไว้เขียนเก่งๆ แล้วมาอธิบายวันหลัง แก้ไขปัญหาข้อที่สอง
Scaffolding
ในปัญหาข้อที่สาม operation พื้นฐาน 4 อย่างเค้าเรียกว่า CRUD (Create, Retrieve, Update, and Delete) การทำ Scaffold คือ Rails จะสร้างเพจที่ไว้ทำ CRUD แบบง่ายๆ ให้สำเร็จรูปโดยสิ่งที่เราต้องทำคือประกาศใช้ Scaffold บรรทัดเดียว มันสะดวกมากเมื่อต้องการให้เพจของเรามันทำงานได้ก่อน แล้วค่อยไปแต่งให้สวยทีหลัง เช่น Create แบบมี category อะไรพวกนั้น
วันนี้เอาแค่นี้ก่อน
Comments
plynoi
25 February, 2006 - 15:53
Permalink
Active Record เป็น
Active Record เป็น ORM รึเปล่า?
mk
26 February, 2006 - 07:17
Permalink
ไม่รู้ครับ (ผมไม่รู้จัก ORM ด้วยว่าคืออะไร ความรู้เขียนโปรแกรมน้อยมาก)
Wiennat
26 February, 2006 - 09:18
Permalink
O/R Mapping
O/R Mapping รึเปล่า?
plynoi
26 February, 2006 - 15:45
Permalink
จาก link ActiveRecord
จาก link
ActiveRecord in Ruby
มันเป็น O/R Mapping จริงๆด้วยแหะ :)
อ้อ ORM คือ An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data. จาก Martin Fowler
Add new comment