I did it my way …

ביום כיפור האחרון יצא לי לעבוד פעם ראשונה עם framework לcgi שהרבה זמן רציתי לנסות בשם sinatra אשר כתוב בשפת רובי כמובן. ה framework שונה לגמרי בתפיסתו מכל framework מבוסס cgi אחר שאי פעם עבדתי איתו. הוא בנוי בגישה של DSL בשביל לתאר תכנות מבוסס web. הוא מאוד קל משקל וממש לא מזכיר את rails, אלא מצד אחד יותר את django מבחינת הגישה שלו (אני בוחר מבנה ספריות וכו'),  אבל הוא מאוד פשוט לעבודה מהצד השני. חצי יום לקח לי לשלב בינו לבין ajax. למעשה רוב ה עבודה היתה דווקא בצד ה Javascript ולא בצד הרובי. ה framework מדהים ופשוט מצד אחד, אבל מצד שני בנוי לעבוד עם אפליקציות רציניות בפני עצמו, או כMiddleware.

איך עובדים עם sinatra אתם בטח שואלים, ובכן, הנה דוגמא פשוטה:

#!/usr/bin/env ruby
require 'rubygems' # if we installed sinatra or any other modules using ruby gems
require 'sinatra'
get '/' do
'Hello World'
end

נשמור את הקובץ בשם sin.rb עכשיו בשורת הפקודה נכתוב:

$ ruby sin.rb

וזהו יש לנו מערכת cgi שכל מה שהיא עושה זה לענות לבקשה הראשית בשליחה של Hello World. בברירת מחדל לשלב הניסויים בלבד יהיה לנו שרת http משלנו, אבל sinatra צריך לדעת שהוא לא רץ בסביבת ניסוי בשביל להצליח להריץ אותו עם אפצ'י או כל שרת HTTP אחר על ידי הגדרה מאוד פשוטה שאפשר ליצור בקובץ בשם config.ru ושם נגדיר שזו סביבת ניסויים או סביבת production.

המערכת מגיעה גם עם מערכת בדיקות מובנת, וכמובן שאפשר לשלב עוד מערכות בדיקות של "כתוב בדיקה קודם, ותכתוב קוד שהיא לא תכשל אח"כ" כדוגמת rspec או cucmber.

יש עוד הרבה דברים שאפשר לעשות בשיטה הזו, כמו גילוי חלקים מסויימים בבקשה, עבודה עם regex, הגדרת פעולות לפני הניתוב, תמיכה בtemplates ו layout בהם גם תמיכה ב haml, erb וכמובן גם ב SASS. יש תמיכה במסדי נתונים עם מנועים שונים כדוגמת ActiveRecords אבל לא רק ועוד המון דברים להציע.

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

6 מחשבות על “I did it my way …

  1. פינגבק: הבנתי סוף כל סוף « לראות שונה

  2. פינגבק: ניתובים דינאמיים עם סינטרה « לראות שונה

  3. פינגבק: fpWeb – שלום עולם « לראות שונה

  4. פינגבק: שירים מתקדמים עם סינטרה חלק ראשון | לראות שונה

  5. פינגבק: ענב הזעם – API | לראות שונה

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s