Ruby on Rails

מתוך ויקיפדיה, האנציקלופדיה החופשית
הלוגו של Ruby On Rails

Ruby on Rails ‏(נקראת בקיצור: Rails, ריילס, או RoR) הוא שלד תוכנה לכתיבת אפליקציות רשת, שנכתבה בשפת רובי (Ruby) כמיזם קוד פתוח. ריילס מיישמת ארכיטקטורת מודל-תצוגה-בקרה (MVC – Model-View-Controller) ומיפוי אובייקטים למסד נתונים יחסי (ORM). בין עקרונותיה: פשטות, אי-חזרה על קטעי קוד והעדפת מוסכמות על פני הגדרות. על ידי כך, מתאפשרת כתיבת אפליקציות רשת בעזרת מעט מאוד שורות קוד, יחסית לשלדי תוכנה ושפות תכנות אחרות.[דרוש מקור]

עקרונות מנחים[עריכת קוד מקור | עריכה]

העקרונות המנחים את ריילס הם:

  1. "אל תחזרו על עצמכם" (DRY - Don't Repeat Yourself)
  2. "מוסכמות על פני הגדרות" (CoC - Convention Over Configuration)

אל תחזרו על עצמכם[עריכת קוד מקור | עריכה]

הכוונה ב"אל תחזרו על עצמכם", שהגדרות צריכות להיכתב רק פעם אחת. כל ישות מוגדרת פעם אחת ובמקום אחד. עיקרון זה תורם לצמצום מספר שורות הקוד ליישום אפליקציה, ותורם רבות לצמצום מספר הבאגים באפליקציה. עם זאת, עיקרון זה קיים כמעט בכל שפות התכנות.

מוסכמות על פני הגדרות[עריכת קוד מקור | עריכה]

ערך מורחב – Convention over configuration

על התוכניתן לבצע קונפיגורציה (הגדרות) רק כאשר ההגדרות אינן מתנהגות בהתאם ל"מוסכמות" של ריילס. לדוגמה: אם יש מודל בשם "Post" באפליקציה, אזי טבלת מסד הנתונים בו יישמרו ערכי המודל תיקרא "posts". אם התוכניתן חפץ לחרוג ממוסכמה זו, או אז עליו להגדיר את המיפוי החריג.

גם מוסכמה זאת קיימת בשפות פיתוח אחרות. כדוגמה, בערכת הפיתוח ג'ומלה, המתבססת על PHP, ישנם קיטים מוכנים רבים המאפשרים יכולות שונות (למשל, בלוג), שיוצרים טבלאות במסד הנתונים. אם רוצים לשנות את שם הטבלה, יש צורך להגדיר את המיפוי החריג.

היסטוריה[עריכת קוד מקור | עריכה]

ריילס פותחה כשכבה נוספת על בסיס שפת Ruby על ידי דייוויד היינמאייר הנסון, בעת שעבד על כלי לניהול פרויקטים בשם Basecamp. הגרסה הראשונה, אותה פיתח בזמנו הפנוי, יצאה לאור ביולי 2004 בכנס רובי-קון. גרסה 1.0 יצאה לאור ב-13 בדצמבר 2005.

מיפוי אובייקטים[עריכת קוד מקור | עריכה]

ריילס מכילה שכבת מיפוי אובייקטים למסד נתונים (ORM). דהיינו, אם התוכניתן מגדיר מודל בשם "User" המכיל פרטי משתמש, אזי המערכת תמפה את טבלת users ממסד הנתונים למודל זה ובחזרה ממנו. כלומר, אם בזמן ריצה ישתנה ערך באובייקט, לדוגמה על ידי:

myuser.name="Israel Israeli"
myuser.save

אזי שמו של המשתמש יישמר במסד הנתונים בצורה אוטומטית. ריילס תומכת בכל מסדי הנתונים הפופולריים (על ידי מודול ActiveRecord). בנוסף לזאת, ריילס תומכת בפריסה ועדכון של גרסאות חדשות, והמרת מסד הנתונים לתמוך בגרסאות החדשות בצורה יעילה ו"נטולת כאבים".

ארכיטקטורת מודל-תצוגה-בקרה[עריכת קוד מקור | עריכה]

כמו תשתיות מודרניות דומות, גם Ruby on Rails בנויה בארכיטקטורת מודל-תצוגה-בקרה (MVC).

מודל[עריכת קוד מקור | עריכה]

המודל הוא הנתונים עצמם. בריילס, כמו ביישומים אחרים שמשתמשים במסדי נתונים, מודל הוא אובייקט שמקביל לטבלה במסד הנתונים. מחלקות מודל יורשות מ-ActiveRecord. ברגע שיורשים ממחלקה זו, המודל ממופה אוטומטית לטבלה במסד הנתונים, ויורש פונקציות גישה וחיפוש נתונים בצורה אוטומטית. כל השדות המופיעים בטבלה ממופים לפונקציות הבאות (accessors / getters and setters).[דרושה הבהרה] בנוסף, ריילס מאפשרת הגדרת יחסים בין מודלים, כגון: "has_many" ו"belongs_to". כך, אפשר להגדיר ש"ספר (book) שייך למחבר (author)" וריילס תממש את כל השאר – חיפוש על פי הקישור וגישה לנתונים. זאת ועוד, ניתן להגדיר מאמתים (Validators) אשר מוודאים בזמן ריצה כי הנתונים המסופקים עומדים בקריטריונים המוגדרים, כגון אורך מינימלי, הימצאות הערך בטווח מסוים, וכדומה.

תצוגה[עריכת קוד מקור | עריכה]

בארכיטקטורת מודל-תצוגה-בקרה, "תצוגה" הוא החלק האחראי על תצוגת המודל לפי התנאים שמוגדרים על ידי ה"בקר". באפליקציות רשת, חלק זה כמעט נטול קוד, אלא בעיקר HTML, בו משובצים ערכים מהמודל או מהבקר (בדומה ל-JSP ו-PHP – אך ללא כתיבת קוד). לכל שיטה (Method) בבקר, יש לכתוב קוד תצוגה קצר. עימוד האתר נעשה במקום אחר. כך, ניתן לשנות את מבנה ועימוד האתר בנפרד מפלט פעולות ספציפי.

בקרה[עריכת קוד מקור | עריכה]

הבקר מגיב לבקשות מהמשתמש, וקורא לביצוע לוגיקת האפליקציה (Business Logic). לאחר מכן הוא מקשר את תוצאות הריצה עם תבנית התצוגה. מתודות של הבקר מופעלות על ידי המשתמש על ידי קריאה להם מהדפדפן. כתוצאה מכך, ה-URL-ים של אפליקציית רשת שנכתבה בריילס הם פשוטים והגיוניים. כך, URL, כגון: http://myblog.com/creation/show/15, קורא לבקר בשם "creation", מפעיל שיטה בשם "show" ומעביר לה פרמטר "15", המזהה למשל את מאמר בלוג מספר 15.

בנוסף, לריילס קיימת מערכת "פיגומים" (Scaffolding), המייצרת בצורה אוטומטית את כל דפי האפליקציה הנחוצים להוספה, מחיקה ושינוי של כל טבלאות הנתונים של האפליקציה.

רכיבים נוספים[עריכת קוד מקור | עריכה]

ריילס מגיעה עם מודולים נוספים, כגון: ActionMailer, המנהל שליחת וקבלת דואר אלקטרוני מתוך האפליקציה, תמיכה במתן שירותי SOAP מתוך האפליקציה, ספריות JavaScript לעבודה קלה עם AJAX ועוד.

ראו גם[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא Ruby on Rails בוויקישיתוף