[Грає музика] СТІВЕН TURBAN: Так що я Стівен тюрбан. Над на стороні тут, можливо, ми може отримати деякі люди занурення в. У нас є Гавриїл і Зака. Таким чином, для короткого дорожньої карти про те, що це буде виглядати, Я збираюся робити деякі надзвичайно високого рівня погляд на те, що MVC є. Гейб? GABRIEL Гімарайнш: Я збираюся говорити про Рубі і трохи як Rails працює і як це може допомогти вам створювати веб-додатки. ZACK CHAUVIN: І я збираюся показати вам конкретний приклад того, як використовувати Rails для створення супер дивним додаток. СТІВЕН TURBAN: Awesome. Солодкий. Добре. Отже, давайте поговоримо про MVC. Отже, давайте перейдемо до наступного слайду, який Я зроблю, клікнувши на цю кнопку. І давайте йти на next-- розвитку, Мені подобається думати про збираюся CVS, бо CVS є зберігання та також має V в центрі. І так давайте уявимо, в магазин. І давайте зробимо цей магазин продати тільки одну річ. Отже, ми збираємося, щоб це зберігати тільки продати ці червоні чашки. І уявіть, що ви входите, і ви йдете в передній частині магазину, і людини. І його звуть Вінс. І Вінс хвилі привіт на вас, говорить привіт. І ви помітите одну річ про Вінса. Тому, коли ми думаємо про Вінс, ми треба думати про двох ключових прикметників. Вінс красиво, але він дурний. ОК. Таким чином, ви знаєте, не зі своєї вини, На жаль, він красиво. Він наш погляд. Таким чином, наш перший акторський склад є. Майте це на увазі. Тепер, запитаєте ви Вінса, ви йдете, гей Вінс. Я клієнт. Він каже, привіт. Я дійсно хочу один з ваших червоних чашок. І що Вінс сказати? Хто-небудь є які-небудь Ідея, що говорить Вінс? Я збираюся холодної виклику. Що ви думаєте Вінс говорить? АУДИТОРІЯ: Він говорить, що я можу показати вам, де він знаходиться, але я не можу дати вам один. СТІВЕН TURBAN: Він говорить, що я можу показати вам, де він знаходиться, але я не можу дати вам один. Навіть гірше. Хто-небудь ще є інший знаю, що Вінс може сказати? АУДИТОРІЯ: Він повинен піти перевірити чи є у них червоні чашки. СТІВЕН TURBAN: Вінс НЕ навіть знаю, що він повинен перевірити. Що-небудь ще? Так ви сказали, повинен перевірити, якщо він має червоні чашки. Продовжуй. АУДИТОРІЯ: Що Червона чашка? СТІВЕН TURBAN: Що Червона чашка? Що Червона чашка? Вінс в замішанні. Так Вінс збирається поговорити з Наш наступний акторський склад, Карл. І коли ми думаємо про Карла, ми Повинен думати про двох великих adjectives-- він контролюючим, але він не в змозі. Так Вінс goes-- він йде, що Червона чашка? Я не знаю, що червоний чашки. Він обертається і питає Карл. Він каже, Карл, хтось попросив червоною чашки. Чи можете ви це зробити? І що ж Карл сказати? Давайте зрозуміти це. Хто-небудь є будь-яка Ідея, що говорить Карл? І я просто повторити його назад до вас. Я бачив рух руки. АУДИТОРІЯ: Він говорить хтось ще, щоб отримати червоні чашки. СТІВЕН TURBAN: Він говорить хтось ще, щоб отримати червону чашку. Саме так. І у нас є ідея хто ця людина може бути? Це натяк. Це буде почати з М. Mob? АУДИТОРІЯ: Модель. СТІВЕН TURBAN: модель, так. Його ім'я не моделі, на жаль, тому що це дурне назву. У нас є Mitt. І коли ми думаємо про Mitt-- Ні, це не картина Зака. Ми повинні думати про двох Основні прикметники з рукавицею. Він здатний, але він покірним. Так Мітт знає, що він повинен зробити, але він дійсно нічого не може зробити. Або він дійсно не може вирішити, сам по собі. Отже, ми маємо Карл. Карл кричить на виставці MITT. І він каже, гей Мітт, ми повинні червоні чашки. І Мітт йде до своєї червоної депозитарію чашки. Він вистачає чашку, і він дає його назад. Хто-небудь є будь-яка ідея, що відбувається потім? Дає чашку. Поки Мітт відправився в свій червоний сховище чашка, взяв його, перевірити його, сказав: Я взяв одну червону чашку. І він дає його з Карлом. У вас є ідея? Що ви думаєте Карл робить? АУДИТОРІЯ: Карл дає його Вінсом. СТІВЕН TURBAN: Карл дає його Вінсом. Вінс. АУДИТОРІЯ: І Вінс показує, що він [нерозбірливо]. СТІВЕН TURBAN: Абсолютно вірно. Так ось саме він. Так Вінс бере чашку, навіть не знаю, що це таке, але він показує його користувачеві. Так давайте спробуємо відтворити це дійсно коротко. І ми збираємося необхідність три тихі добровольців, як ви, хлопці, не збирається щоб бути в змозі говорити. Так я міг захопити три? ОК. І ким би ви хотіли бути? Аудиторія: Я буду Вінс. СТІВЕН TURBAN: Вінс, OK. Красиво, але нерозумно. Відмінно. Хто-небудь ще? Ми шукаємо здатний, але покірним. Хто-небудь ще хоче бути в змозі? Аудиторія: Я міг би бути Carl. СТІВЕН TURBAN: Sweet. У нас є Карл. АУДИТОРІЯ: Мітт. СТІВЕН TURBAN: Мітт, OK. І ми збираємося потрібно a-- я буду клієнт. Так що приходьте на до, давай до. І все в силу? Так що я збираюся запитати Вінса стояти в передній, так посміхаючись, просто посміхається так яскраво, як це можливо. І ми збираємося попросити Карла, Добре, чому б тобі не, начебто, стояти прямо за нею? І Мітт, чому б тобі не просто йдуть в спину, і тоді я дам вам групу чашок, щоб бовтатися с. Так що я клієнт. Я прийду. І я роблю [нерозбірливо] Я кажуть, привіт, я хотів би чашку. Ідеально підходить. Так Вінс не має ні найменшого уявлення. Отже, що ж Вінс робити далі? Vince-- ОК, так що я збираюся бути оповідає зараз. Вінс кричить на Карла, чашка! Що Карл робити? Карл кричить на виставці MITT. Мітт вистачає чашку. Мітт дає його Карлу. Карл повертається його Винсу. І Вінс показує його користувачеві. І це високий, високий, високий, так високо погляд на MVC. Ми ділимо його на що мають вигляд, що користувач бачить, контролер, хто хто робить все, що в фоновому режимі але насправді нічого не можу оновити або що-небудь якесь значення не може зробити крім виклику вигляд і модель. А то у нас Mitt, модель, хто оновлює всі дані у нас є. Так що спасибі вам велике за наш прекрасний, управління, і здатні волонтери. І я думаю, що це було. [Оплески] Я думаю, Гейб буде говорити зараз на сподіватися, менш високому рівні. GABRIEL Гімарайнш: Добре, хлопці. Тепер давайте поговоримо трохи більше про Код і про Рубі на себе Rails, і про те, як він ставиться для всіх у цій історії MVC. В основному, Ruby на Rails є основою. Докладніше про це в секунду. Але тільки, щоб дати вам про те, хто використовує його, як всі ці великі companies-- так GitHub, Groupon, Twitter-- вони всі з використанням Рубін на Рейки в якості основного рамках для реалізації їх на сайті. Так що я впевнений, що багато людей використовували ці сайти тут. І все це Ruby On Rails для реалізації модель, вид і контролер на всіх цих веб-сайтів та багато іншого. ОК? Так як я вже сказав, Рубін на Rails є основою. І ви можете би думаю рамок в сенсі, як будувати будинок. Так що якщо ви збираєтеся будувати house--, і ви можете завжди почати з нуля, чи не так? Ви можете спробувати придумати з образом побачив дерево, і довести деревину до місця, і щоб отримати камінь у правій форми, а потім все це. Але що відбувається, щоб прийняти ймовірно, багато років поки ви не отримаєте всі матеріали, і ви отримаєте всі разом, і ви насправді почати побудувати свій будинок. Ось і виходить, якщо ви починаєте з рамки з чимось, що це вже ніби на місці для будь-якого типу будинку що ви хочете build-- щось це дуже загальний, але що ви можете то моделі, до свій розсуд goals--, то ви можете використовувати Ця сила рамках будувати їм щось набагато, набагато швидше. ОК. Так що це та ж сама ідея в рамки для веб-додатків або для різних типів Додаток, з цього питання. Ви насправді почати з половиною додатки там вже на місці для вас. І це, я маю на увазі ви отримаєте багато файли, які вже мають функції, як бібліотеки, як функціональність, і команди, які можна запустити в порядку щоб зробити ваше життя набагато простіше і легше. ОК. Таким чином, в цьому випадку, ми збираємося говорити про Ruby On Rails. Є багато різних каркасів там. Там же Django для Python. Там це в Zend Framework або Laravel для PHP. Є багато різних. Рубін на Rails є дуже приємно новий. Багато людей використовують, що в стартапи і цей вид навколишнього середовища. І деякі з них дуже великий компанії, які я показав тут раніше Також за допомогою Ruby On Rails. Так що просто дати вам відчуття того, що Рубі як, так як ви, хлопці, більше звикли щоб, як, C і трохи PHP зараз, так Рубін буде еквівалент вашої PHP в цьому сенсі. Це не Рубі. Це C. OK? Але це, як Функція DJBHash, що я знаю, що багато людей використовували для Pset друкарськими помилками. І в Ruby, досить так само, як в PHP, ви могли б реалізувати це з лише кілька рядків коду. Замість того, щоб турбуватися про хеш-функції, турбуючись про відрах, і все, що ви можете просто сказати, словник = Hash.net. І тоді ви використовуєте ніби як Та ж ідея, що PHP не було. І так це істина. І потім, якщо ви хочете, щоб перевірити, так що перевірити функцію якби словник "Foo" дорівнює дорівнює правда, повернення правда. І це все, добре? Таким чином, ви помітите, деякі відмінності. Там немає крапки з комою тут, як це було в С Але загальна ідея дуже схожа. ОК? Крім того, в Ruby, є дорогоцінні камені, які є свого роду бібліотек Рубі. І Rails обробляє їх в дуже хороший спосіб для вас. Так що якщо ви хочете поставити в якійсь бібліотеки, які робить електронну пошту, або що робить текстовими повідомленнями, або що робить інтеграцію з Facebook, або якої-небудь речі як, що для вашої програми, це дуже, дуже легко. Швидше за все ви можете знайти щось так в Інтернеті. І вони просто роблять щось на зразок сайті, який дорогоцінний камінь ви хочете використовувати у файлі дорогоцінних каменів. А потім Rails встановлює все. Ви не повинні турбуватися про будь-які того, що, таким чином, це дійсно здорово. Крім того, є багато, багато онлайн допомогу. Таким чином, ви можете знайти багато речей. Якщо у вас є помилки, ви можете просто Google його, і це буде дуже легко отримати допомогу. І це багато fun-- exactly--, тому що ви не доведеться турбуватися про низький рівень деталі, реалізація хеш-таблиць і того, щоб придумати все HTTP-заголовки, і багато речей, і навіть деякі вищі речі рівня. Ви не повинні турбуватися про те, що в Rails. Це робить його дуже, дуже добре для вас. І ми збираємося показати, що більш конкретно дуже скоро. ОК. Так трохи про Рубі знову. Так що це просто, як C, як я вже сказав. Замість того, щоб Printf, ми говоримо, "Ставить", який є "покласти рядок". Це ставить рядок на консоль. І в цьому випадку, ми просто друку "Hello World". Нам не потрібно дужки, але це значною мірою схожі. І потім, якщо ви хочете зробити щось тут, як надрукувати купу "штанах" і купа "BIGS" в той час як цикл, це ніби як в С, чи не так? Ви не маєте Params, але це в значній мірі те ж саме. Відступи тут підраховує, тому х дорівнює 1. І потім, коли х менше, ніж 50-- це Якщо це інше. Це досить багато, як те, що ви бачили. І тоді х + = 1 тільки збільшуючи, ніби як робить ++, які ви можете зробити у С. Але це досить багато, що ви бачили в С. Вона не повинна бути занадто складною. Але це більш потужним. Таким чином, існує кілька команд тут що, безумовно, трохи новіше. Так, наприклад, "пут". Ви можете використовувати цю хештегом позначення тут просто роздрукувати something-- дуже схоже на те, що ви могли б зробити, якщо % D або% C або декілька, як, що. І ви можете поставити Якщо відразу після затвердження. Так що я хочу робити тільки this-- Якщо х більше, ніж 3. Так чому б я повинен зробити всю Якщо блок? Я не знаю. Я можу просто роздрукувати це тільки якщо х дорівнює більше, ніж 3. Так що це спосіб одній лінії робити це в Ruby. Список в Рубіні щось дуже універсальним. Таким чином, ви дійсно не потрібно мати тільки один тип. Ви можете мати рядок, а потім деякі числа, і все. І якщо ви хочете, щоб додати то в список, ви можете просто використовувати це Позначення прямо тут. І якщо ви хочете перебрати. Досить багато 4each в PHP, тут, ви є список, і ви робите "List.each зробити." І це "Елем", це як ім'я кожного елемента що я буду мати в моєму списку. І тоді я просто не можу "ставить елем." І "ставить" досить багато ручки покласти його для вас, печатки. Це не має значення, якщо це рядок або INT. Це буде працювати, що для вас. Вірно? Круто. І так само, як PHP, Ruby і HTML також інтегрувати дуже, дуже красиво. І ось, є якась HTML з Рубіном у ньому. Тому у нас є тег тіла, як в HTML. І якщо ми хочемо, щоб перевірити що користувач, наприклад, увійшли в систему, ми можемо просто сказати: початок Рубі, якщо user.logged_in?, Кінець Ruby. Надрукувати цю всю річ, яка є деякі Рубі в ньому, що це просто ніби як, що синтаксис для PHP, що друкує змінну. Давайте друкувати user.name. Так що ласкаво просимо, Стівен, всередині HTML-дів. І врешті-решт, у нас є "кінець" і Рубі код, який означає, що це мій Якщо блок. ОК? Так що це просто, як безшовні інтеграція між Рубіном і HTML. Є також багато ресурсів. Але перш ніж ми перейдемо, хто-небудь є які-небудь питання про Ruby, що-небудь? ОК. Є багато ресурсів в Інтернеті в tryruby.org, код академії, ruby-lang.org, де ви можете спробувати його на вашому браузері перед вами насправді кажуть, о, добре, я збираюся використовувати Рубі для мого остаточного проекту. І так виразно дають тим, спробувати. Всі ці слайди є буде доступна онлайн, так що ви можете просто завантажити їх. І так? АУДИТОРІЯ: [нерозбірливо] що ви тільки що показали, був HTML і код, впроваджений в їх в це поняття Model View Контролер? GABRIEL Гімарайнш: Так. Ми зробимо це в секунду коли ми показуємо наш приклад, добре? Спасибі за запитання. Так питання було в основному, якщо ми може показати цю інтеграцію Рубі в HTML в рамках моделі Перегляд бази контролера. Таким чином, ідея моделі База View Controller це в основному філософія, так само, як Стівен показав тут. І це не те, що у вас є, щоб зробити, але це те, що робить Ваше життя набагато простіше. І Рубін на Rails побудований навколо цієї філософії коду. Отже, ми збираємося, щоб показати Приклад дуже скоро. Так Rails є любов. Багато людей використовують його, як я вже сказав. І це дійсно весело. Ви, хлопці, повинні безумовно, дати йому спробувати. MVC робить все простіше. Таким чином, Model View Controller, розділяють речі і покласти одна людина, по суті, або одна частина вашого застосування зробити кожного з різних робочих місць що ваш додаток має справу. І менше часу провів з проблем низького рівня. І дуже популярні зараз. У нас є Rails 4.0, що нова версія. І це відбувається з великою кількістю цікавого матеріалу. Інше питання. АУДИТОРІЯ: Ще одне питання. Рубін на Rails проти Рубін на Rails Grails. GABRIEL Гімарайнш: OK. Питання було, Ruby на Rails проти Ruby-- АУДИТОРІЯ: Grails. Рубі? GABRIEL Гімарайнш: Так. Так Рубін мову. АУДИТОРІЯ: Немає Я прошу вас, щоб порівняти мову і рамки, Ruby на Rails, з іншої популярної мови framework-- Grails-- з Рубіном по рейках. GABRIEL Гімарайнш: OK. Вибачте. Питання, порівняйте Рубі і Рубін на Rails в інших рамках і another-- АУДИТОРІЯ: Ruby. Це нормально. Якщо ви не знаєте про це, це нормально. GABRIEL Гімарайнш: Як, Наскільки я розумію, це that-- АУДИТОРІЯ: Там ще один Основи політики закликають Grails. GABRIEL Гімарайнш: О, Grails. Я ніколи не чув про нього. Вибачте. Я ніколи не чув про Groovy на Rails. Вибачте. АУДИТОРІЯ: Це набагато краще, інтегрований з Java. GABRIEL Гімарайнш: Я бачу. Аудиторія: Я просто цікаво про деяких людей, яких я знаю like-- НЕ GABRIEL Гімарайнш: Ні, я ніколи не чули про те, що один, на жаль. Grails. АУДИТОРІЯ: І деякі люди Очевидно, як Ruby On Rails. GABRIEL Гімарайнш: Я б Рубін на Rails багато. Я використав деякі Django з Python, як я вже сказав. Я використав деякі Laravel. Але я не використовував Groovy на Rails. Вибачте. І це дуже популярно Тепер з Rails 4.0. Мовляв, деякі з речей, які Rails робить для вас, наприклад, ви є багато CSS файлів і багато файлів JavaScript. І ви можете розглядати їх як окремо і все. Але тоді це automatically--, коли Ви відправляєте код до виробництва, він автоматично компілює їх все в один файл який зменшена без будь-яких простору, так що вона займає менше місця у вашому додатку, що ви дійсно можете масштабувати речі багато. Ось чому такі великі компанії як Twitter і GitHub використанні Rails, тому що вона робить все, що для вас, що це дійсно круто. Одна річ, яка дуже, дуже, дуже складною для людей, включаючи мене, хто намагається працювати з каркасом на початку, є що, коли ви починаєте додаток, Ви будете бачити купу файлів. Мовляв, при створенні Rails Новий мою заяву, Ви будете бачити все це folders-- додаток, BIN, конфігурації, дБ, Lib, увійти, громадськість. Мовляв, багато-багато всякої всячини. І перший раз, коли я побачив, що я був би, Добре, я поняття не маю, що відбувається. Я просто хочу, щоб створити Веб-сайт з "Привіт, світ", і це дає мені, як, 100000000000 різних сторінках. Я не знаю, що відбувається. Тому, будь ласка, не будьте занадто переймаючись тим, що. Ідея полягає в тому, що він насправді має половину будинку для вас уже. Вона має цілу рамки для вас уже. Ось чому існує так багато файлів. Але приємно те, що це відділяє всі з них дуже добре. Швидше за все вам не доведеться турбуватися про більшість з цих папок. Найбільш важливим з них, я б сказав, папка додатки, де ваш додаток насправді живе. Так конфігурації, ви збираєтеся повинні конфігурувати деякі речі, як бази даних тощо який вид бази даних, яку ви використовуєте. Але крім того, що, як і більшість ваша робота буде зроблено у додатку. Таким чином, у додатку, у вас є активи, контролери, помічники, поштові, моделі, види. Так от, ви починаєте бачити, що контролери, моделі і види приходять в гру. Конверти є просто якщо Ви Щоб відправити електронну пошту. Помічники, якщо ви хочете, щоб створити кілька функцій що ви використовуєте багато в поданні. Таким чином, ви помістіть їх в помічників. І активів в основному всі Ваші зображення, всі ваші CSS, всі ваші JavaScript, і як ці види речей, які будуть надіслані клієнту. І все це в активах, що я сказав раніше, отримує стислий. Це компіляції. І ви дійсно не потрібно турбуватися про що, коли він йде в робочому коді. Круто. Тепер Зак прийде в, і він збираюся зробити приклад Twitter50. АУДИТОРІЯ: Woo-Hoo! ZACK CHAUVIN: Awesome. Так що я мав можливість працювати з Рубіном на Rails цього літа. Це дивовижна структура. Я дуже небайдужий до неї. І я просто покажу вам трохи приклад того, що може виглядати. Перейти до Chrome. Так що це приклад дуже простий Рубін на Rails application-- щось як це щось що Рубі дійсно виділяється that-- тільки там, де ваш моделі дуже добре визначені. У цьому прикладі, ви побачите, дві різні моделі, які в тому, що у нас є користувачів і у нас є твітів. Так що це Twitter50, Власний Twitter Гарварду. Як ви можете бачити, я увійшов, какzack. І я в змозі зробити нові твіти. Так що я think-- "Це" - вибачте? АУДИТОРІЯ: [нерозбірливо]. ZACK CHAUVIN: О, добре. Потрібно зупинити сервер. Відмінно. Так от ми тут. Як ви можете бачити, у нас є Twitter додаток прямо тут. І це дуже легко запустити сервер. Ми просто зробимо "рейки сервер." Відмінно. ОК. Спасибі за це. Так що тепер ми біжимо. І ми будемо говорити: "Це є дивним семінар ". І давайте подивимося, що станеться. Таким чином, ми чірікать про це. Там, на дні, ви можете побачити тепер є більш ніж у три цвірінькання. Тому у нас є трохи нумерації сторінок відбувається. І у нас є, що в твіттері. І я також можете шукати через моє tweets-- пошук для цього і двох ті, які мають слово "Це" в них з'являються. Ми також можемо видалити твіти від натиснувши на кнопку Видалити мало. І очевидно, що я можу тільки видалити піст, який належав мені. Вже зараз майже у Функціональність Twitter. Мовляв, коли ви думаєте про це, Twitter насправді не робити все, що багато. Це є користувачі, у нього є твітів. Там якась більш складна функціональність. Але коли ви дійсно отримаєте вниз до нього, це досить просто Рубін на Rails додаток. І щось на зразок цього, з Добре розуміння Ruby On Rails, ви, ймовірно, зробити протягом години або двох. І це дійсно відбувається Повернутися до мантре Рубі, що Конвенція по конфігурації. Отже, повернемося в той же день, люди, в будь-який час вони хотіли, щоб зробити цей веб-сайт, доведеться починати з нуля. ОК, я хочу, щоб зробити веб-сайт. Давайте зробимо цей файл і Цей файл і цей файл. З Ruby On Rails, немає ні в цьому. Ви кажете, що я хочу, новий додаток. І так само, як Гейб показав нам, що створює всю структуру файлу для нас. І ми просто змінити маленькі деталі, які ми повинні. Ми просто налаштувати, які Унікальність нашого застосування. Круто. Так повертаючись до нашої презентації preview-- цікаво. Де я можу уявити? АУДИТОРІЯ: Повний екран. Вгорі праворуч. ZACK CHAUVIN: Відмінно. Круто. ОК. Тому в першу чергу, модель. Стівен зробив дивовижний Робота з викладенням MVC. І тепер ми збираємося пов'язати що ще в Ruby On Rails. Так моделі ви можете вид Думай як бази даних. Ви востаннє бачив це в CS50 Фінанси, де модель магазини інформація про скільки акцій у вас є, або всі операції, які ви зробили. Це є прикладом лінія, як би ви йти про те, нову модель в Rails. Тому я хочу користувача. Це матиме електронної пошти, який є рядком, і пароль, які Також рядок. Так що це, як those-- Я хочу, щоб кожен ряд в моїй таблиці користувачів, щоб виглядати. Дійсно дивним частина про Rails є те, що його робить непотрібним писати SQL досить багато. Як багато з вас, хлопці люблять писати SQL в PSET 7? Саме так. SQL не дуже зручно. І Rails реферати все, що від з цих дійсно легко команд. Так, наприклад, якщо у нас є Користувач, користувач має багато твітів. І кожен з тих, Твіти належить користувачеві. Так що, якщо ви подивитеся тут, це наша модель для нашої твіт. І все, що ми повинні сказати, Цей сингл line-- Я твіт і я належу до користувача. І з цієї єдиної рядки, і трохи конфігурації бази даних, Rails встановлює цей зв'язок. У будь-який час, я можу просто сказати zack.tweets, як, дай мені все Zack твітів. Ні SQL. Супер легкий. Знову ж таки, це Угода по Конфігурація вступу в гру. Ви можете побачити трохи прикладу Рубін тут. Як Дав сказав, писати Рубін ніби як писати по-англійськи. Це дуже мова програмування високого рівня, і це робить його дуже легко для нас, щоб сказати щось на кшталт, я хочу переконайтеся, що твіт є тіло. Його присутність правда. І я хочу, щоб переконатися, що це чірікать, як нормальний Twitter, має максимальну довжину 140. Це супер-інтуїтивний, дійсно великий язик. Потім у нас є думка. Так що це включає в себе HTML і CSS. А ось приклад виду. Так Ruby On Rails вид легко інтегрує рубін і HTML для того, щоб генерувати що ми хочемо на цій сторінці. Так що це приклад нашого макета. Таким чином, ви можете побачити деякі ознаки, які ви Хлопці звикли, як HTML, тіло, все, що хороший матеріал. І прямо тут, однак, ми включити деякі Рубі, сказавши, якщо є повідомлення для відображення, потім відобразити повідомлення в дів. Так що я не отримаєте занадто багато в цьому. Але це, як правило, Сторінка, яка отримує винесено on-- і незалежно від того, на якій сторінці ви знаходитеся на, на цей раз отримує винесено. Так що це, що входить завжди. Круто. Інший приклад, це view-- той, де вона вибрала все твіти. І деякі з цих речей може виглядати досить добре знайомі. Так, наприклад, тут, ми цикл через кожен з твітів, і ми їх друку. Так ось, де ми роздруківки тіло. І якщо user-- твіт тут це реальний приклад не SQL бере участь. Я просто запитую, це Користувач Tweet в поточний користувач? Потім покажіть посилання, щоб видалити його. Це супер просто. Контролер. Таким чином, це, знову ж, інтерфейс між моделлю і поданням. Це той, який робить важку роботу з interacting-- бути посередником. Він завантажує інформацію дивитися, що ми побачимо в секунду. І для того, щоб взаємодіяти з моделлю, її закликає моделі методи, які, що ви, хлопці, знайомі як функції. Так, наприклад, це Контролер нашої Tweet років. Це може виглядати трохи складною прямо зараз. Але це насправді супер інтуїтивно зрозумілий як тільки ви починаєте дайвінг в. Так, наприклад, в нашому індексі, це де ми хочемо, щоб показати всі твіти. І так ця лінія в основному просто просить всіх твітів. А потім ми инициализируем як нові tweet-- так як якщо вони хочуть створити новий твіт на цій сторінці. І це питає, що поточний користувач. І це дуже схоже на зробити, що ви бачили в PSET 7, де це просто якась розповідати view-- це свого роду, як, передаючи змінні, які ви знадобиться в цілях подання. І є ціла купа різних методів що контролер твіт може впоратися. Але насправді, Rails робить велику роботу по виду поділу їх у різні дії, які контролер може зробити. Чи є питання про кожній із частин MVC рейок? Вид просто бриз. Так що ви, хлопці, можете перевірити це на свій власний. Високий. Ми будемо тримати збирається. Тому установка Rails. Установка Rails може бути, як, один з найбільш складних частин цілих Rails Процес, на жаль. Але очевидно, що всі нам навколо, щоб допомогти. І як тільки це там, багато великих ресурсів, як уже згадувалося Гейб, для початку. Ось посилання, які Ви повинні будете в порядку скачати Rails, щоб отримати його встановлений на вашому комп'ютері. Очевидно, що це доступно як для Windows, і Mac і для CS50 пристрою. Питання ні про що ми вже говорили? Аудиторія: Я б цікавить, actually-- так що я знаю, що завантаження Програмне забезпечення великою перешкодою. Якщо є достатній інтерес у Завантажуючи міні сесію або щось. ZACK CHAUVIN: Мм-ом. Так. Це може бути дуже корисно. Якщо хтось дійсно ентузіазму про використовувати це для свого проекту або в майбутньому, то ми б, безумовно, радий поговорити з вами про це. Мм-ом. АУДИТОРІЯ: пов'язане з цим питання до чого я запитав раніше. Для тих з вас, хто зробив інші механізми, які досі намагається зробити те ж саме річ, зробити це простіше створити веб-сайт або Функціональність, я думаю, якийсь сенс чому ми б на Rails проти Zend або деяких інших структур і мов. ZACK CHAUVIN: Я просто Say My $ 0,02 про це. Я люблю Ruby On Rails. Я мав можливість працювати як в PHP і Ruby On Rails. Я віддаю перевагу Рубін на Рейки з Ruby. Безумовно, це велика частина цього. Мовляв, коли ви виборі бази, Ви також можете вибрати потрібну мову. Рубі супер accessible-- Я думаю, набагато краще, ніж мова PHP. Але це вид особистого уподобання. Крім того, ще одне міркування є спільнота за рамки що ви працюєте с. Зараз Рубін на Rails є дуже жарко. Там тонни підтримки за ним. Ви щось на стеку в темах Переповнення про проблему, яку ви маючи на Ruby On Rails, і це відповів. Знову ж таки, це з відкритим вихідним кодом, що означає, що він постійно змінюється. Там тонни людей що насправді присвячений для того, щоб зробити це дійсно дивним рамки. Так ось чому я б вибрати Ruby On Rails. GABRIEL Гімарайнш: Так. Я б сказав, що ідея За багатьма рамках ви збирається з'ясувати, дуже, дуже схожі, чи не так? Таким чином, Model View Controller, Справа в тому, що наш контролер років буде виглядати якось як this-- кожної з функцій це як на одній із сторінок, і перенаправляє вас, і ініціалізує змінні. Це буде те ж саме для кожен рамки, які ви бачите там. І там буде модель. І ви можете робити такі речі, як, "належить". Таким чином, замість того, щоб робити версію SQL, Ви просто, як, зробити, user.tweets, і ви отримаєте все. Кожен має це. За винятком Ruby, ви user.tweets, а потім деякі основи в PHP, ви user.getalltweets Де мої PHP не проблема. Мовляв, це велика лінія. Це те ж саме, але це велика лінія. Так що це одна з головних причин, з моїх уподобань з рубіном. Це просто я точно Те ж саме і в інших рамках, він просто бере мене в два рази до тих пір, рядків коду. ОК? Будь-які інші питання? ZACK CHAUVIN: Щось Я назву quickly-- Гейб трохи поговорили про дорогоцінні камені. І це дійсно great-- Я маю на увазі, це це свого роду загальним для всіх структур, щось на зразок концепції дорогоцінного каміння, яка, як в моєму маленькому наприклад, Я увійти в систему. Наприклад, ви можете увійти в систему вийти. Мовляв, насправді вид складного процесу. Було опрацьовано мало небагато для вас в PSET 7. Але я все ще не повною мірою знати, як для реалізації Вхід в, реєстрація при вибутті. І це тому, що Рубін на Rails має тонн дорогоцінних каменів, які роблять такі речі, як це для вас. Знову ж, угода по конфігурації. Все це буде робити цей знак в, увійдіть від'їзду крок. Так чому б просто не зробити пакет, який називається Розробити в цьому випадку, який є перлиною. Ви просто його включити. І, нарешті, якась допомога онлайн з тим, як його використовувати. І вам не доведеться турбуватися ні про що подібне. Прикріплення фотографії на ці things-- дорогоцінний камінь для цього. Мовляв, в будь-який час ви намагаєтеся зробити щось нове, є дорогоцінний камінь для цього. І ви начебто просто зібрати воєдино ці дорогоцінні камені і побудувати дійсно складний Додаток дуже швидко. Круто. Будь-які інші питання? СТІВЕН TURBAN: Ву-ху. Я не думаю, що [нерозбірливо]. GABRIEL Гімарайнш: OK. Велике спасибі, хлопці. СТІВЕН TURBAN: Буг до побачення. ZACK CHAUVIN: Буг до побачення. СТІВЕН TURBAN: Ву-ху. [Оплески] Ура.