1 00:00:00,000 --> 00:00:03,968 >> [השמעת מוסיקה] 2 00:00:03,968 --> 00:00:10,744 3 00:00:10,744 --> 00:00:14,040 >> סטפן טורבן: אז אני סטיבן טורבן. 4 00:00:14,040 --> 00:00:16,990 מעל בצד כאן, אולי יכול לקבל כמה אנשים לצלול ב. 5 00:00:16,990 --> 00:00:20,150 6 00:00:20,150 --> 00:00:23,854 יש לנו גבריאל וזאק. 7 00:00:23,854 --> 00:00:26,270 אז למפת דרכים קצרות על מה זה הולך להיראות כמו, 8 00:00:26,270 --> 00:00:31,580 אני הולך לעשות כמה מאוד מבט ברמה גבוהה במה MVC. 9 00:00:31,580 --> 00:00:32,285 גייב? 10 00:00:32,285 --> 00:00:35,080 >> גבריאל GUIMARAES: אני הולך ל מדבר על רובי וקצת 11 00:00:35,080 --> 00:00:39,100 איך Rails עובד וכיצד הוא יכול לעזור לך לבנות יישומי אינטרנט. 12 00:00:39,100 --> 00:00:42,070 >> זאק chauvin: ואני הולך להראות לך דוגמא ספציפית של איך 13 00:00:42,070 --> 00:00:45,112 להשתמש Rails לבנות אפליקציה סופר מדהימה. 14 00:00:45,112 --> 00:00:46,112 טורבן סטיבן: מדהים. 15 00:00:46,112 --> 00:00:46,350 מתוק. 16 00:00:46,350 --> 00:00:46,850 בְּסֵדֶר. 17 00:00:46,850 --> 00:00:49,510 אז בואו נדבר על MVC. 18 00:00:49,510 --> 00:00:54,970 אז בואו נלך לשקופית הבאה, ש אני אעשה על ידי לחיצה על לחצן זה. 19 00:00:54,970 --> 00:01:12,640 ובואו נלך לפיתוח next--, אני אוהב לחשוב על הולך CVS, 20 00:01:12,640 --> 00:01:17,240 כי CVS היא חנות ו יש גם V במרכז. 21 00:01:17,240 --> 00:01:21,460 >> ואז בואו נדמיין לחנות. 22 00:01:21,460 --> 00:01:25,380 ובואו נעשיתי את זה בחנות למכור רק דבר אחד. 23 00:01:25,380 --> 00:01:31,380 אז אנחנו הולכים לקבל את זה לאחסן רק למכור הכוסות אדומות האלה. 24 00:01:31,380 --> 00:01:40,410 ותאר לך ללכת ב, ואתה הולך לחזית של החנות, והאדם. 25 00:01:40,410 --> 00:01:43,440 והשם שלו הוא וינס. 26 00:01:43,440 --> 00:01:48,370 >> ושלום גלי וינס בך, אומר היי. 27 00:01:48,370 --> 00:01:50,860 ואתה שם לב דבר אחד על וינס. 28 00:01:50,860 --> 00:01:56,880 אז בכל פעם שאנחנו חושבים על וינס, ש צריך לחשוב על שני תארים מרכזיים. 29 00:01:56,880 --> 00:02:00,600 וינס הוא יפה, אבל הוא טיפש. 30 00:02:00,600 --> 00:02:01,320 OK. 31 00:02:01,320 --> 00:02:06,810 אז אתה יודע, שלא באשמתו שלו, למרבה הצער, הוא יפה. 32 00:02:06,810 --> 00:02:08,009 הוא לדעתנו. 33 00:02:08,009 --> 00:02:10,539 אז חבר צוות השחקנים הראשון שלנו הוא שם. 34 00:02:10,539 --> 00:02:12,340 לזכור את זה. 35 00:02:12,340 --> 00:02:17,230 >> עכשיו, אתה שואל את וינס, שאתה הולך, היי וינס. 36 00:02:17,230 --> 00:02:18,110 אני לקוח. 37 00:02:18,110 --> 00:02:19,130 הוא אומר שלום. 38 00:02:19,130 --> 00:02:23,610 אני באמת רוצה אחד הספלים האדומים שלך. 39 00:02:23,610 --> 00:02:24,760 ומה וינס אומר? 40 00:02:24,760 --> 00:02:26,510 האם מישהו יש לי מושג מה וינס אומר? 41 00:02:26,510 --> 00:02:30,340 42 00:02:30,340 --> 00:02:31,452 אני הולך לשיחה קרה. 43 00:02:31,452 --> 00:02:32,660 מה אתה חושב וינס אומר? 44 00:02:32,660 --> 00:02:36,139 >> קהל: הוא אומר, אני יכול להראות לך איפה זה, אבל אני לא יכול לתת לך אחד. 45 00:02:36,139 --> 00:02:41,330 >> טורבן סטיבן: הוא אומר, אני יכול להראות לך איפה זה, אבל אני לא יכול לתת לך אחד. 46 00:02:41,330 --> 00:02:42,295 אפילו יותר גרוע. 47 00:02:42,295 --> 00:02:44,420 כל אחד אחר שיש לי אחר מושג מה וינס אפשר לומר? 48 00:02:44,420 --> 00:02:46,957 >> קהל: הוא צריך ללכת לבדוק אם יש להם כוסות אדומות. 49 00:02:46,957 --> 00:02:49,290 טורבן סטיבן: וינס לא אפילו יודע שיש לו כדי לבדוק. 50 00:02:49,290 --> 00:02:50,070 כל דבר אחר? 51 00:02:50,070 --> 00:02:52,360 אז אתה אמר, יש ל לבדוק אם יש לו כוסות אדומות. 52 00:02:52,360 --> 00:02:52,895 קדימה. 53 00:02:52,895 --> 00:02:54,020 קהל: מה כוס אדומה? 54 00:02:54,020 --> 00:02:56,072 סטפן טורבן: מה כוס אדומה? 55 00:02:56,072 --> 00:02:58,090 מה כוס אדומה? 56 00:02:58,090 --> 00:02:59,410 וינס הוא מבולבל. 57 00:02:59,410 --> 00:03:05,141 אז וינס הולך לדבר חבר שלנו הבא היצוק, קרל. 58 00:03:05,141 --> 00:03:10,252 וכאשר אנו חושבים על קרל, אנחנו צריך לחשוב על שני adjectives-- הגדול 59 00:03:10,252 --> 00:03:15,110 הוא שליטה, אבל הוא לא מסוגל. 60 00:03:15,110 --> 00:03:17,840 >> אז וינס goes-- הוא הולך, מה היא כוס אדומה? 61 00:03:17,840 --> 00:03:19,800 אני לא יודע מה היא כוס אדומה. 62 00:03:19,800 --> 00:03:23,080 הוא מסתובב, והוא שואל את קארל. 63 00:03:23,080 --> 00:03:28,890 הוא אומר, קרל, מישהו ביקש כוס אדומה. 64 00:03:28,890 --> 00:03:30,722 האם אתה יכול לעשות את זה? 65 00:03:30,722 --> 00:03:31,680 ומה קרל אומר? 66 00:03:31,680 --> 00:03:32,513 בואו להבין את זה. 67 00:03:32,513 --> 00:03:34,330 האם יש למישהו כל מושג מה קרל אומר? 68 00:03:34,330 --> 00:03:37,260 ואני רק חוזר על זה אחזור אליך. 69 00:03:37,260 --> 00:03:39,280 ראיתי תנועת יד. 70 00:03:39,280 --> 00:03:41,760 >> קהל: הוא אומר לי מישהו אחר כדי לקבל את הכוסות האדומות. 71 00:03:41,760 --> 00:03:44,430 >> טורבן סטיבן: הוא אומר לי מישהו אחר כדי לקבל את הכוס האדומה. 72 00:03:44,430 --> 00:03:46,270 בדיוק. 73 00:03:46,270 --> 00:03:49,010 ויש לנו רעיון מי הוא אותו אדם יכול להיות? 74 00:03:49,010 --> 00:03:52,590 75 00:03:52,590 --> 00:03:53,090 זה רמז. 76 00:03:53,090 --> 00:03:56,960 זה הולך להתחיל עם Mob מ '? 77 00:03:56,960 --> 00:04:00,225 >> קהל: דגם. 78 00:04:00,225 --> 00:04:02,720 >> סטפן טורבן: המודל, כן. 79 00:04:02,720 --> 00:04:06,920 שמו אינו מודל, למרבה הצער, כי זה שם טיפשי. 80 00:04:06,920 --> 00:04:09,310 יש לנו מיט. 81 00:04:09,310 --> 00:04:12,970 וכאשר אנו חושבים על Mitt-- לא, זה לא תמונה של זאק. 82 00:04:12,970 --> 00:04:15,590 83 00:04:15,590 --> 00:04:21,759 אנחנו צריכים לחשוב על שתי תארי מפתח עם מיט. 84 00:04:21,759 --> 00:04:25,040 הוא מסוגל, אבל הוא כנוע. 85 00:04:25,040 --> 00:04:29,950 אז מיט יודע מה יש לו לעשות, אבל הוא באמת לא יכול לעשות שום דבר. 86 00:04:29,950 --> 00:04:32,340 או שהוא באמת לא יכול להחליט על הדעת עצמו. 87 00:04:32,340 --> 00:04:33,256 >> אז יש לנו קרל. 88 00:04:33,256 --> 00:04:34,705 קרל צועק על מיט. 89 00:04:34,705 --> 00:04:39,990 והוא אומר, היי מיט, אנחנו צריכים כוסות אדומות. 90 00:04:39,990 --> 00:04:46,410 ומיט הולך למחסן הכוס האדום שלו. 91 00:04:46,410 --> 00:04:48,960 הוא תופס כוס, והוא נותן אותו בחזרה. 92 00:04:48,960 --> 00:04:51,360 האם יש למישהו כל מושג מה קורה אז? 93 00:04:51,360 --> 00:04:54,070 94 00:04:54,070 --> 00:04:55,120 נותן את הכוס. 95 00:04:55,120 --> 00:05:01,740 עד כה מיט הלך לאדום שלו מאגר הכוס, לקח אותו החוצה, 96 00:05:01,740 --> 00:05:03,550 בדק אותו, אמר, לקחתי כוס אדומה אחד. 97 00:05:03,550 --> 00:05:06,717 והוא נותן אותה לקרל. 98 00:05:06,717 --> 00:05:07,550 האם יש לך רעיון? 99 00:05:07,550 --> 00:05:08,980 מה אתה חושב קרל עושה? 100 00:05:08,980 --> 00:05:10,926 >> קהל: קרל נותן אותו לוינס. 101 00:05:10,926 --> 00:05:13,550 >> טורבן סטיבן: קרל נותן אותו לוינס. 102 00:05:13,550 --> 00:05:14,165 וינס. 103 00:05:14,165 --> 00:05:15,999 >> קהל: ווינס מראה את זה ל[ לא ברור]. 104 00:05:15,999 --> 00:05:16,998 טורבן סטיבן: בדיוק. 105 00:05:16,998 --> 00:05:18,080 אז זה בדיוק זה. 106 00:05:18,080 --> 00:05:21,040 אז וינס לוקח את הכוס, אפילו לא יודע מה זה, 107 00:05:21,040 --> 00:05:23,840 אבל הוא מראה אותה למשתמש. 108 00:05:23,840 --> 00:05:27,140 אז בואו ננסה לשחזר זה באמת זמן קצר. 109 00:05:27,140 --> 00:05:31,380 ואנחנו הולכים צורך שלושה מתנדבים שקטים, 110 00:05:31,380 --> 00:05:35,260 כאתם לא הולכים כדי להיות מסוגל לדבר. 111 00:05:35,260 --> 00:05:36,470 כדי שאוכל לתפוס את שלוש? 112 00:05:36,470 --> 00:05:37,040 OK. 113 00:05:37,040 --> 00:05:38,248 ואת מי אתה רוצה להיות? 114 00:05:38,248 --> 00:05:42,310 115 00:05:42,310 --> 00:05:43,750 >> קהל: אני אהיה וינס. 116 00:05:43,750 --> 00:05:44,960 >> סטפן טורבן: וינס, על אישור. 117 00:05:44,960 --> 00:05:46,190 יפה אבל טיפש. 118 00:05:46,190 --> 00:05:47,510 גדול. 119 00:05:47,510 --> 00:05:48,570 מישהו אחר? 120 00:05:48,570 --> 00:05:53,520 אנחנו מחפשים מסוגלים אך כנוע. 121 00:05:53,520 --> 00:05:55,760 מישהו אחר רוצה להיות מסוגל? 122 00:05:55,760 --> 00:05:56,944 >> קהל: אני יכול להיות קרל. 123 00:05:56,944 --> 00:05:57,860 טורבן סטיבן: מתוק. 124 00:05:57,860 --> 00:05:59,102 יש לנו קרל. 125 00:05:59,102 --> 00:05:59,866 >> קהל: מיט. 126 00:05:59,866 --> 00:06:01,050 >> סטפן טורבן: מיט, על אישור. 127 00:06:01,050 --> 00:06:05,070 ואנחנו הולכים צריכים a-- אני אהיה הלקוח. 128 00:06:05,070 --> 00:06:07,460 אז יאללה, שבאו עליו. 129 00:06:07,460 --> 00:06:10,470 וכולם בנוף? 130 00:06:10,470 --> 00:06:15,440 אז אני הולך לשאול את וינס ל לעמוד בחזית, רק מחייך, 131 00:06:15,440 --> 00:06:18,230 רק מחייך בהיר ככל האפשר. 132 00:06:18,230 --> 00:06:21,520 ואנחנו הולכים לשאול את קרל, נכון, למה אתה לא, כמו, 133 00:06:21,520 --> 00:06:24,050 לעמוד ממש מאחוריה? 134 00:06:24,050 --> 00:06:26,660 ומיט, למה אתה לא רק ללכת בגב, 135 00:06:26,660 --> 00:06:31,410 ואז אני אתן לך קבוצה כוסות להסתובב עם. 136 00:06:31,410 --> 00:06:34,170 >> אז אני לקוח. 137 00:06:34,170 --> 00:06:35,610 אני בא. 138 00:06:35,610 --> 00:06:40,490 ואני עושה [לא ברור] אני אומר, היי, אני רוצה כוס. 139 00:06:40,490 --> 00:06:43,214 140 00:06:43,214 --> 00:06:44,580 מושלם. 141 00:06:44,580 --> 00:06:45,580 אז יש וינס מושג. 142 00:06:45,580 --> 00:06:46,915 אז מה עושה וינס לעשות עכשיו? 143 00:06:46,915 --> 00:06:50,770 144 00:06:50,770 --> 00:06:52,860 Vince-- אוקיי, אז אני הולך להיות מספרת עכשיו. 145 00:06:52,860 --> 00:06:55,390 >> וינס צועק על קרל, כוס! 146 00:06:55,390 --> 00:06:58,840 147 00:06:58,840 --> 00:07:00,790 מה קרל עושה? 148 00:07:00,790 --> 00:07:03,910 קרל צועק על מיט. 149 00:07:03,910 --> 00:07:06,710 מיט תופס כוס. 150 00:07:06,710 --> 00:07:08,220 מיט נותן אותו לקרל. 151 00:07:08,220 --> 00:07:10,870 קרל מחזיר אותו לוינס. 152 00:07:10,870 --> 00:07:12,640 ווינס מציג אותה למשתמש. 153 00:07:12,640 --> 00:07:17,960 >> וזה גבוה, גבוה, מבט גבוה, כל כך גבוה בMVC. 154 00:07:17,960 --> 00:07:22,460 אנחנו מחלקים את זה על ידי בעל השקפה, מה המשתמש רואה, בקר, מישהו 155 00:07:22,460 --> 00:07:25,760 שעושה כל שברקע אבל ממש לא יכול לעדכן כל דבר 156 00:07:25,760 --> 00:07:29,960 או לא יכול לעשות שום דבר מכל משמעות מלבד קורא את הנוף ואת המודל. 157 00:07:29,960 --> 00:07:35,280 ולאחר מכן יש לנו מיט, המודל, שמעדכן מה הנתונים שיש לנו. 158 00:07:35,280 --> 00:07:42,660 אז תודה רבה לך עלינו יפה, שליטה, ומסוגל מתנדב. 159 00:07:42,660 --> 00:07:43,730 ואני חושב שזה היה. 160 00:07:43,730 --> 00:07:45,040 >> [מחיאות כפות] 161 00:07:45,040 --> 00:07:48,745 >> אני חושב שגייב הולך לדבר עכשיו ברמה גבוהה בתקווה פחות. 162 00:07:48,745 --> 00:07:51,600 >> גבריאל GUIMARAES: OK, בחורים. 163 00:07:51,600 --> 00:07:56,790 עכשיו בואו נדבר קצת יותר על קוד ועל Ruby on Rails עצמו, 164 00:07:56,790 --> 00:08:00,750 ועל איך שהיא מתייחסת לכל הסיפור הזה MVC. 165 00:08:00,750 --> 00:08:03,190 בעיקרון, Ruby on Rails הוא מסגרת. 166 00:08:03,190 --> 00:08:04,640 עוד על כך בשנייה. 167 00:08:04,640 --> 00:08:07,760 >> אבל רק כדי לתת לך תחושה של מי משתמשת בו, 168 00:08:07,760 --> 00:08:12,240 כמו, כל companies-- הגדול הבאות כך GitHub, Groupon, Twitter-- 169 00:08:12,240 --> 00:08:15,300 הם כולם משתמשים Ruby on מסילות כמסגרת העיקרית שלהם 170 00:08:15,300 --> 00:08:16,510 כדי ליישם אתר האינטרנט שלהם. 171 00:08:16,510 --> 00:08:19,130 אז אני בטוח שהרבה אנשים השתמש באתרים אלו כאן. 172 00:08:19,130 --> 00:08:24,470 וזה כל Ruby on Rails ליישם המודל, הנוף, ואת הבקר 173 00:08:24,470 --> 00:08:26,890 בכל אחד מהאתרים האלה ועוד רבים אחרים. 174 00:08:26,890 --> 00:08:27,830 בסדר? 175 00:08:27,830 --> 00:08:32,090 >> אז כמו שאמרתי, Ruby on Rails הוא מסגרת. 176 00:08:32,090 --> 00:08:37,237 ואתה יכול סוג של לחשוב על מסגרת במובן של כמו לבנות בית. 177 00:08:37,237 --> 00:08:39,570 אז אם אתה הולך לבנות house-- ואתה תמיד יכול 178 00:08:39,570 --> 00:08:40,653 להתחיל מהתחלה, נכון? 179 00:08:40,653 --> 00:08:46,440 אתה יכול לנסות לבוא עם דרך ראתה העץ, 180 00:08:46,440 --> 00:08:49,760 וכדי להביא את העץ למקום, ו כדי לקבל את האבנים בצורה הנכונה, 181 00:08:49,760 --> 00:08:51,250 ולאחר מכן את כל זה. 182 00:08:51,250 --> 00:08:54,020 אבל זה הולך לקחת כנראה הרבה שנים 183 00:08:54,020 --> 00:08:56,910 עד שאתה מקבל את כל החומר, ואתה מקבל את הכל ביחד, 184 00:08:56,910 --> 00:08:58,790 ואתה בעצם להתחיל לבנות את הבית שלך. 185 00:08:58,790 --> 00:09:01,748 >> אז מתברר אם אתה מתחיל לצאת עם מסגרת עם משהו ש 186 00:09:01,748 --> 00:09:04,260 כבר סוג של במקום לכל סוג של בית 187 00:09:04,260 --> 00:09:07,750 שברצונך build-- משהו זה מאוד גנרי אבל זה שאתה יכול 188 00:09:07,750 --> 00:09:12,850 אז מודל לכיוון שלך goals-- אז אתה יכול למנף 189 00:09:12,850 --> 00:09:16,800 כוח זה של המסגרות לבנות שלהם משהו הרבה, הרבה יותר מהר. 190 00:09:16,800 --> 00:09:17,300 OK. 191 00:09:17,300 --> 00:09:21,110 אז זה אותו הרעיון ב מסגרת ליישום אינטרנט 192 00:09:21,110 --> 00:09:23,755 או לכל סוג של יישום, לצורך העניין. 193 00:09:23,755 --> 00:09:26,560 >> אתה בעצם מתחיל עם מחצית יישום 194 00:09:26,560 --> 00:09:28,400 כבר שם במקום בשבילכם. 195 00:09:28,400 --> 00:09:32,230 ועל ידי זה, אני אומר שאתה מקבל הרבה קבצים שכבר יש לי פונקציות, 196 00:09:32,230 --> 00:09:36,830 כמו ספריות, כמו פונקציונלי, ופקודות שאתה יכול לרוץ על מנת 197 00:09:36,830 --> 00:09:40,500 כדי להפוך את החיים שלך הרבה יותר פשוט וקל יותר. 198 00:09:40,500 --> 00:09:41,180 OK. 199 00:09:41,180 --> 00:09:43,555 >> אז במקרה הזה, אנחנו הולכים לדבר על Ruby on Rails. 200 00:09:43,555 --> 00:09:45,920 יש המון שונה מסגרות בחוץ. 201 00:09:45,920 --> 00:09:47,550 יש Django לפייתון. 202 00:09:47,550 --> 00:09:50,990 יש מסגרת Zend או Laravel עבור PHP. 203 00:09:50,990 --> 00:09:52,390 יש המון אלה שונים. 204 00:09:52,390 --> 00:09:56,830 Ruby on Rails הוא אחד חדש די נחמד. 205 00:09:56,830 --> 00:10:01,600 הרבה אנשים משתמשים בחברות סטארט-אפ ש ושל סביבה מסוג זה. 206 00:10:01,600 --> 00:10:04,250 וחלק מאלה גדולים מאוד חברות שהראיתי כאן לפני 207 00:10:04,250 --> 00:10:06,050 גם משתמשים Ruby on Rails. 208 00:10:06,050 --> 00:10:10,070 >> אז רק כדי לתת לך תחושה של מה הוא Ruby 209 00:10:10,070 --> 00:10:13,030 כמו, כן אתם נמצאים בשימוש יותר ל, כמו, C וקצת PHP 210 00:10:13,030 --> 00:10:17,560 עכשיו, כל כך רובי הולך להיות מקבילה של PHP שלך במובן זה. 211 00:10:17,560 --> 00:10:18,380 זה לא רובי. 212 00:10:18,380 --> 00:10:19,830 זה ג בסדר? 213 00:10:19,830 --> 00:10:22,660 אבל זה כמו פונקצית DJBHash ש 214 00:10:22,660 --> 00:10:27,170 מכיר אנשים רבים המשמשים לשגיאות כתיב PSET. 215 00:10:27,170 --> 00:10:29,670 >> וברובי, די ממש כמו ב- PHP, אתה 216 00:10:29,670 --> 00:10:32,745 יכול ליישם את זה עם רק כמה שורות קוד. 217 00:10:32,745 --> 00:10:34,870 במקום שיש לדאוג על פונקצית החשיש, 218 00:10:34,870 --> 00:10:37,950 לדאוג דליים, וכל זה, אתה יכול פשוט לומר, 219 00:10:37,950 --> 00:10:40,160 מילון = Hash.net. 220 00:10:40,160 --> 00:10:44,560 ואז אתה משתמש בסוג של כמו אותו הרעיון שהיה לי PHP. 221 00:10:44,560 --> 00:10:45,970 ואז זה לאמיתי. 222 00:10:45,970 --> 00:10:48,080 ואז אם אתה רוצה לבדוק, כדי לבדוק פונקציה 223 00:10:48,080 --> 00:10:51,560 יהיה אם "foo" מילון שווה שווה אמיתי, לחזור אמיתי. 224 00:10:51,560 --> 00:10:52,580 וזה כל מה ש, בסדר? 225 00:10:52,580 --> 00:10:54,030 >> אז אתה שם לב כמה הבדלים. 226 00:10:54,030 --> 00:10:57,940 אין נקודה-פסיק כאן, כפי שהיו בג 227 00:10:57,940 --> 00:11:00,710 אבל הרעיון הכללי הוא דומה מאוד. 228 00:11:00,710 --> 00:11:02,030 בסדר? 229 00:11:02,030 --> 00:11:08,010 >> כמו כן, ברובי, יש פנינים, ש הם סוג של ספריות רובי. 230 00:11:08,010 --> 00:11:12,460 ומטפל בהם בRails דרך נחמדה מאוד בשבילך. 231 00:11:12,460 --> 00:11:15,480 אז אם אתה רוצה לשים באיזו ספרייה ש 232 00:11:15,480 --> 00:11:18,670 עושה מיילים, או ש עושה בהודעות טקסט, 233 00:11:18,670 --> 00:11:22,170 או שעושה אינטגרציה עם פייסבוק, או כל סוג של דבר 234 00:11:22,170 --> 00:11:24,374 כמו שעבור היישום שלך, זה מאוד, מאוד קל. 235 00:11:24,374 --> 00:11:26,790 רוב הסיכויים הם שאתה יכול למצוא משהו כמו שבאינטרנט. 236 00:11:26,790 --> 00:11:30,300 והם פשוט עושים משהו כמו מכר ש 237 00:11:30,300 --> 00:11:32,290 פנינה שברצונך להשתמש בקובץ הפנינה. 238 00:11:32,290 --> 00:11:33,749 ולאחר מכן Rails מתקין הכל. 239 00:11:33,749 --> 00:11:36,456 אתה לא צריך לדאוג כל כך, אז זה ממש מגניב. 240 00:11:36,456 --> 00:11:38,500 כמו כן, יש הרבה, שפע של עזרה מקוונת. 241 00:11:38,500 --> 00:11:40,485 אז אתה יכול למצוא הרבה דברים. 242 00:11:40,485 --> 00:11:42,360 אם יש לך טעות, רק אתה יכול לגגל את זה, 243 00:11:42,360 --> 00:11:45,090 וזה הולך להיות קל מאוד לקבל עזרה. 244 00:11:45,090 --> 00:11:47,200 >> וזה הרבה fun-- exactly-- כי אתה 245 00:11:47,200 --> 00:11:51,420 לא צריך לדאוג ברמה הנמוכה פרטים, יישום של שולחנות חשיש 246 00:11:51,420 --> 00:11:58,080 ויש להם לבוא עם כל כותרות HTTP, והרבה דברים, 247 00:11:58,080 --> 00:12:00,197 ואפילו כמה דברים ברמה יותר גבוהים. 248 00:12:00,197 --> 00:12:02,030 אתה לא צריך לדאוג על זה בRails. 249 00:12:02,030 --> 00:12:04,010 זה עושה את זה מאוד, מאוד יפה בשבילך. 250 00:12:04,010 --> 00:12:07,490 ואנחנו הולכים להראות ש יותר קונקרטי בקרוב מאוד. 251 00:12:07,490 --> 00:12:08,130 OK. 252 00:12:08,130 --> 00:12:09,750 >> אז קצת על Ruby שוב. 253 00:12:09,750 --> 00:12:11,420 אז זה בדיוק כמו C, כפי שאמרתי. 254 00:12:11,420 --> 00:12:14,170 במקום printf, אנחנו אומרים "מכניס", שהוא "לשים מחרוזת." 255 00:12:14,170 --> 00:12:18,100 זה מכניס את מחרוזת לקונסולה. 256 00:12:18,100 --> 00:12:20,601 ובמקרה הזה, אנחנו רק הדפסה "Hello World". 257 00:12:20,601 --> 00:12:23,100 אנחנו לא צריכים את הסוגריים, אבל זה די דומה הרבה. 258 00:12:23,100 --> 00:12:26,190 >> ואז אם אתה רוצה לעשות משהו כאן, 259 00:12:26,190 --> 00:12:30,450 כמו להדפיס חבורה של "Smalls" ו חבורה של "bigs" בלולאה בזמן, 260 00:12:30,450 --> 00:12:32,060 זה כמו סוג של בC, נכון? 261 00:12:32,060 --> 00:12:35,090 אין לך params, אבל זה פחות או יותר אותו הדבר. 262 00:12:35,090 --> 00:12:37,300 הזחה כאן ספירה, כך x שווה 1. 263 00:12:37,300 --> 00:12:41,250 ולאחר מכן בעוד x קטן מ 50-- זה אם, זה אחר. 264 00:12:41,250 --> 00:12:42,810 זה פחות או יותר כמו מה שראית. 265 00:12:42,810 --> 00:12:47,150 >> ואז x = + 1 הוא רק להגדיל כל, כמו סוג של עושה ++ שאתה יכול 266 00:12:47,150 --> 00:12:50,213 לעשות בC. אבל זה די הרבה מה שראית בג 267 00:12:50,213 --> 00:12:52,380 זה לא אמור להיות מסובך מדי. 268 00:12:52,380 --> 00:12:54,320 אבל הוא חזק יותר. 269 00:12:54,320 --> 00:13:00,100 אז יש כמה פקודות כאן כי הם בהחלט קצת חדשים יותר. 270 00:13:00,100 --> 00:13:05,110 >> כך למשל, "מעמיד". 271 00:13:05,110 --> 00:13:08,680 אתה יכול להשתמש בסימון hashtag זה כאן רק להדפיס something-- 272 00:13:08,680 --> 00:13:13,490 פחות או יותר כמו מה היית עושה אם C% D או% או כמו שמעט. 273 00:13:13,490 --> 00:13:17,600 ואתה באמת יכול לשים אם מייד לאחר ההצהרה. 274 00:13:17,600 --> 00:13:21,180 אז אני רק רוצה לעשות את זה-- אם x הוא יותר מ 3. 275 00:13:21,180 --> 00:13:24,129 אז למה שיהיה לי ל להפוך כל אם בלוק? 276 00:13:24,129 --> 00:13:24,670 אֲנִי לֹא יוֹדֵעַ. 277 00:13:24,670 --> 00:13:28,880 אני רק יכול להדפיס את זה רק אם x שווה יותר מ -3. 278 00:13:28,880 --> 00:13:32,740 אז זו דרך שורה אחת לעשות את זה ברובה. 279 00:13:32,740 --> 00:13:35,570 >> רשימה ברובי היא משהו מאוד תכליתי. 280 00:13:35,570 --> 00:13:38,110 אז אתה לא באמת צריך יש רק סוג אחד. 281 00:13:38,110 --> 00:13:40,674 אתה יכול להיות מחרוזת, ולאחר מכן כמה מספרים, וכל מה ש. 282 00:13:40,674 --> 00:13:42,590 ואם אתה רוצה לצרף משהו לרשימה, 283 00:13:42,590 --> 00:13:46,860 אתה יכול פשוט להשתמש בזה סימון כאן. 284 00:13:46,860 --> 00:13:48,310 >> ואם אתה רוצה לחזר. 285 00:13:48,310 --> 00:13:56,200 די הרבה 4each בPHP, כאן, אתה יש להם רשימה ואתה עושה "List.each לעשות." 286 00:13:56,200 --> 00:13:59,464 ו" עלם ", זה זה כמו שמו של כל אלמנט 287 00:13:59,464 --> 00:14:00,880 שאני הולך להיות ברשימה שלי. 288 00:14:00,880 --> 00:14:03,890 ואז אני יכול רק "מעמיד עלם". 289 00:14:03,890 --> 00:14:07,130 ו" מכניס "די הרבה ידיות לשים את זה בשבילך, הדפסתו. 290 00:14:07,130 --> 00:14:09,920 זה לא משנה אם זה מחרוזת או int. 291 00:14:09,920 --> 00:14:12,790 זה הולך לעבוד את זה בשבילך. 292 00:14:12,790 --> 00:14:14,270 נכון? 293 00:14:14,270 --> 00:14:14,790 מגניב. 294 00:14:14,790 --> 00:14:19,980 >> ובדיוק כמו PHP, Ruby ו- HTML גם לשלב מאוד, יפה מאוד. 295 00:14:19,980 --> 00:14:23,340 וכאן, יש כמה HTML עם רובי בזה. 296 00:14:23,340 --> 00:14:25,860 אז יש לנו תג גוף כמו ב- HTML. 297 00:14:25,860 --> 00:14:28,270 ואם אנחנו רוצים לבדוק כי משתמש הוא, למשל, 298 00:14:28,270 --> 00:14:35,730 מחובר, אנחנו יכולים רק לומר, תחילת רובי, אם user.logged_in ?, סוף רובי. 299 00:14:35,730 --> 00:14:39,240 הדפס את כל הדבר הזה, ש יש כמה רובי בזה, וזה רק 300 00:14:39,240 --> 00:14:42,230 כמו סוג של תחביר של PHP שמדפיס משתנים. 301 00:14:42,230 --> 00:14:43,380 בואו להדפיס את user.name. 302 00:14:43,380 --> 00:14:48,870 >> אז בברכה, סטיבן, בתוך div HTML. 303 00:14:48,870 --> 00:14:53,760 ובסופו של הדבר, יש לנו "סוף" ו קוד רובי, מה שאומר שזה שלי 304 00:14:53,760 --> 00:14:54,470 אם בלוק. 305 00:14:54,470 --> 00:14:55,060 בסדר? 306 00:14:55,060 --> 00:14:57,684 אז זה בדיוק כמו חלק שילוב בין רובי ו- HTML. 307 00:14:57,684 --> 00:15:00,056 308 00:15:00,056 --> 00:15:01,430 יש גם הרבה משאבים. 309 00:15:01,430 --> 00:15:06,290 אבל לפני שאנחנו עוברים, עושה לאף אחד יש לך שאלות על Ruby, משהו? 310 00:15:06,290 --> 00:15:08,960 OK. 311 00:15:08,960 --> 00:15:12,250 >> יש המון משאבים מקוונים לtryruby.org, קוד אקדמיה, 312 00:15:12,250 --> 00:15:18,740 ruby-lang.org, שבו אתה יכול לנסות את זה את בדפדפן שלך לפני שאתה בעצם 313 00:15:18,740 --> 00:15:22,310 אומר, אה, בסדר, אני הולך להשתמש ב רובי לפרויקט הגמר שלי. 314 00:15:22,310 --> 00:15:24,020 וכך בהחלט לתת אותם לנסות. 315 00:15:24,020 --> 00:15:26,510 כל שקופיות אלה הולך להיות זמין באופן מקוון, 316 00:15:26,510 --> 00:15:28,950 כך שאתה יכול פשוט להוריד אותם. 317 00:15:28,950 --> 00:15:30,115 וכן? 318 00:15:30,115 --> 00:15:31,889 >> קהל: [לא ברור] מה שאתה רק הראה 319 00:15:31,889 --> 00:15:36,851 היה HTML והקוד מוטבע ל אותו לרעיון זה של דגם תצוגה 320 00:15:36,851 --> 00:15:37,350 בקר? 321 00:15:37,350 --> 00:15:37,610 >> גבריאל GUIMARAES: כן. 322 00:15:37,610 --> 00:15:40,290 אנחנו נעשה את זה בשנייה כאשר אנו מראים הדוגמא שלנו, בסדר? 323 00:15:40,290 --> 00:15:41,290 תודה על השאלה. 324 00:15:41,290 --> 00:15:44,760 אז השאלה הייתה בעצם אם יכול להראות שילוב זה של רובי 325 00:15:44,760 --> 00:15:49,230 ב- HTML בתוך הדגם הצג את מסגרת בקר. 326 00:15:49,230 --> 00:15:51,710 >> אז הרעיון של הדגם מסגרת צפה בבקר 327 00:15:51,710 --> 00:15:55,740 זה בעצם פילוסופיה, בדיוק כמו סטיבן הראה כאן. 328 00:15:55,740 --> 00:15:58,177 וזה לא משהו ש שאתה צריך לעשות, 329 00:15:58,177 --> 00:16:00,510 אבל זה משהו שגורם לי החיים שלך כל כך הרבה יותר פשוט. 330 00:16:00,510 --> 00:16:04,170 וRuby on Rails בנוי סביב פילוסופיה זו של קוד. 331 00:16:04,170 --> 00:16:06,320 אז אנחנו הולכים להראות לי דוגמא בקרוב מאוד. 332 00:16:06,320 --> 00:16:07,340 >> אז Rails הוא אהבה. 333 00:16:07,340 --> 00:16:09,140 הרבה אנשים משתמשים בו, כפי שאמרתי. 334 00:16:09,140 --> 00:16:10,510 וזה ממש כיף. 335 00:16:10,510 --> 00:16:12,360 אתם צריכים בהחלט לנסות את זה. 336 00:16:12,360 --> 00:16:15,120 MVC עושה הכל פשוט יותר. 337 00:16:15,120 --> 00:16:18,110 אז דגם תצוגת Controller, הדברים המפרידים 338 00:16:18,110 --> 00:16:21,450 ולשים אדם אחד, כשלעצמה, או חלק אחד של הבקשה שלך 339 00:16:21,450 --> 00:16:24,850 לעשות כל אחד ממקומות העבודה השונים כי היישום שאתה צריך לעשות. 340 00:16:24,850 --> 00:16:26,676 ובילה פחות זמן על בעיות ברמה נמוכה. 341 00:16:26,676 --> 00:16:27,800 ומאוד פופולרי עכשיו. 342 00:16:27,800 --> 00:16:29,917 יש לנו Rails 4.0, שהוא גרסה חדשה. 343 00:16:29,917 --> 00:16:31,500 והוא מגיע עם הרבה דברים מגניבים. 344 00:16:31,500 --> 00:16:32,562 שאלה נוספת. 345 00:16:32,562 --> 00:16:34,490 >> קהל: שאלה נוספת. 346 00:16:34,490 --> 00:16:39,310 Ruby on Rails לעומת Ruby on Rails בגביעים. 347 00:16:39,310 --> 00:16:40,230 >> גבריאל GUIMARAES: OK. 348 00:16:40,230 --> 00:16:42,252 השאלה הייתה, Ruby on Rails לעומת Ruby-- 349 00:16:42,252 --> 00:16:42,960 קהל: בגביעים. 350 00:16:42,960 --> 00:16:43,490 רובי? 351 00:16:43,490 --> 00:16:44,490 >> גבריאל GUIMARAES: כן. 352 00:16:44,490 --> 00:16:45,955 אז רובי הוא השפה. 353 00:16:45,955 --> 00:16:46,745 >> קהל: מס ' 354 00:16:46,745 --> 00:16:50,360 אני מבקש ממך להשוות שפה ומסגרת, Ruby on Rails, 355 00:16:50,360 --> 00:16:52,975 עם עוד שפה פופולרית framework-- Grails-- עם רובי 356 00:16:52,975 --> 00:16:53,310 on Rails. 357 00:16:53,310 --> 00:16:53,720 >> גבריאל GUIMARAES: OK. 358 00:16:53,720 --> 00:16:54,480 מצטער. 359 00:16:54,480 --> 00:16:57,390 השאלה הייתה, להשוות רובי וRuby on Rails 360 00:16:57,390 --> 00:16:59,750 למסגרת וanother-- אחר 361 00:16:59,750 --> 00:17:01,022 >> קהל: רובי. 362 00:17:01,022 --> 00:17:01,954 זה בסדר. 363 00:17:01,954 --> 00:17:03,820 אם אתה לא יודע על זה, זה בסדר. 364 00:17:03,820 --> 00:17:05,359 >> גבריאל GUIMARAES: כמו, מה שאני מבין הוא that-- 365 00:17:05,359 --> 00:17:07,080 >> קהל: יש עוד בגביעים בשם מסגרת. 366 00:17:07,080 --> 00:17:07,700 >> גבריאל GUIMARAES: אה, בגביעים. 367 00:17:07,700 --> 00:17:08,650 אני לא שמעתי על זה. 368 00:17:08,650 --> 00:17:09,640 מצטער. 369 00:17:09,640 --> 00:17:11,690 מעולם לא שמע על גרובי on Rails. 370 00:17:11,690 --> 00:17:12,744 מצטער. 371 00:17:12,744 --> 00:17:14,869 >> קהל: זה הרבה יותר טוב משולב עם Java. 372 00:17:14,869 --> 00:17:15,450 >> גבריאל GUIMARAES: אני מבין. 373 00:17:15,450 --> 00:17:17,555 >> קהל: אני פשוט סקרן על כמה אנשים שאני מכיר like-- 374 00:17:17,555 --> 00:17:20,240 >> גבריאל GUIMARAES: לא, אני לא שמע על זה אחד, למרבה הצער. 375 00:17:20,240 --> 00:17:20,700 בגביעים. 376 00:17:20,700 --> 00:17:21,410 >> קהל: וכמה אנשים ברור כמו Ruby on Rails. 377 00:17:21,410 --> 00:17:22,640 >> גבריאל GUIMARAES: לי רובי המשומש on Rails הרבה. 378 00:17:22,640 --> 00:17:24,790 אני השתמשתי כמה Django עם פייתון, כפי שאמרתי. 379 00:17:24,790 --> 00:17:26,329 אני השתמשתי כמה Laravel. 380 00:17:26,329 --> 00:17:29,490 אבל לא הייתי בשימוש גרובי on Rails. 381 00:17:29,490 --> 00:17:31,630 מצטער. 382 00:17:31,630 --> 00:17:34,040 וזה מאוד פופולרי עכשיו עם Rails 4.0. 383 00:17:34,040 --> 00:17:38,180 כמו, חלק מהדברים שRails עושה לך, למשל, הוא שאתה 384 00:17:38,180 --> 00:17:43,650 יש לי המון קבצי CSS ו הרבה קבצי JavaScript. 385 00:17:43,650 --> 00:17:45,790 ואתה יכול להתייחס אליהם כ נפרד והכל. 386 00:17:45,790 --> 00:17:50,010 >> אבל אז זה automatically-- כאשר אתה שולח את הקוד שלך לייצור, 387 00:17:50,010 --> 00:17:52,770 זה באופן אוטומטי הידור את כולם לקובץ אחד בודד 388 00:17:52,770 --> 00:17:55,150 זה minified ללא כל חללים, כך שזה לוקח עד 389 00:17:55,150 --> 00:17:59,400 פחות מקום ביישום שלך, כל כך כי אתה באמת יכול בהיקף דברים הרבה. 390 00:17:59,400 --> 00:18:04,380 זה חברות גדולות למה כזה כמו טוויטר וGitHub 391 00:18:04,380 --> 00:18:10,220 משתמשים Rails, כי זה עושה את כל זה בשבילך, וזה ממש מגניב. 392 00:18:10,220 --> 00:18:12,840 >> דבר אחד שהוא מאוד, מאוד, מאוד מרתיע 393 00:18:12,840 --> 00:18:18,450 לאנשים, כוללים אותי, שמנסים לעבוד 394 00:18:18,450 --> 00:18:22,430 עם מסגרת בתחילת, הוא כי כשאתה מתחיל את יישום, 395 00:18:22,430 --> 00:18:24,440 אתה הולך לראות חבורה של קבצים. 396 00:18:24,440 --> 00:18:28,460 כמו, כאשר אתה יוצר Rails חדש, המועמדות שלי, 397 00:18:28,460 --> 00:18:31,710 אתה הולך לראות את כל אלה folders-- אפליקציה, בן, config, db, lib, 398 00:18:31,710 --> 00:18:32,482 להתחבר, ציבורי. 399 00:18:32,482 --> 00:18:33,690 כמו, המון המון דברים. 400 00:18:33,690 --> 00:18:35,030 >> ואני בפעם הראשונה ראה את זה, אני היה כמו, 401 00:18:35,030 --> 00:18:36,570 OK, אין לי מושג מה קורה. 402 00:18:36,570 --> 00:18:38,890 אני רק רוצה ליצור אתר עם "שלום, עולם", 403 00:18:38,890 --> 00:18:41,730 וזה נותן לי, כמו, 100 מליארד דפים שונים. 404 00:18:41,730 --> 00:18:43,070 אני לא יודע מה קורה. 405 00:18:43,070 --> 00:18:47,460 אז בבקשה אל תהיה הרשמת אותי במיוחד. 406 00:18:47,460 --> 00:18:53,699 >> הרעיון הוא שבעצם יש לו חצי של בית יש לך כבר. 407 00:18:53,699 --> 00:18:55,490 יש לו כל מסגרת לך כבר. 408 00:18:55,490 --> 00:18:56,948 זו הסיבה שיש כל כך הרבה קבצים. 409 00:18:56,948 --> 00:19:00,150 אבל הדבר נחמד הוא שזה מפריד את כולם בצורה יפה מאוד. 410 00:19:00,150 --> 00:19:03,370 רוב הסיכויים הם שאתה לא צריך לדאוג על רוב התיקיות אלה. 411 00:19:03,370 --> 00:19:05,820 >> אחד החשוב ביותר, אני הייתי אומר, היא תיקיית היישום, 412 00:19:05,820 --> 00:19:07,147 שבו האפליקציה שלך חיה למעשה. 413 00:19:07,147 --> 00:19:09,730 אז config, אתה הולך צריך configurate כמה דברים, 414 00:19:09,730 --> 00:19:12,840 כמו מסד הנתונים שלך ודברים כאלה איזה סוג של מסד נתונים אתה משתמש. 415 00:19:12,840 --> 00:19:17,430 אבל חוץ מזה, כמו רוב העבודה שלך היא הולכת לעשות באפליקציה. 416 00:19:17,430 --> 00:19:21,620 אז באפליקציה, יש לך נכסים, בקרים, עוזרים, דיוורים, מודלים, נופים. 417 00:19:21,620 --> 00:19:24,460 אז הנה, אתה מתחיל לראות ש בקרים, מודלים, ונוף לבוא 418 00:19:24,460 --> 00:19:25,410 למשחק. 419 00:19:25,410 --> 00:19:27,270 >> הדיוורים הם רק אם אתה רוצה לשלוח מיילים. 420 00:19:27,270 --> 00:19:29,400 עוזרים אם אתה רוצה ליצור כמה פונקציות 421 00:19:29,400 --> 00:19:32,050 כי אתה משתמש הרבה בתצוגה. 422 00:19:32,050 --> 00:19:34,490 אז אתה שם אותם בעוזרים. 423 00:19:34,490 --> 00:19:39,000 ונכסים הוא בעצם כל התמונות שלך, כל CSS שלך, 424 00:19:39,000 --> 00:19:41,200 כל JavaScript שלך, וכמו סוגים אלה 425 00:19:41,200 --> 00:19:43,110 דברים שנשלחים ללקוח. 426 00:19:43,110 --> 00:19:45,500 וכל מה שהוא בנכסים, שאמרתי לפני, מקבל minified. 427 00:19:45,500 --> 00:19:45,940 זה הידור. 428 00:19:45,940 --> 00:19:49,189 ואתה לא באמת צריך לדאוג כי כשזה מגיע לקוד ייצור. 429 00:19:49,189 --> 00:19:49,770 מגניב. 430 00:19:49,770 --> 00:19:54,205 >> עכשיו זאק הולך לבוא ב, והוא הולך לעשות דוגמא של Twitter50. 431 00:19:54,205 --> 00:19:54,970 >> קהל: הו-הו! 432 00:19:54,970 --> 00:19:56,726 >> זאק chauvin: מדהים. 433 00:19:56,726 --> 00:20:00,180 אז לא הייתה לי ההזדמנות לעבוד עם Ruby on Rails בקיץ הזה. 434 00:20:00,180 --> 00:20:01,580 זה מסגרת מדהימה. 435 00:20:01,580 --> 00:20:03,580 אני מאוד חלקי לזה. 436 00:20:03,580 --> 00:20:09,770 ואני רק אראה לך קצת דוגמא למה שהיא יכולה להיראות. 437 00:20:09,770 --> 00:20:11,020 לקפוץ מעל ל- Chrome. 438 00:20:11,020 --> 00:20:16,350 אז זה הוא דוגמה לפשוטה מאוד Ruby on Rails application-- משהו 439 00:20:16,350 --> 00:20:19,690 כמו זה משהו שרובי באמת מצטיין 440 00:20:19,690 --> 00:20:24,070 that-- רק בך מודלים מוגדרים היטב. 441 00:20:24,070 --> 00:20:27,150 >> בדוגמא זו, תראה שני דגמים שונים, ש 442 00:20:27,150 --> 00:20:30,380 הם שיש לנו משתמשים ויש לנו tweets. 443 00:20:30,380 --> 00:20:33,480 אז זה Twitter50, טוויטר שלו באוניברסיטת הרווארד. 444 00:20:33,480 --> 00:20:36,820 כפי שניתן לראות, אני מחובר כ@zack. 445 00:20:36,820 --> 00:20:38,860 ואני מסוגל לעשות טוויטים חדשים. 446 00:20:38,860 --> 00:20:42,266 אז אני think-- "זה" - מצטער? 447 00:20:42,266 --> 00:20:43,182 קהל: [לא ברור]. 448 00:20:43,182 --> 00:20:44,061 זאק chauvin: אה, בסדר. 449 00:20:44,061 --> 00:20:45,060 צריך לעצור את השרת. 450 00:20:45,060 --> 00:20:47,480 מצוין. 451 00:20:47,480 --> 00:20:49,630 אז הנה אנחנו. 452 00:20:49,630 --> 00:20:52,520 כפי שניתן לראות, יש לנו שלנו יישום טוויטר ממש כאן. 453 00:20:52,520 --> 00:20:55,020 וזה סופר קל כדי להפעיל את השרת. 454 00:20:55,020 --> 00:20:57,991 אנחנו פשוט נעשה "שרת מסילות." 455 00:20:57,991 --> 00:20:58,490 גדול. 456 00:20:58,490 --> 00:20:58,990 OK. 457 00:20:58,990 --> 00:21:00,830 תודה על כך. 458 00:21:00,830 --> 00:21:02,200 אז עכשיו אנחנו רצים. 459 00:21:02,200 --> 00:21:06,120 >> ואנו אומרים, "זה הוא סמינר מדהים. " 460 00:21:06,120 --> 00:21:08,870 ובואו נראה מה קורה. 461 00:21:08,870 --> 00:21:10,020 כך תהיה לנו ציוץ על זה. 462 00:21:10,020 --> 00:21:13,390 למטה בתחתית, אתה יכול לראות עכשיו יש יותר משלושה טוויטים. 463 00:21:13,390 --> 00:21:15,980 אז יש לנו קצת של עימוד קורה. 464 00:21:15,980 --> 00:21:19,640 ויש לנו ציוץ ש. 465 00:21:19,640 --> 00:21:24,010 ואני גם יכול לחפש דרכי חיפוש tweets-- לזה ושני 466 00:21:24,010 --> 00:21:27,960 אלה שיש לי המילה "זה" בהם להופיע. 467 00:21:27,960 --> 00:21:30,860 כמו כן, אנו יכולים למחוק tweets על ידי לחיצה על הכפתור מחק הקטן. 468 00:21:30,860 --> 00:21:36,440 וכמובן, אני יכול רק להסיר לאחר שהיה שייכים לי. 469 00:21:36,440 --> 00:21:39,030 >> כבר, כמעט שיש לנו הפונקציונליות של טוויטר. 470 00:21:39,030 --> 00:21:42,000 כמו, כאשר אתה חושב על זה, טוויטר באמת לא עושה כל כך הרבה. 471 00:21:42,000 --> 00:21:44,280 יש בו משתמשים, יש לה טוויטים. 472 00:21:44,280 --> 00:21:47,690 יש כמה פונקציונלי מורכב יותר. 473 00:21:47,690 --> 00:21:52,960 אבל כאשר אתה באמת מקבל על זה, זה די Ruby on Rails אפליקציה פשוטה. 474 00:21:52,960 --> 00:21:57,560 ומשהו כזה, עם הבנה טובה של Ruby on Rails, 475 00:21:57,560 --> 00:22:00,680 כנראה שאתה יכול לעשות בשעה או שעות. 476 00:22:00,680 --> 00:22:04,210 >> וכי באמת מגיע בחזרה למנטרת רובי, 477 00:22:04,210 --> 00:22:07,540 שהוא כנס על תצורה. 478 00:22:07,540 --> 00:22:10,965 אז בחזרה ביום, אנשים, בכל עת הם רצו להפוך את האתר הזה, 479 00:22:10,965 --> 00:22:12,340 יצטרך להתחיל מהתחלה. 480 00:22:12,340 --> 00:22:13,740 OK, אני רוצה לעשות באתר. 481 00:22:13,740 --> 00:22:15,970 בואו נעשה את קובץ זה ו קובץ זה וקובץ זה. 482 00:22:15,970 --> 00:22:19,180 >> עם Ruby on Rails, יש שום דבר כזה. 483 00:22:19,180 --> 00:22:21,170 אתה אומר, אני רוצה אפליקציה חדשה. 484 00:22:21,170 --> 00:22:25,010 ובדיוק כמו גייב הראה לנו, זה יוצר את המבנה כולו קובץ עבורנו. 485 00:22:25,010 --> 00:22:27,490 ואנחנו פשוט לשנות את חלקים קטנים שאנחנו צריכים. 486 00:22:27,490 --> 00:22:31,570 אנחנו פשוט להתאים אישית את מה ש הוא ייחודי על האפליקציה שלנו. 487 00:22:31,570 --> 00:22:32,250 מגניב. 488 00:22:32,250 --> 00:22:38,540 אז חוזר למצגת שלנו preview-- המעניין. 489 00:22:38,540 --> 00:22:41,408 490 00:22:41,408 --> 00:22:42,724 איפה אני מציג? 491 00:22:42,724 --> 00:22:43,640 קהל: מסך מלא. 492 00:22:43,640 --> 00:22:45,715 ימני עליון. 493 00:22:45,715 --> 00:22:48,480 >> זאק chauvin: מצוין. 494 00:22:48,480 --> 00:22:48,990 מגניב. 495 00:22:48,990 --> 00:22:49,490 OK. 496 00:22:49,490 --> 00:22:51,480 אז קודם כל, המודל. 497 00:22:51,480 --> 00:22:54,100 סטיבן עשה מדהים עבודה של התוויית MVC. 498 00:22:54,100 --> 00:22:57,980 ועכשיו אנחנו הולכים להתייחס בחזרה לכי Ruby on Rails. 499 00:22:57,980 --> 00:23:00,730 אז המודל שאתה יכול סוג של חושב כמו מסד הנתונים. 500 00:23:00,730 --> 00:23:04,870 אתה כבר רואה את זה בCS50 האוצר, שבו חנויות המודל 501 00:23:04,870 --> 00:23:07,590 המידע על כמה מניות יש לך, 502 00:23:07,590 --> 00:23:10,986 או כל העסקות שביצעתם. 503 00:23:10,986 --> 00:23:12,860 זוהי דוגמא של קו של איך שהיית 504 00:23:12,860 --> 00:23:15,640 ללכת על ביצוע דגם חדש בRails. 505 00:23:15,640 --> 00:23:17,102 אז אני רוצה משתמש. 506 00:23:17,102 --> 00:23:19,060 זה הולך להיות דואר אלקטרוני, אשר הוא מחרוזת, 507 00:23:19,060 --> 00:23:20,990 וסיסמא, ש גם המחרוזת. 508 00:23:20,990 --> 00:23:27,150 אז זה כמו those-- אני רוצה כל שורה בטבלה של משתמשים שלי להיראות כמו ש. 509 00:23:27,150 --> 00:23:30,730 >> חלק מדהים באמת על Rails הוא שזה 510 00:23:30,730 --> 00:23:33,755 מייתר את הצורך לכתוב כל SQL פחות או יותר. 511 00:23:33,755 --> 00:23:38,640 כמה מכם הבחורים אהבו כתיבת SQL בPSET 7? 512 00:23:38,640 --> 00:23:39,770 בדיוק. 513 00:23:39,770 --> 00:23:41,840 SQL הוא לא מאוד ידידותי למשתמש. 514 00:23:41,840 --> 00:23:46,470 וRails תקצירים כל מה שמשם עם פקודות ממש קלים אלה. 515 00:23:46,470 --> 00:23:51,580 כך למשל, אם יש לנו למשתמש, למשתמש יש טוויטים רבים. 516 00:23:51,580 --> 00:23:56,580 וכל אחד מאותם טוויטים שייכים למשתמש. 517 00:23:56,580 --> 00:23:59,520 >> אז אם אתה מסתכל כאן, זה הוא המודל שלנו לציוץ שלנו. 518 00:23:59,520 --> 00:24:02,750 וכל מה שיש לנו לומר הוא line-- היחיד זה אני ציוץ 519 00:24:02,750 --> 00:24:05,090 למשתמש ואני שייך. 520 00:24:05,090 --> 00:24:10,160 ועם זה קו ויחיד קצת תצורת מסד נתונים, 521 00:24:10,160 --> 00:24:12,990 Rails מגדיר את מערכת היחסים הזו. 522 00:24:12,990 --> 00:24:17,450 בכל עת, אני יכול רק לומר, zack.tweets, כמו, נותן לי את כל tweets זק. 523 00:24:17,450 --> 00:24:19,420 אין SQL. 524 00:24:19,420 --> 00:24:20,040 קל סופר. 525 00:24:20,040 --> 00:24:26,580 שוב, זה כנס על תצורה מגיעה למשחק. 526 00:24:26,580 --> 00:24:29,770 >> אתה יכול לראות קצת של דוגמא של רובי כאן. 527 00:24:29,770 --> 00:24:32,740 כמו העניין הזה העניק אמר, כתיבת רובי הוא כמו סוג של כתיבת אנגלית. 528 00:24:32,740 --> 00:24:35,540 זו שפה ברמה גבוהה מאוד, והוא עושה את זה ממש קל 529 00:24:35,540 --> 00:24:42,380 לנו לומר דברים כמו, אני רוצה לוודא שיש לו ציוץ זה גוף. 530 00:24:42,380 --> 00:24:43,740 הנוכחות שלו היא אמיתית. 531 00:24:43,740 --> 00:24:47,170 ואני רוצה לוודא שזה ציוץ, בדיוק כמו טוויטר הנורמלי, 532 00:24:47,170 --> 00:24:49,020 יש לו אורך מרבי של 140. 533 00:24:49,020 --> 00:24:52,800 זה סופר-אינטואיטיבי, שפה גדולה באמת. 534 00:24:52,800 --> 00:24:54,590 >> בשלב הבא יש לנו את הנוף. 535 00:24:54,590 --> 00:24:57,510 אז זה כרוך HTML ו- CSS. 536 00:24:57,510 --> 00:25:00,490 והנה דוגמא לנוף. 537 00:25:00,490 --> 00:25:05,600 אז Ruby on Rails סוג של צורה חלקה משלב שני Ruby ו- HTML 538 00:25:05,600 --> 00:25:08,880 על מנת ליצור מה שאנחנו רוצים שבדף. 539 00:25:08,880 --> 00:25:11,380 אז זה הוא דוגמא לפריסה שלנו. 540 00:25:11,380 --> 00:25:15,710 אז אתה יכול לראות כמה תגים ש בחורים משמשים ל, כמו HTML, גוף, 541 00:25:15,710 --> 00:25:17,250 כל זה חומר טוב. 542 00:25:17,250 --> 00:25:21,760 >> ונכון לכאן, אם כי, אנו לשלב כמה רובי באומרו, 543 00:25:21,760 --> 00:25:25,390 אם יש הודעה לתצוגה, לאחר מכן יציג את ההודעה בdiv. 544 00:25:25,390 --> 00:25:28,060 אז אני לא מקבל יותר מדי לזה. 545 00:25:28,060 --> 00:25:31,190 אבל זה בדרך כלל דף שמקבל שניתנו on-- 546 00:25:31,190 --> 00:25:33,960 ולא משנה מה דף שאתה ב, זה אחד מקבל שניתנו. 547 00:25:33,960 --> 00:25:38,110 אז זה מה שמקבל כלל תמיד. 548 00:25:38,110 --> 00:25:38,980 מגניב. 549 00:25:38,980 --> 00:25:42,730 >> דוגמא נוספת לview-- זה אחד שבו בחר כל tweets. 550 00:25:42,730 --> 00:25:45,630 וחלק מהחומר הזה אולי נראה די מוכר. 551 00:25:45,630 --> 00:25:50,050 כך למשל, ממש כאן, אנחנו לולאה דרך כל אחד מtweets, 552 00:25:50,050 --> 00:25:51,960 ואנחנו מדפיסים אותם. 553 00:25:51,960 --> 00:25:54,320 אז הנה המקום שבו אנחנו להדפיס את הגוף. 554 00:25:54,320 --> 00:26:00,910 ואם user-- של הציוץ הנה דוגמא אמיתית של SQL לא מעורבת. 555 00:26:00,910 --> 00:26:04,390 אני רק שואל, היא זו המשתמש של ציוץ המשתמש הנוכחי? 556 00:26:04,390 --> 00:26:06,030 ואז מראה קשר כדי למחוק אותה. 557 00:26:06,030 --> 00:26:06,880 זה סופר פשוט. 558 00:26:06,880 --> 00:26:09,670 559 00:26:09,670 --> 00:26:10,920 >> בקר. 560 00:26:10,920 --> 00:26:14,390 אז זה שוב הוא,, הממשק בין המודל והנוף. 561 00:26:14,390 --> 00:26:17,820 זה אחד שעושה את העבודה הקשה של interacting-- להיות המתווך. 562 00:26:17,820 --> 00:26:20,980 הוא טוען מידע ל להציג, שאנו רואים בשניות. 563 00:26:20,980 --> 00:26:23,850 וכדי אינטראקציה עם המודל, זה 564 00:26:23,850 --> 00:26:29,170 קורא שיטות מודל, שהם מה ש אתם מכירים כפונקציות. 565 00:26:29,170 --> 00:26:31,490 >> כך למשל, זה הוא בקר של הציוץ שלנו. 566 00:26:31,490 --> 00:26:33,930 זה אולי נראה קצת מפחיד עכשיו. 567 00:26:33,930 --> 00:26:38,240 אבל זה ממש סופר אינטואיטיבי ברגע שתתחיל צלילה ב. 568 00:26:38,240 --> 00:26:42,990 כך למשל, במדד שלנו, זה שבו אנחנו רוצים להראות את כל tweets. 569 00:26:42,990 --> 00:26:46,910 וכך זה בעצם קו רק שואל לכל tweets. 570 00:26:46,910 --> 00:26:50,300 ואז אנחנו לאתחל שני tweet-- החדש כל כך כמו 571 00:26:50,300 --> 00:26:52,320 אם הם רוצים ליצור ציוץ חדש בדף זה. 572 00:26:52,320 --> 00:26:54,250 >> וזה שואל מה הוא המשתמש הנוכחי. 573 00:26:54,250 --> 00:26:58,850 וזה מאוד דומה ל להבהיר שראית בPSET 7, 574 00:26:58,850 --> 00:27:02,230 שבו זה רק סוג של אומר לי view-- זה סוג של, כמו, 575 00:27:02,230 --> 00:27:06,284 עובר משתנים שאתה הולך צריך בתצוגה לתצוגה. 576 00:27:06,284 --> 00:27:08,200 ויש חבורה שלמה שיטות שונות של 577 00:27:08,200 --> 00:27:10,410 כי בקר של הציוץ הזה יכול להתמודד. 578 00:27:10,410 --> 00:27:12,495 >> אבל באמת, Rails עושה עבודה נהדרת מסוג 579 00:27:12,495 --> 00:27:18,910 החלוקה אותם לשונה פעולות שהבקר שלך יכול לעשות. 580 00:27:18,910 --> 00:27:23,800 האם יש שאלות על כל אחד מחלקי MVC של Rails? 581 00:27:23,800 --> 00:27:25,550 סוג של רק רוח על ידי. 582 00:27:25,550 --> 00:27:29,250 אז אתם יכולים לבדוק את זה בעצמך. 583 00:27:29,250 --> 00:27:30,106 מדהים. 584 00:27:30,106 --> 00:27:31,200 אנחנו נמשיך. 585 00:27:31,200 --> 00:27:32,546 >> אז התקנת Rails. 586 00:27:32,546 --> 00:27:35,170 התקנת Rails יכול להיות, כמו, אחד החלקים מרתיעים יותר 587 00:27:35,170 --> 00:27:37,830 של כל Rails תהליך, למרבה הצער. 588 00:27:37,830 --> 00:27:40,450 אבל כמובן, כל שלנו בסביבה כדי לעזור. 589 00:27:40,450 --> 00:27:42,590 וברגע שזה שם, הרבה משאבים רבים, 590 00:27:42,590 --> 00:27:45,100 כגייב הזכיר, להתחלת עבודה. 591 00:27:45,100 --> 00:27:47,230 להלן הקישורים ש תצטרך כדי 592 00:27:47,230 --> 00:27:51,460 להוריד Rails כדי לקבל את זה מותקן במחשב שלך. 593 00:27:51,460 --> 00:27:54,240 ברור, זה זמין עבור שניהם Windows ו- Mac 594 00:27:54,240 --> 00:27:55,600 ולמכשיר CS50. 595 00:27:55,600 --> 00:27:58,520 596 00:27:58,520 --> 00:28:00,020 שאלות על כל דבר שאמרנו? 597 00:28:00,020 --> 00:28:04,265 598 00:28:04,265 --> 00:28:06,690 >> קהל: אני אהיה מעוניין ב, actually-- 599 00:28:06,690 --> 00:28:10,255 אז אני יודע שהורדה תוכנה היא המכשול הגדול ביותר. 600 00:28:10,255 --> 00:28:14,807 אם יש מספיק עניין ליש לי הורדת מושב או משהו מיני. 601 00:28:14,807 --> 00:28:15,640 זאק chauvin: ממ-הממ. 602 00:28:15,640 --> 00:28:15,692 כן. 603 00:28:15,692 --> 00:28:16,900 זה יכול להיות ממש מועיל. 604 00:28:16,900 --> 00:28:20,650 אם מישהו באמת מתלהב על באמצעות זה לפרויקט שלהם 605 00:28:20,650 --> 00:28:26,555 או בעתיד, אז הייתי בהחלט אשמח לדבר איתך על זה. 606 00:28:26,555 --> 00:28:27,055 ממ-הממ. 607 00:28:27,055 --> 00:28:29,530 >> קהל: שאלה קשורה למה שאל אותי לפני. 608 00:28:29,530 --> 00:28:32,563 לאלו מכם שעשו מסגרות אחרות שעדיין 609 00:28:32,563 --> 00:28:34,354 מנסה לעשות את אותו הדבר דבר, לעשות את זה קל יותר 610 00:28:34,354 --> 00:28:38,452 כדי לבנות אתר אינטרנט או פונקציונלי, אני חושב שכל תחושה 611 00:28:38,452 --> 00:28:43,653 מדוע שנהיה on Rails לעומת Zend או חלק מהמסגרות האחרות 612 00:28:43,653 --> 00:28:44,236 ושפות. 613 00:28:44,236 --> 00:28:47,870 >> זאק chauvin: אני רק אומרים שלי 0.02 $ על זה. 614 00:28:47,870 --> 00:28:49,090 אני אוהב את Ruby on Rails. 615 00:28:49,090 --> 00:28:52,120 הייתה לי את ההזדמנות לעבוד בשני PHP ו- Ruby on Rails. 616 00:28:52,120 --> 00:28:55,291 אני מעדיף בהרבה Ruby on מסילות בגלל רובי. 617 00:28:55,291 --> 00:28:56,790 בהחלט, זה חלק גדול מזה. 618 00:28:56,790 --> 00:28:58,140 כמו, כשאתה בחירת המסגרת שלך, 619 00:28:58,140 --> 00:28:59,490 גם לך לבחור את השפה שלך. 620 00:28:59,490 --> 00:29:03,510 >> רובי הוא סופר accessible-- אני חושב ש שפה הרבה יותר טובה מאשר PHP. 621 00:29:03,510 --> 00:29:06,250 אבל זה סוג של העדפה אישית. 622 00:29:06,250 --> 00:29:09,360 כמו כן, שיקול נוסף הוא הקהילה מאחורי המסגרת 623 00:29:09,360 --> 00:29:11,570 שאתה עובד עם. 624 00:29:11,570 --> 00:29:13,840 >> עכשיו Ruby on Rails הוא ממש חם. 625 00:29:13,840 --> 00:29:16,160 יש טונות של תמיכה מאחוריה. 626 00:29:16,160 --> 00:29:19,180 שתפרסם משהו על סטאק גלישה על בעיה שאתה 627 00:29:19,180 --> 00:29:22,350 יש בRuby on Rails, וזה ענה. 628 00:29:22,350 --> 00:29:26,900 שוב, זה קוד פתוח, מה שאומר ש כי זה כל הזמן משתנה. 629 00:29:26,900 --> 00:29:28,910 יש טונות של אנשים שבאמת מוקדשים 630 00:29:28,910 --> 00:29:32,370 כדי לעשות את זה מסגרת באמת מדהימה. 631 00:29:32,370 --> 00:29:34,225 אז בגלל זה הייתי לבחור Ruby on Rails. 632 00:29:34,225 --> 00:29:35,225 גבריאל GUIMARAES: כן. 633 00:29:35,225 --> 00:29:37,562 הייתי אומר שהרעיון מאחורי רוב המסגרות אתה 634 00:29:37,562 --> 00:29:39,770 הולך לגלות שיש מאוד, מאוד דומה, נכון? 635 00:29:39,770 --> 00:29:42,210 אז דגם תצוגת Controller, העובדה שהבקר שלנו של 636 00:29:42,210 --> 00:29:44,793 הולך להיראות כמו משהו כמו זה-- כל אחת מהפונקציות 637 00:29:44,793 --> 00:29:47,235 הוא כמו אחד מהדפים שלך, וזה מפנה אותי, 638 00:29:47,235 --> 00:29:48,750 וזה מאתחל את המשתנים. 639 00:29:48,750 --> 00:29:51,959 זה הולך להיות אותו הדבר ל כל מסגרת שאתה רואה שם בחוץ. 640 00:29:51,959 --> 00:29:53,375 ויש הולך להיות המודל. 641 00:29:53,375 --> 00:29:55,270 ואתה יכול לעשות דברים כאלה, "שייך ל." 642 00:29:55,270 --> 00:29:59,830 אז במקום לעשות גרסת SQL, אתה פשוט, כמו, לעשות, user.tweets, 643 00:29:59,830 --> 00:30:01,210 ואתה מקבל הכל. 644 00:30:01,210 --> 00:30:02,650 לכולם יש את זה. 645 00:30:02,650 --> 00:30:07,070 למעט ברובי, אתה עושה user.tweets, ולאחר מכן כמה מסגרות בPHP, 646 00:30:07,070 --> 00:30:12,010 אתה עושה user.getalltweets איפה PHP שלי הוא לא בעיה. 647 00:30:12,010 --> 00:30:13,460 כמו, זה קו גדול. 648 00:30:13,460 --> 00:30:15,320 זה אותו הדבר, אבל זה קו גדול. 649 00:30:15,320 --> 00:30:19,350 >> אז זה אחת הסיבות העיקריות ההעדפות שלי על Ruby. 650 00:30:19,350 --> 00:30:22,290 זה פשוט שאני עושה בדיוק אותו דבר במסגרות אחרות, 651 00:30:22,290 --> 00:30:26,021 זה פשוט לוקח לי פעמיים תורים ארוכים כשל קוד. 652 00:30:26,021 --> 00:30:26,520 בסדר? 653 00:30:26,520 --> 00:30:29,730 654 00:30:29,730 --> 00:30:32,540 >> יש עוד שאלות? 655 00:30:32,540 --> 00:30:35,200 >> זאק chauvin: משהו אני אזכיר quickly-- גייב 656 00:30:35,200 --> 00:30:36,682 דיבר קצת על אבני חן. 657 00:30:36,682 --> 00:30:39,890 וזה באמת great-- אני מתכוון, זה הוא סוג של משותף לכל המסגרות, 658 00:30:39,890 --> 00:30:45,170 שיש סוג של קונספט פנינה, שזה כמו בדוגמא הקטנה שלי, 659 00:30:45,170 --> 00:30:46,680 יש לי להתחבר. 660 00:30:46,680 --> 00:30:48,460 כמו, באפשרותך להיכנס, צא. 661 00:30:48,460 --> 00:30:51,740 כמו, זה בעצם סוג של תהליך מורכב. 662 00:30:51,740 --> 00:30:55,950 זה טופל קטן קצת בשבילך בPSET 7. 663 00:30:55,950 --> 00:31:01,160 אבל אני עדיין לא יודע באופן מלא כיצד ליישם כניסה, סימן-out. 664 00:31:01,160 --> 00:31:03,740 וזה בגלל ש יש Ruby on Rails טון 665 00:31:03,740 --> 00:31:06,080 של אבני חן שעושים דברים כאלה בשבילך. 666 00:31:06,080 --> 00:31:08,550 >> שוב, אמנה על תצורה. 667 00:31:08,550 --> 00:31:11,050 כולם הולכים לעשות כניסה זו, צעד לחתום החוצה. 668 00:31:11,050 --> 00:31:14,450 אז למה לא פשוט לעשות את חבילה, הנקרא לתכנן במקרה זה, בו הוא פנינה. 669 00:31:14,450 --> 00:31:15,810 אתה פשוט לכלול אותו. 670 00:31:15,810 --> 00:31:18,970 ואז יש קצת עזרה באינטרנט עם איך להשתמש בו. 671 00:31:18,970 --> 00:31:21,230 ואתה לא צריך לדאוג על דבר כזה. 672 00:31:21,230 --> 00:31:24,060 >> צירוף תמונות לאלה things-- פנינה של. 673 00:31:24,060 --> 00:31:27,220 כמו, בכל עת שאתה מנסה לעשות שום דבר חדש, יש פנינה של. 674 00:31:27,220 --> 00:31:29,420 ואתה סוג של רק חתיכת אבני חן אלה יחד 675 00:31:29,420 --> 00:31:33,160 ולבנות באמת מורכב יישום מהר מאוד. 676 00:31:33,160 --> 00:31:35,902 677 00:31:35,902 --> 00:31:37,437 מגניב. 678 00:31:37,437 --> 00:31:38,270 יש עוד שאלות? 679 00:31:38,270 --> 00:31:39,623 >> סטפן טורבן: הו-הו. 680 00:31:39,623 --> 00:31:40,976 אני לא חושב ש[ לא ברור]. 681 00:31:40,976 --> 00:31:41,966 >> גבריאל GUIMARAES: OK. 682 00:31:41,966 --> 00:31:42,840 תודה רבה, חבר 'ה. 683 00:31:42,840 --> 00:31:43,839 >> סטפן טורבן: Buh-ביי. 684 00:31:43,839 --> 00:31:44,850 זאק chauvin: Buh-ביי. 685 00:31:44,850 --> 00:31:45,849 >> סטפן טורבן: הו-הו. 686 00:31:45,849 --> 00:31:48,150 [מחיאות כפות] 687 00:31:48,150 --> 00:31:49,700 >> Yay. 688 00:31:49,700 --> 00:31:50,955