>> [השמעת מוסיקה]
>> סטפן טורבן: אז אני סטיבן טורבן.
מעל בצד כאן, אולי יכול לקבל כמה אנשים לצלול ב.
יש לנו גבריאל וזאק.
אז למפת דרכים קצרות על מה זה הולך להיראות כמו,
אני הולך לעשות כמה מאוד מבט ברמה גבוהה במה MVC.
גייב?
>> גבריאל GUIMARAES: אני הולך ל מדבר על רובי וקצת
איך Rails עובד וכיצד הוא יכול לעזור לך לבנות יישומי אינטרנט.
>> זאק chauvin: ואני הולך להראות לך דוגמא ספציפית של איך
להשתמש Rails לבנות אפליקציה סופר מדהימה.
טורבן סטיבן: מדהים.
מתוק.
בְּסֵדֶר.
אז בואו נדבר על MVC.
אז בואו נלך לשקופית הבאה, ש אני אעשה על ידי לחיצה על לחצן זה.
ובואו נלך לפיתוח next--, אני אוהב לחשוב על הולך CVS,
כי CVS היא חנות ו יש גם V במרכז.
>> ואז בואו נדמיין לחנות.
ובואו נעשיתי את זה בחנות למכור רק דבר אחד.
אז אנחנו הולכים לקבל את זה לאחסן רק למכור הכוסות אדומות האלה.
ותאר לך ללכת ב, ואתה הולך לחזית של החנות, והאדם.
והשם שלו הוא וינס.
>> ושלום גלי וינס בך, אומר היי.
ואתה שם לב דבר אחד על וינס.
אז בכל פעם שאנחנו חושבים על וינס, ש צריך לחשוב על שני תארים מרכזיים.
וינס הוא יפה, אבל הוא טיפש.
OK.
אז אתה יודע, שלא באשמתו שלו, למרבה הצער, הוא יפה.
הוא לדעתנו.
אז חבר צוות השחקנים הראשון שלנו הוא שם.
לזכור את זה.
>> עכשיו, אתה שואל את וינס, שאתה הולך, היי וינס.
אני לקוח.
הוא אומר שלום.
אני באמת רוצה אחד הספלים האדומים שלך.
ומה וינס אומר?
האם מישהו יש לי מושג מה וינס אומר?
אני הולך לשיחה קרה.
מה אתה חושב וינס אומר?
>> קהל: הוא אומר, אני יכול להראות לך איפה זה, אבל אני לא יכול לתת לך אחד.
>> טורבן סטיבן: הוא אומר, אני יכול להראות לך איפה זה, אבל אני לא יכול לתת לך אחד.
אפילו יותר גרוע.
כל אחד אחר שיש לי אחר מושג מה וינס אפשר לומר?
>> קהל: הוא צריך ללכת לבדוק אם יש להם כוסות אדומות.
טורבן סטיבן: וינס לא אפילו יודע שיש לו כדי לבדוק.
כל דבר אחר?
אז אתה אמר, יש ל לבדוק אם יש לו כוסות אדומות.
קדימה.
קהל: מה כוס אדומה?
סטפן טורבן: מה כוס אדומה?
מה כוס אדומה?
וינס הוא מבולבל.
אז וינס הולך לדבר חבר שלנו הבא היצוק, קרל.
וכאשר אנו חושבים על קרל, אנחנו צריך לחשוב על שני adjectives-- הגדול
הוא שליטה, אבל הוא לא מסוגל.
>> אז וינס goes-- הוא הולך, מה היא כוס אדומה?
אני לא יודע מה היא כוס אדומה.
הוא מסתובב, והוא שואל את קארל.
הוא אומר, קרל, מישהו ביקש כוס אדומה.
האם אתה יכול לעשות את זה?
ומה קרל אומר?
בואו להבין את זה.
האם יש למישהו כל מושג מה קרל אומר?
ואני רק חוזר על זה אחזור אליך.
ראיתי תנועת יד.
>> קהל: הוא אומר לי מישהו אחר כדי לקבל את הכוסות האדומות.
>> טורבן סטיבן: הוא אומר לי מישהו אחר כדי לקבל את הכוס האדומה.
בדיוק.
ויש לנו רעיון מי הוא אותו אדם יכול להיות?
זה רמז.
זה הולך להתחיל עם Mob מ '?
>> קהל: דגם.
>> סטפן טורבן: המודל, כן.
שמו אינו מודל, למרבה הצער, כי זה שם טיפשי.
יש לנו מיט.
וכאשר אנו חושבים על Mitt-- לא, זה לא תמונה של זאק.
אנחנו צריכים לחשוב על שתי תארי מפתח עם מיט.
הוא מסוגל, אבל הוא כנוע.
אז מיט יודע מה יש לו לעשות, אבל הוא באמת לא יכול לעשות שום דבר.
או שהוא באמת לא יכול להחליט על הדעת עצמו.
>> אז יש לנו קרל.
קרל צועק על מיט.
והוא אומר, היי מיט, אנחנו צריכים כוסות אדומות.
ומיט הולך למחסן הכוס האדום שלו.
הוא תופס כוס, והוא נותן אותו בחזרה.
האם יש למישהו כל מושג מה קורה אז?
נותן את הכוס.
עד כה מיט הלך לאדום שלו מאגר הכוס, לקח אותו החוצה,
בדק אותו, אמר, לקחתי כוס אדומה אחד.
והוא נותן אותה לקרל.
האם יש לך רעיון?
מה אתה חושב קרל עושה?
>> קהל: קרל נותן אותו לוינס.
>> טורבן סטיבן: קרל נותן אותו לוינס.
וינס.
>> קהל: ווינס מראה את זה ל[ לא ברור].
טורבן סטיבן: בדיוק.
אז זה בדיוק זה.
אז וינס לוקח את הכוס, אפילו לא יודע מה זה,
אבל הוא מראה אותה למשתמש.
אז בואו ננסה לשחזר זה באמת זמן קצר.
ואנחנו הולכים צורך שלושה מתנדבים שקטים,
כאתם לא הולכים כדי להיות מסוגל לדבר.
כדי שאוכל לתפוס את שלוש?
OK.
ואת מי אתה רוצה להיות?
>> קהל: אני אהיה וינס.
>> סטפן טורבן: וינס, על אישור.
יפה אבל טיפש.
גדול.
מישהו אחר?
אנחנו מחפשים מסוגלים אך כנוע.
מישהו אחר רוצה להיות מסוגל?
>> קהל: אני יכול להיות קרל.
טורבן סטיבן: מתוק.
יש לנו קרל.
>> קהל: מיט.
>> סטפן טורבן: מיט, על אישור.
ואנחנו הולכים צריכים a-- אני אהיה הלקוח.
אז יאללה, שבאו עליו.
וכולם בנוף?
אז אני הולך לשאול את וינס ל לעמוד בחזית, רק מחייך,
רק מחייך בהיר ככל האפשר.
ואנחנו הולכים לשאול את קרל, נכון, למה אתה לא, כמו,
לעמוד ממש מאחוריה?
ומיט, למה אתה לא רק ללכת בגב,
ואז אני אתן לך קבוצה כוסות להסתובב עם.
>> אז אני לקוח.
אני בא.
ואני עושה [לא ברור] אני אומר, היי, אני רוצה כוס.
מושלם.
אז יש וינס מושג.
אז מה עושה וינס לעשות עכשיו?
Vince-- אוקיי, אז אני הולך להיות מספרת עכשיו.
>> וינס צועק על קרל, כוס!
מה קרל עושה?
קרל צועק על מיט.
מיט תופס כוס.
מיט נותן אותו לקרל.
קרל מחזיר אותו לוינס.
ווינס מציג אותה למשתמש.
>> וזה גבוה, גבוה, מבט גבוה, כל כך גבוה בMVC.
אנחנו מחלקים את זה על ידי בעל השקפה, מה המשתמש רואה, בקר, מישהו
שעושה כל שברקע אבל ממש לא יכול לעדכן כל דבר
או לא יכול לעשות שום דבר מכל משמעות מלבד קורא את הנוף ואת המודל.
ולאחר מכן יש לנו מיט, המודל, שמעדכן מה הנתונים שיש לנו.
אז תודה רבה לך עלינו יפה, שליטה, ומסוגל מתנדב.
ואני חושב שזה היה.
>> [מחיאות כפות]
>> אני חושב שגייב הולך לדבר עכשיו ברמה גבוהה בתקווה פחות.
>> גבריאל GUIMARAES: OK, בחורים.
עכשיו בואו נדבר קצת יותר על קוד ועל Ruby on Rails עצמו,
ועל איך שהיא מתייחסת לכל הסיפור הזה MVC.
בעיקרון, Ruby on Rails הוא מסגרת.
עוד על כך בשנייה.
>> אבל רק כדי לתת לך תחושה של מי משתמשת בו,
כמו, כל companies-- הגדול הבאות כך GitHub, Groupon, Twitter--
הם כולם משתמשים Ruby on מסילות כמסגרת העיקרית שלהם
כדי ליישם אתר האינטרנט שלהם.
אז אני בטוח שהרבה אנשים השתמש באתרים אלו כאן.
וזה כל Ruby on Rails ליישם המודל, הנוף, ואת הבקר
בכל אחד מהאתרים האלה ועוד רבים אחרים.
בסדר?
>> אז כמו שאמרתי, Ruby on Rails הוא מסגרת.
ואתה יכול סוג של לחשוב על מסגרת במובן של כמו לבנות בית.
אז אם אתה הולך לבנות house-- ואתה תמיד יכול
להתחיל מהתחלה, נכון?
אתה יכול לנסות לבוא עם דרך ראתה העץ,
וכדי להביא את העץ למקום, ו כדי לקבל את האבנים בצורה הנכונה,
ולאחר מכן את כל זה.
אבל זה הולך לקחת כנראה הרבה שנים
עד שאתה מקבל את כל החומר, ואתה מקבל את הכל ביחד,
ואתה בעצם להתחיל לבנות את הבית שלך.
>> אז מתברר אם אתה מתחיל לצאת עם מסגרת עם משהו ש
כבר סוג של במקום לכל סוג של בית
שברצונך build-- משהו זה מאוד גנרי אבל זה שאתה יכול
אז מודל לכיוון שלך goals-- אז אתה יכול למנף
כוח זה של המסגרות לבנות שלהם משהו הרבה, הרבה יותר מהר.
OK.
אז זה אותו הרעיון ב מסגרת ליישום אינטרנט
או לכל סוג של יישום, לצורך העניין.
>> אתה בעצם מתחיל עם מחצית יישום
כבר שם במקום בשבילכם.
ועל ידי זה, אני אומר שאתה מקבל הרבה קבצים שכבר יש לי פונקציות,
כמו ספריות, כמו פונקציונלי, ופקודות שאתה יכול לרוץ על מנת
כדי להפוך את החיים שלך הרבה יותר פשוט וקל יותר.
OK.
>> אז במקרה הזה, אנחנו הולכים לדבר על Ruby on Rails.
יש המון שונה מסגרות בחוץ.
יש Django לפייתון.
יש מסגרת Zend או Laravel עבור PHP.
יש המון אלה שונים.
Ruby on Rails הוא אחד חדש די נחמד.
הרבה אנשים משתמשים בחברות סטארט-אפ ש ושל סביבה מסוג זה.
וחלק מאלה גדולים מאוד חברות שהראיתי כאן לפני
גם משתמשים Ruby on Rails.
>> אז רק כדי לתת לך תחושה של מה הוא Ruby
כמו, כן אתם נמצאים בשימוש יותר ל, כמו, C וקצת PHP
עכשיו, כל כך רובי הולך להיות מקבילה של PHP שלך במובן זה.
זה לא רובי.
זה ג בסדר?
אבל זה כמו פונקצית DJBHash ש
מכיר אנשים רבים המשמשים לשגיאות כתיב PSET.
>> וברובי, די ממש כמו ב- PHP, אתה
יכול ליישם את זה עם רק כמה שורות קוד.
במקום שיש לדאוג על פונקצית החשיש,
לדאוג דליים, וכל זה, אתה יכול פשוט לומר,
מילון = Hash.net.
ואז אתה משתמש בסוג של כמו אותו הרעיון שהיה לי PHP.
ואז זה לאמיתי.
ואז אם אתה רוצה לבדוק, כדי לבדוק פונקציה
יהיה אם "foo" מילון שווה שווה אמיתי, לחזור אמיתי.
וזה כל מה ש, בסדר?
>> אז אתה שם לב כמה הבדלים.
אין נקודה-פסיק כאן, כפי שהיו בג
אבל הרעיון הכללי הוא דומה מאוד.
בסדר?
>> כמו כן, ברובי, יש פנינים, ש הם סוג של ספריות רובי.
ומטפל בהם בRails דרך נחמדה מאוד בשבילך.
אז אם אתה רוצה לשים באיזו ספרייה ש
עושה מיילים, או ש עושה בהודעות טקסט,
או שעושה אינטגרציה עם פייסבוק, או כל סוג של דבר
כמו שעבור היישום שלך, זה מאוד, מאוד קל.
רוב הסיכויים הם שאתה יכול למצוא משהו כמו שבאינטרנט.
והם פשוט עושים משהו כמו מכר ש
פנינה שברצונך להשתמש בקובץ הפנינה.
ולאחר מכן Rails מתקין הכל.
אתה לא צריך לדאוג כל כך, אז זה ממש מגניב.
כמו כן, יש הרבה, שפע של עזרה מקוונת.
אז אתה יכול למצוא הרבה דברים.
אם יש לך טעות, רק אתה יכול לגגל את זה,
וזה הולך להיות קל מאוד לקבל עזרה.
>> וזה הרבה fun-- exactly-- כי אתה
לא צריך לדאוג ברמה הנמוכה פרטים, יישום של שולחנות חשיש
ויש להם לבוא עם כל כותרות HTTP, והרבה דברים,
ואפילו כמה דברים ברמה יותר גבוהים.
אתה לא צריך לדאוג על זה בRails.
זה עושה את זה מאוד, מאוד יפה בשבילך.
ואנחנו הולכים להראות ש יותר קונקרטי בקרוב מאוד.
OK.
>> אז קצת על Ruby שוב.
אז זה בדיוק כמו C, כפי שאמרתי.
במקום printf, אנחנו אומרים "מכניס", שהוא "לשים מחרוזת."
זה מכניס את מחרוזת לקונסולה.
ובמקרה הזה, אנחנו רק הדפסה "Hello World".
אנחנו לא צריכים את הסוגריים, אבל זה די דומה הרבה.
>> ואז אם אתה רוצה לעשות משהו כאן,
כמו להדפיס חבורה של "Smalls" ו חבורה של "bigs" בלולאה בזמן,
זה כמו סוג של בC, נכון?
אין לך params, אבל זה פחות או יותר אותו הדבר.
הזחה כאן ספירה, כך x שווה 1.
ולאחר מכן בעוד x קטן מ 50-- זה אם, זה אחר.
זה פחות או יותר כמו מה שראית.
>> ואז x = + 1 הוא רק להגדיל כל, כמו סוג של עושה ++ שאתה יכול
לעשות בC. אבל זה די הרבה מה שראית בג
זה לא אמור להיות מסובך מדי.
אבל הוא חזק יותר.
אז יש כמה פקודות כאן כי הם בהחלט קצת חדשים יותר.
>> כך למשל, "מעמיד".
אתה יכול להשתמש בסימון hashtag זה כאן רק להדפיס something--
פחות או יותר כמו מה היית עושה אם C% D או% או כמו שמעט.
ואתה באמת יכול לשים אם מייד לאחר ההצהרה.
אז אני רק רוצה לעשות את זה-- אם x הוא יותר מ 3.
אז למה שיהיה לי ל להפוך כל אם בלוק?
אֲנִי לֹא יוֹדֵעַ.
אני רק יכול להדפיס את זה רק אם x שווה יותר מ -3.
אז זו דרך שורה אחת לעשות את זה ברובה.
>> רשימה ברובי היא משהו מאוד תכליתי.
אז אתה לא באמת צריך יש רק סוג אחד.
אתה יכול להיות מחרוזת, ולאחר מכן כמה מספרים, וכל מה ש.
ואם אתה רוצה לצרף משהו לרשימה,
אתה יכול פשוט להשתמש בזה סימון כאן.
>> ואם אתה רוצה לחזר.
די הרבה 4each בPHP, כאן, אתה יש להם רשימה ואתה עושה "List.each לעשות."
ו" עלם ", זה זה כמו שמו של כל אלמנט
שאני הולך להיות ברשימה שלי.
ואז אני יכול רק "מעמיד עלם".
ו" מכניס "די הרבה ידיות לשים את זה בשבילך, הדפסתו.
זה לא משנה אם זה מחרוזת או int.
זה הולך לעבוד את זה בשבילך.
נכון?
מגניב.
>> ובדיוק כמו PHP, Ruby ו- HTML גם לשלב מאוד, יפה מאוד.
וכאן, יש כמה HTML עם רובי בזה.
אז יש לנו תג גוף כמו ב- HTML.
ואם אנחנו רוצים לבדוק כי משתמש הוא, למשל,
מחובר, אנחנו יכולים רק לומר, תחילת רובי, אם user.logged_in ?, סוף רובי.
הדפס את כל הדבר הזה, ש יש כמה רובי בזה, וזה רק
כמו סוג של תחביר של PHP שמדפיס משתנים.
בואו להדפיס את user.name.
>> אז בברכה, סטיבן, בתוך div HTML.
ובסופו של הדבר, יש לנו "סוף" ו קוד רובי, מה שאומר שזה שלי
אם בלוק.
בסדר?
אז זה בדיוק כמו חלק שילוב בין רובי ו- HTML.
יש גם הרבה משאבים.
אבל לפני שאנחנו עוברים, עושה לאף אחד יש לך שאלות על Ruby, משהו?
OK.
>> יש המון משאבים מקוונים לtryruby.org, קוד אקדמיה,
ruby-lang.org, שבו אתה יכול לנסות את זה את בדפדפן שלך לפני שאתה בעצם
אומר, אה, בסדר, אני הולך להשתמש ב רובי לפרויקט הגמר שלי.
וכך בהחלט לתת אותם לנסות.
כל שקופיות אלה הולך להיות זמין באופן מקוון,
כך שאתה יכול פשוט להוריד אותם.
וכן?
>> קהל: [לא ברור] מה שאתה רק הראה
היה HTML והקוד מוטבע ל אותו לרעיון זה של דגם תצוגה
בקר?
>> גבריאל GUIMARAES: כן.
אנחנו נעשה את זה בשנייה כאשר אנו מראים הדוגמא שלנו, בסדר?
תודה על השאלה.
אז השאלה הייתה בעצם אם יכול להראות שילוב זה של רובי
ב- HTML בתוך הדגם הצג את מסגרת בקר.
>> אז הרעיון של הדגם מסגרת צפה בבקר
זה בעצם פילוסופיה, בדיוק כמו סטיבן הראה כאן.
וזה לא משהו ש שאתה צריך לעשות,
אבל זה משהו שגורם לי החיים שלך כל כך הרבה יותר פשוט.
וRuby on Rails בנוי סביב פילוסופיה זו של קוד.
אז אנחנו הולכים להראות לי דוגמא בקרוב מאוד.
>> אז Rails הוא אהבה.
הרבה אנשים משתמשים בו, כפי שאמרתי.
וזה ממש כיף.
אתם צריכים בהחלט לנסות את זה.
MVC עושה הכל פשוט יותר.
אז דגם תצוגת Controller, הדברים המפרידים
ולשים אדם אחד, כשלעצמה, או חלק אחד של הבקשה שלך
לעשות כל אחד ממקומות העבודה השונים כי היישום שאתה צריך לעשות.
ובילה פחות זמן על בעיות ברמה נמוכה.
ומאוד פופולרי עכשיו.
יש לנו Rails 4.0, שהוא גרסה חדשה.
והוא מגיע עם הרבה דברים מגניבים.
שאלה נוספת.
>> קהל: שאלה נוספת.
Ruby on Rails לעומת Ruby on Rails בגביעים.
>> גבריאל GUIMARAES: OK.
השאלה הייתה, Ruby on Rails לעומת Ruby--
קהל: בגביעים.
רובי?
>> גבריאל GUIMARAES: כן.
אז רובי הוא השפה.
>> קהל: מס '
אני מבקש ממך להשוות שפה ומסגרת, Ruby on Rails,
עם עוד שפה פופולרית framework-- Grails-- עם רובי
on Rails.
>> גבריאל GUIMARAES: OK.
מצטער.
השאלה הייתה, להשוות רובי וRuby on Rails
למסגרת וanother-- אחר
>> קהל: רובי.
זה בסדר.
אם אתה לא יודע על זה, זה בסדר.
>> גבריאל GUIMARAES: כמו, מה שאני מבין הוא that--
>> קהל: יש עוד בגביעים בשם מסגרת.
>> גבריאל GUIMARAES: אה, בגביעים.
אני לא שמעתי על זה.
מצטער.
מעולם לא שמע על גרובי on Rails.
מצטער.
>> קהל: זה הרבה יותר טוב משולב עם Java.
>> גבריאל GUIMARAES: אני מבין.
>> קהל: אני פשוט סקרן על כמה אנשים שאני מכיר like--
>> גבריאל GUIMARAES: לא, אני לא שמע על זה אחד, למרבה הצער.
בגביעים.
>> קהל: וכמה אנשים ברור כמו Ruby on Rails.
>> גבריאל GUIMARAES: לי רובי המשומש on Rails הרבה.
אני השתמשתי כמה Django עם פייתון, כפי שאמרתי.
אני השתמשתי כמה Laravel.
אבל לא הייתי בשימוש גרובי on Rails.
מצטער.
וזה מאוד פופולרי עכשיו עם Rails 4.0.
כמו, חלק מהדברים שRails עושה לך, למשל, הוא שאתה
יש לי המון קבצי CSS ו הרבה קבצי JavaScript.
ואתה יכול להתייחס אליהם כ נפרד והכל.
>> אבל אז זה automatically-- כאשר אתה שולח את הקוד שלך לייצור,
זה באופן אוטומטי הידור את כולם לקובץ אחד בודד
זה minified ללא כל חללים, כך שזה לוקח עד
פחות מקום ביישום שלך, כל כך כי אתה באמת יכול בהיקף דברים הרבה.
זה חברות גדולות למה כזה כמו טוויטר וGitHub
משתמשים Rails, כי זה עושה את כל זה בשבילך, וזה ממש מגניב.
>> דבר אחד שהוא מאוד, מאוד, מאוד מרתיע
לאנשים, כוללים אותי, שמנסים לעבוד
עם מסגרת בתחילת, הוא כי כשאתה מתחיל את יישום,
אתה הולך לראות חבורה של קבצים.
כמו, כאשר אתה יוצר Rails חדש, המועמדות שלי,
אתה הולך לראות את כל אלה folders-- אפליקציה, בן, config, db, lib,
להתחבר, ציבורי.
כמו, המון המון דברים.
>> ואני בפעם הראשונה ראה את זה, אני היה כמו,
OK, אין לי מושג מה קורה.
אני רק רוצה ליצור אתר עם "שלום, עולם",
וזה נותן לי, כמו, 100 מליארד דפים שונים.
אני לא יודע מה קורה.
אז בבקשה אל תהיה הרשמת אותי במיוחד.
>> הרעיון הוא שבעצם יש לו חצי של בית יש לך כבר.
יש לו כל מסגרת לך כבר.
זו הסיבה שיש כל כך הרבה קבצים.
אבל הדבר נחמד הוא שזה מפריד את כולם בצורה יפה מאוד.
רוב הסיכויים הם שאתה לא צריך לדאוג על רוב התיקיות אלה.
>> אחד החשוב ביותר, אני הייתי אומר, היא תיקיית היישום,
שבו האפליקציה שלך חיה למעשה.
אז config, אתה הולך צריך configurate כמה דברים,
כמו מסד הנתונים שלך ודברים כאלה איזה סוג של מסד נתונים אתה משתמש.
אבל חוץ מזה, כמו רוב העבודה שלך היא הולכת לעשות באפליקציה.
אז באפליקציה, יש לך נכסים, בקרים, עוזרים, דיוורים, מודלים, נופים.
אז הנה, אתה מתחיל לראות ש בקרים, מודלים, ונוף לבוא
למשחק.
>> הדיוורים הם רק אם אתה רוצה לשלוח מיילים.
עוזרים אם אתה רוצה ליצור כמה פונקציות
כי אתה משתמש הרבה בתצוגה.
אז אתה שם אותם בעוזרים.
ונכסים הוא בעצם כל התמונות שלך, כל CSS שלך,
כל JavaScript שלך, וכמו סוגים אלה
דברים שנשלחים ללקוח.
וכל מה שהוא בנכסים, שאמרתי לפני, מקבל minified.
זה הידור.
ואתה לא באמת צריך לדאוג כי כשזה מגיע לקוד ייצור.
מגניב.
>> עכשיו זאק הולך לבוא ב, והוא הולך לעשות דוגמא של Twitter50.
>> קהל: הו-הו!
>> זאק chauvin: מדהים.
אז לא הייתה לי ההזדמנות לעבוד עם Ruby on Rails בקיץ הזה.
זה מסגרת מדהימה.
אני מאוד חלקי לזה.
ואני רק אראה לך קצת דוגמא למה שהיא יכולה להיראות.
לקפוץ מעל ל- Chrome.
אז זה הוא דוגמה לפשוטה מאוד Ruby on Rails application-- משהו
כמו זה משהו שרובי באמת מצטיין
that-- רק בך מודלים מוגדרים היטב.
>> בדוגמא זו, תראה שני דגמים שונים, ש
הם שיש לנו משתמשים ויש לנו tweets.
אז זה Twitter50, טוויטר שלו באוניברסיטת הרווארד.
כפי שניתן לראות, אני מחובר כ@zack.
ואני מסוגל לעשות טוויטים חדשים.
אז אני think-- "זה" - מצטער?
קהל: [לא ברור].
זאק chauvin: אה, בסדר.
צריך לעצור את השרת.
מצוין.
אז הנה אנחנו.
כפי שניתן לראות, יש לנו שלנו יישום טוויטר ממש כאן.
וזה סופר קל כדי להפעיל את השרת.
אנחנו פשוט נעשה "שרת מסילות."
גדול.
OK.
תודה על כך.
אז עכשיו אנחנו רצים.
>> ואנו אומרים, "זה הוא סמינר מדהים. "
ובואו נראה מה קורה.
כך תהיה לנו ציוץ על זה.
למטה בתחתית, אתה יכול לראות עכשיו יש יותר משלושה טוויטים.
אז יש לנו קצת של עימוד קורה.
ויש לנו ציוץ ש.
ואני גם יכול לחפש דרכי חיפוש tweets-- לזה ושני
אלה שיש לי המילה "זה" בהם להופיע.
כמו כן, אנו יכולים למחוק tweets על ידי לחיצה על הכפתור מחק הקטן.
וכמובן, אני יכול רק להסיר לאחר שהיה שייכים לי.
>> כבר, כמעט שיש לנו הפונקציונליות של טוויטר.
כמו, כאשר אתה חושב על זה, טוויטר באמת לא עושה כל כך הרבה.
יש בו משתמשים, יש לה טוויטים.
יש כמה פונקציונלי מורכב יותר.
אבל כאשר אתה באמת מקבל על זה, זה די Ruby on Rails אפליקציה פשוטה.
ומשהו כזה, עם הבנה טובה של Ruby on Rails,
כנראה שאתה יכול לעשות בשעה או שעות.
>> וכי באמת מגיע בחזרה למנטרת רובי,
שהוא כנס על תצורה.
אז בחזרה ביום, אנשים, בכל עת הם רצו להפוך את האתר הזה,
יצטרך להתחיל מהתחלה.
OK, אני רוצה לעשות באתר.
בואו נעשה את קובץ זה ו קובץ זה וקובץ זה.
>> עם Ruby on Rails, יש שום דבר כזה.
אתה אומר, אני רוצה אפליקציה חדשה.
ובדיוק כמו גייב הראה לנו, זה יוצר את המבנה כולו קובץ עבורנו.
ואנחנו פשוט לשנות את חלקים קטנים שאנחנו צריכים.
אנחנו פשוט להתאים אישית את מה ש הוא ייחודי על האפליקציה שלנו.
מגניב.
אז חוזר למצגת שלנו preview-- המעניין.
איפה אני מציג?
קהל: מסך מלא.
ימני עליון.
>> זאק chauvin: מצוין.
מגניב.
OK.
אז קודם כל, המודל.
סטיבן עשה מדהים עבודה של התוויית MVC.
ועכשיו אנחנו הולכים להתייחס בחזרה לכי Ruby on Rails.
אז המודל שאתה יכול סוג של חושב כמו מסד הנתונים.
אתה כבר רואה את זה בCS50 האוצר, שבו חנויות המודל
המידע על כמה מניות יש לך,
או כל העסקות שביצעתם.
זוהי דוגמא של קו של איך שהיית
ללכת על ביצוע דגם חדש בRails.
אז אני רוצה משתמש.
זה הולך להיות דואר אלקטרוני, אשר הוא מחרוזת,
וסיסמא, ש גם המחרוזת.
אז זה כמו those-- אני רוצה כל שורה בטבלה של משתמשים שלי להיראות כמו ש.
>> חלק מדהים באמת על Rails הוא שזה
מייתר את הצורך לכתוב כל SQL פחות או יותר.
כמה מכם הבחורים אהבו כתיבת SQL בPSET 7?
בדיוק.
SQL הוא לא מאוד ידידותי למשתמש.
וRails תקצירים כל מה שמשם עם פקודות ממש קלים אלה.
כך למשל, אם יש לנו למשתמש, למשתמש יש טוויטים רבים.
וכל אחד מאותם טוויטים שייכים למשתמש.
>> אז אם אתה מסתכל כאן, זה הוא המודל שלנו לציוץ שלנו.
וכל מה שיש לנו לומר הוא line-- היחיד זה אני ציוץ
למשתמש ואני שייך.
ועם זה קו ויחיד קצת תצורת מסד נתונים,
Rails מגדיר את מערכת היחסים הזו.
בכל עת, אני יכול רק לומר, zack.tweets, כמו, נותן לי את כל tweets זק.
אין SQL.
קל סופר.
שוב, זה כנס על תצורה מגיעה למשחק.
>> אתה יכול לראות קצת של דוגמא של רובי כאן.
כמו העניין הזה העניק אמר, כתיבת רובי הוא כמו סוג של כתיבת אנגלית.
זו שפה ברמה גבוהה מאוד, והוא עושה את זה ממש קל
לנו לומר דברים כמו, אני רוצה לוודא שיש לו ציוץ זה גוף.
הנוכחות שלו היא אמיתית.
ואני רוצה לוודא שזה ציוץ, בדיוק כמו טוויטר הנורמלי,
יש לו אורך מרבי של 140.
זה סופר-אינטואיטיבי, שפה גדולה באמת.
>> בשלב הבא יש לנו את הנוף.
אז זה כרוך HTML ו- CSS.
והנה דוגמא לנוף.
אז Ruby on Rails סוג של צורה חלקה משלב שני Ruby ו- HTML
על מנת ליצור מה שאנחנו רוצים שבדף.
אז זה הוא דוגמא לפריסה שלנו.
אז אתה יכול לראות כמה תגים ש בחורים משמשים ל, כמו HTML, גוף,
כל זה חומר טוב.
>> ונכון לכאן, אם כי, אנו לשלב כמה רובי באומרו,
אם יש הודעה לתצוגה, לאחר מכן יציג את ההודעה בdiv.
אז אני לא מקבל יותר מדי לזה.
אבל זה בדרך כלל דף שמקבל שניתנו on--
ולא משנה מה דף שאתה ב, זה אחד מקבל שניתנו.
אז זה מה שמקבל כלל תמיד.
מגניב.
>> דוגמא נוספת לview-- זה אחד שבו בחר כל tweets.
וחלק מהחומר הזה אולי נראה די מוכר.
כך למשל, ממש כאן, אנחנו לולאה דרך כל אחד מtweets,
ואנחנו מדפיסים אותם.
אז הנה המקום שבו אנחנו להדפיס את הגוף.
ואם user-- של הציוץ הנה דוגמא אמיתית של SQL לא מעורבת.
אני רק שואל, היא זו המשתמש של ציוץ המשתמש הנוכחי?
ואז מראה קשר כדי למחוק אותה.
זה סופר פשוט.
>> בקר.
אז זה שוב הוא,, הממשק בין המודל והנוף.
זה אחד שעושה את העבודה הקשה של interacting-- להיות המתווך.
הוא טוען מידע ל להציג, שאנו רואים בשניות.
וכדי אינטראקציה עם המודל, זה
קורא שיטות מודל, שהם מה ש אתם מכירים כפונקציות.
>> כך למשל, זה הוא בקר של הציוץ שלנו.
זה אולי נראה קצת מפחיד עכשיו.
אבל זה ממש סופר אינטואיטיבי ברגע שתתחיל צלילה ב.
כך למשל, במדד שלנו, זה שבו אנחנו רוצים להראות את כל tweets.
וכך זה בעצם קו רק שואל לכל tweets.
ואז אנחנו לאתחל שני tweet-- החדש כל כך כמו
אם הם רוצים ליצור ציוץ חדש בדף זה.
>> וזה שואל מה הוא המשתמש הנוכחי.
וזה מאוד דומה ל להבהיר שראית בPSET 7,
שבו זה רק סוג של אומר לי view-- זה סוג של, כמו,
עובר משתנים שאתה הולך צריך בתצוגה לתצוגה.
ויש חבורה שלמה שיטות שונות של
כי בקר של הציוץ הזה יכול להתמודד.
>> אבל באמת, Rails עושה עבודה נהדרת מסוג
החלוקה אותם לשונה פעולות שהבקר שלך יכול לעשות.
האם יש שאלות על כל אחד מחלקי MVC של Rails?
סוג של רק רוח על ידי.
אז אתם יכולים לבדוק את זה בעצמך.
מדהים.
אנחנו נמשיך.
>> אז התקנת Rails.
התקנת Rails יכול להיות, כמו, אחד החלקים מרתיעים יותר
של כל Rails תהליך, למרבה הצער.
אבל כמובן, כל שלנו בסביבה כדי לעזור.
וברגע שזה שם, הרבה משאבים רבים,
כגייב הזכיר, להתחלת עבודה.
להלן הקישורים ש תצטרך כדי
להוריד Rails כדי לקבל את זה מותקן במחשב שלך.
ברור, זה זמין עבור שניהם Windows ו- Mac
ולמכשיר CS50.
שאלות על כל דבר שאמרנו?
>> קהל: אני אהיה מעוניין ב, actually--
אז אני יודע שהורדה תוכנה היא המכשול הגדול ביותר.
אם יש מספיק עניין ליש לי הורדת מושב או משהו מיני.
זאק chauvin: ממ-הממ.
כן.
זה יכול להיות ממש מועיל.
אם מישהו באמת מתלהב על באמצעות זה לפרויקט שלהם
או בעתיד, אז הייתי בהחלט אשמח לדבר איתך על זה.
ממ-הממ.
>> קהל: שאלה קשורה למה שאל אותי לפני.
לאלו מכם שעשו מסגרות אחרות שעדיין
מנסה לעשות את אותו הדבר דבר, לעשות את זה קל יותר
כדי לבנות אתר אינטרנט או פונקציונלי, אני חושב שכל תחושה
מדוע שנהיה on Rails לעומת Zend או חלק מהמסגרות האחרות
ושפות.
>> זאק chauvin: אני רק אומרים שלי 0.02 $ על זה.
אני אוהב את Ruby on Rails.
הייתה לי את ההזדמנות לעבוד בשני PHP ו- Ruby on Rails.
אני מעדיף בהרבה Ruby on מסילות בגלל רובי.
בהחלט, זה חלק גדול מזה.
כמו, כשאתה בחירת המסגרת שלך,
גם לך לבחור את השפה שלך.
>> רובי הוא סופר accessible-- אני חושב ש שפה הרבה יותר טובה מאשר PHP.
אבל זה סוג של העדפה אישית.
כמו כן, שיקול נוסף הוא הקהילה מאחורי המסגרת
שאתה עובד עם.
>> עכשיו Ruby on Rails הוא ממש חם.
יש טונות של תמיכה מאחוריה.
שתפרסם משהו על סטאק גלישה על בעיה שאתה
יש בRuby on Rails, וזה ענה.
שוב, זה קוד פתוח, מה שאומר ש כי זה כל הזמן משתנה.
יש טונות של אנשים שבאמת מוקדשים
כדי לעשות את זה מסגרת באמת מדהימה.
אז בגלל זה הייתי לבחור Ruby on Rails.
גבריאל GUIMARAES: כן.
הייתי אומר שהרעיון מאחורי רוב המסגרות אתה
הולך לגלות שיש מאוד, מאוד דומה, נכון?
אז דגם תצוגת Controller, העובדה שהבקר שלנו של
הולך להיראות כמו משהו כמו זה-- כל אחת מהפונקציות
הוא כמו אחד מהדפים שלך, וזה מפנה אותי,
וזה מאתחל את המשתנים.
זה הולך להיות אותו הדבר ל כל מסגרת שאתה רואה שם בחוץ.
ויש הולך להיות המודל.
ואתה יכול לעשות דברים כאלה, "שייך ל."
אז במקום לעשות גרסת SQL, אתה פשוט, כמו, לעשות, user.tweets,
ואתה מקבל הכל.
לכולם יש את זה.
למעט ברובי, אתה עושה user.tweets, ולאחר מכן כמה מסגרות בPHP,
אתה עושה user.getalltweets איפה PHP שלי הוא לא בעיה.
כמו, זה קו גדול.
זה אותו הדבר, אבל זה קו גדול.
>> אז זה אחת הסיבות העיקריות ההעדפות שלי על Ruby.
זה פשוט שאני עושה בדיוק אותו דבר במסגרות אחרות,
זה פשוט לוקח לי פעמיים תורים ארוכים כשל קוד.
בסדר?
>> יש עוד שאלות?
>> זאק chauvin: משהו אני אזכיר quickly-- גייב
דיבר קצת על אבני חן.
וזה באמת great-- אני מתכוון, זה הוא סוג של משותף לכל המסגרות,
שיש סוג של קונספט פנינה, שזה כמו בדוגמא הקטנה שלי,
יש לי להתחבר.
כמו, באפשרותך להיכנס, צא.
כמו, זה בעצם סוג של תהליך מורכב.
זה טופל קטן קצת בשבילך בPSET 7.
אבל אני עדיין לא יודע באופן מלא כיצד ליישם כניסה, סימן-out.
וזה בגלל ש יש Ruby on Rails טון
של אבני חן שעושים דברים כאלה בשבילך.
>> שוב, אמנה על תצורה.
כולם הולכים לעשות כניסה זו, צעד לחתום החוצה.
אז למה לא פשוט לעשות את חבילה, הנקרא לתכנן במקרה זה, בו הוא פנינה.
אתה פשוט לכלול אותו.
ואז יש קצת עזרה באינטרנט עם איך להשתמש בו.
ואתה לא צריך לדאוג על דבר כזה.
>> צירוף תמונות לאלה things-- פנינה של.
כמו, בכל עת שאתה מנסה לעשות שום דבר חדש, יש פנינה של.
ואתה סוג של רק חתיכת אבני חן אלה יחד
ולבנות באמת מורכב יישום מהר מאוד.
מגניב.
יש עוד שאלות?
>> סטפן טורבן: הו-הו.
אני לא חושב ש[ לא ברור].
>> גבריאל GUIMARAES: OK.
תודה רבה, חבר 'ה.
>> סטפן טורבן: Buh-ביי.
זאק chauvin: Buh-ביי.
>> סטפן טורבן: הו-הו.
[מחיאות כפות]
>> Yay.