להתגלגל עם Ruby On Rails

רובי און ריילס ( Ruby-On-Rails, ריילס בקיצור) היא תשתית פיתוח לאתרים ויישומים אינטרנטים.אחד היתרונות בשימוש בתשתית פיתוח הוא שלא צריך להתחיל מאפס. התשתית מספקת כלים לעבודה מול מסדי נתונים, מנגנוני cache, דואר אלקטרוני ושאר פטישים ומזמרות. זהר ארד מסביר לנו מתי כדאי לבחור בריילס ומסכם : מה יש לא לאהוב, הרי רק דברים טובים שמתי בפנים?!.

Ruby-On-Rails

רובי און ריילס ( Ruby-On-Rails, ריילס בקיצור) היא תשתית פיתוח לאתרים ויישומים אינטרנטים (Web framework) בשפת רובי, אשר פותחה על-ידי דייויד היינמאייר-הנסון, ושוחררה כפרוייקט קוד פתוח בפברואר 2005.

ריילס מיישמת ארכיטקטורת הפיתוח לפי מודל MVC בו שכבת הנתונים (Model) ושכבת התצוגה (View) נפרדות ומנוהלות על-ידי שכבה מגשרת (Controller), וכן פילוסופיית פיתוח בעלת שני נדבכים מרכזיים:
Convention over Configuration
על המפתח לציין רק את ההיבטים ביישום שחורגים מן המוסכמות, כמו שם חריג של טבלה במסד הנתונים.
Don't Repeat Yourself
מידע או פעולה מסויימת בקוד ייכתבו במקום אחד בלבד.

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

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

מוסכמות
אחד ההיבטים החזקים של ריילס הינו העבודה לפי מוסכמות אשר מאפשרת למפתח להתרכז בכתיבת היישום ולא במחשבות סרק. למעשה, כל עוד לא נכתב קוד המגדיר אחרת, התשתית תדאג שהקוד יעבוד, כל עוד המפתח ידאג לעבוד לפי המוסכמות.
בנוסף, עבודה לפי מוסכמות מקצרת משמעותית את זמני הפיתוח (וכמות השערות הלבנות) ומקלה על עבודה של מספר מפתחים על אותו פרוייקט מכיוון שהיא מקנה שפה משותפת ועקרונות עבודה ברורים.
אוטומציה
לרשות המפתח עומד אוסף תסריטים הרצים משורת הפקודה ומאפשרים ביצוע פעולות שכיחות בצורה קלה ואחידה כמו:
•    יצירת קבצים חדשים מסוג model, view, controller
•    הוספה אוטמטית של קבצי הגדרות בעת יצירת model חדש המאפשרים הוספה ומחיקה של טבלאות במסד הנתונים בקלות
•    התקנת תוספים ביישום
•    כתיבה והרצה של Unit Testing

Scaffolding
ריילס מאפשרת יצירה אוטומטית של ממשקי הזנת מידע למסד הנתונים (מעין מערכת ניהול תוכן בסיסית ביותר הנקראת Scaffold) היכולים לשמש בסיס לכתיבת מערכת ניהול תוכן מורכבת יותר, או להזנת מידע בסיסי למסד הנתונים בעת הפיתוח. הדבר שימושי במיוחד בעת בדיקה ראשונית של רכיבי Model חדשים מכיוון שבאמצעות פקודה אחת ניתן ליצור את ממשק הזנת הנתונים ל-Model החדש ולבדוק את תקינות הקוד.

טיפול נכון בשגיאות
טיפול נכון בשגיאות הינו אחד הנדבכים המרכזיים בכתיבת תוכנה, כי בין אם נרצה ובין אם לאו, שגיאות קורות.
בנוסף למנגנוני טיפול השגיאות של רובי, ריילס מאפשרת טיפול נוח בשגיאות הקורות בעת עבודה מול מסד הנתונים הכולל גם ממשק נוח לעבודה ב Transactions, וכן ממשק העברת הודעות שגיאה בצורה אחידה בין רכיבים שונים ביישום (למשל מה-Model דרך ה-Controller ל-View). למפתח לא נותר אלא להטמיע ולהתריע – בלי תרוצים (ובלי מאמץ מיוחד).

עבודה מהנה וקהילה תומכת

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

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

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

מקורות מידע נוספים אודות רובי וריילס:

אתר הבית של רובי
אתר הבית של ריילס
מאגר התוספים המקוון של רובי
מדריכי תכנות בריילס

רובי און ריילס ישראל

זהר ארד

בן 35, קיבוצניק שהדרים לעיר הגדולה, מפתח client-side בנשמתו (מטהקפה, קול הקמפוס 106fm ואחרים). משתמש מקינטוש מושבע (שחוטא גם בלינוקס בשעות הפנאי). מעדיף הכל פשוט, מינימליסטי ועובד טוב ומשתדל להמנע מדברים עם הלוגו של מיקרוסופט ונהגי מוניות כעסנים. אוהב הרבה Web, מתובלת בג'אווהסקריפט, HTML, CSS, פייתון ורובי, ספרים, פפאיות ומוזיקה מהחנות (בדיסק המקורי). מתנודד תדיר בין אקזיסטנציאליזם לאינדיבידואליזם ונכון להיום עדיין אוחז ב-fetish לא מוסבר לצבים.

הגב

8 Comments on "להתגלגל עם Ruby On Rails"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
גלעד
Guest

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

כדאי להתייחס גם לטכנולוגיות \ ספריות של צד הלקוח.

אני זורק שמות לאויר בלי סדר מסויים שכדאי להתייחס אליהם:
j2ee
jdo
jpa
hibernate

jquery
prototype
dojo

GWT

זה נושא מענין כי עושה רושם שיש היום הרבה יותר פתרונות ממה שצריך וקשה לבחור.

ארז בן שוהם
Guest

שלום רב,
כל הכבוד על המאמר
אודה לכם אם תוסיפו קישור לאתר ריילס הישראלי שהולך ומתפתח לאט לאט
http://www.rubyonrails.org.il
שם תמצאו קישורים גם לפורום וIsrael.rb בגוגל

בימים אלו קיבלנו אישור לתרגם את הספר Learn to Progran לעברית

בהצלחה,

ארז בן שוהם

זהר
Guest

הי ארז וגלעד
אני שמח שנהנתם מהמאמר ומודה לכם על תגובותיכם.
בכוונתי להמשיך ולפרסם מאמרים בנושא בהם אוכל לכלול התייחסות לבקשותיכם :)
בברכה
זהר

שח_מט
Guest

הייתי מציין שטוויטר הוא האתר ריילס הכי רציני שפותח עד כה (לפחות לפי הידוע לי נכון ללפני כמה חודשים טובים)
אם יש לכם עוד אתרים מעניינים שנכתבו בו אשמח לשמוע ולראות
שח

ארז בן שוהם
Guest

שלום זוהר

בנוסף כדאי לדעת – אתר ריילס הישראלי נבנה כפלטפורמה לכותבים מרובים
למעשה כל אחד יכול לפתוח לעצמו בלוג ופשוט לכתוב… בכל נושא ועניין
פוסטים הקשורים לריילס מתפרסמים גם בעמוד הראשי של האתר בנוסף לפרסומם בבלוג האישי של הכותב
באפשרותך להקים לעצמך בלוג ב 60 שניות
המערכת בנויה בריילס
לעמוד ההרשמה:
http://www.rubyonrails.org.il/posts/1

אני ממתין למאמר הבא שלך,

בהצלחה,

שח מט
לרשימת אתרים שנבנו בריילס => http://rubyonrails.org/applications

ארז

trackback

[…] בפוסט הקודם הבאתי סקירה קצרה על תשתית הפיתוח רובי און ריילס תוך התמקדות בחלק מיתרונותיה היחסיים וההבטים המייחדים אותה מתשתיות אחרות. […]

trackback

[…] ביותר שמצאתי לאפיין את django לעומת אחותה (בעל כורחה), ריילס, היא כמו להשוות כוס וויסקי לכוס בירה. בעוד שריילס […]

Naomi Goldberg
Guest

שלום רב, אני מנהלת חברת השמה. מחפשת עבור סטארט-אפ מרתק בתחום המוזיקה/אינטרנט מוביל פיתוח (CTO) עם תשוקה לטכנולוגיה וידע ב- Ruby on Rails. מחפשת אוריינטציה לא מיייקרוסופטית.
תפקיד אסטרטגי ומשפיע. בתודה מראש, נעמי גולדברג naomi@top-pick.co.il

wpDiscuz

תגיות לכתבה: