>> [Jouer de la musique]
>> STEPHEN TURBAN: Je suis donc Stephen Turban.
Plus sur le côté ici, peut-être nous peut obtenir certaines personnes à plonger.
Nous avons Gabriel et Zack.
Donc, pour une brève feuille de route sur ce cela va ressembler,
Je vais être de faire quelques très regard de haut niveau à ce que MVC est.
Gabe?
>> GABRIEL GUIMARAES: Je vais parler de Ruby et un peu
Rails comment fonctionne et comment il peut vous aider à construire des applications web.
>> ZACK CHAUVIN: Et je vais vous montrer un exemple concret de la façon dont
à utiliser Rails de construire une application super-génial.
STEPHEN TURBAN: Awesome.
Sweet.
Bien.
Donc, nous allons parler de MVC.
Allons donc à la diapositive suivante, qui Je vais faire en appuyant sur ce bouton.
Passons maintenant à l'élaboration next--, Je aime à penser à aller à CVS,
parce CVS est un magasin et a également un V dans le centre.
>> Et imaginons dans un magasin.
Et nous allons faire ce magasin vendre une seule chose.
Nous allons donc d'avoir cette stocker seulement vendre ces tasses rouges.
Et imaginez que vous entrez, et vous allez à l'avant du magasin, et personne.
Et son nom est Vince.
>> Et Vince vagues bonjour à vous, dit salut.
Et vous remarquerez une chose à propos de Vince.
Donc, chaque fois que nous pensons à Vince, nous avoir à penser environ deux adjectifs clés.
Vince est beau, mais il est stupide.
D'ACCORD.
Alors vous savez, sans faute de sa part, Malheureusement, il est beau.
Il est notre avis.
Donc, notre premier acteur est là.
Gardez cela à l'esprit.
>> Maintenant, demandez-vous Vince, vous allez, hey Vince.
Je suis un client.
Il dit salut.
Je veux vraiment une de vos tasses rouges.
Et que dit Vince?
Quelqu'un at-il idée de ce que dit Vince?
Je vais appel à froid.
Que pensez-vous Vince dit?
>> PUBLIC: Il dit, je peux vous montrer où il est, mais je ne peux pas vous donner un.
>> STEPHEN TURBAN: Il dit, je peux vous montrer où il est, mais je ne peux pas vous donner un.
Pire encore.
Quelqu'un d'autre a une autre idée de ce que pourrait dire Vince?
>> PUBLIC: Il doit aller chèque se ils ont des tasses rouges.
STEPHEN TURBAN: Vince ne est pas même savoir qu'il doit vérifier.
Rien d'autre?
Donc, vous avez dit, doit vérifier se il a tasses rouges.
Aller de l'avant.
Public: Qu'est-ce qu'une tasse rouge?
STEPHEN TURBAN: Qu'est-ce qu'une tasse rouge?
Ce qui est une tasse rouge?
Vince est confus.
Donc Vince va parler notre prochain membre de la distribution, Carl.
Et quand on pense à Carl, nous dois penser à deux gros adjectives--
il est majoritaire, mais il est incapable.
>> Alors qu'il Vince goes-- va, ce est une tasse rouge?
Je ne sais pas ce que une tasse rouge est.
Il se retourne, et il demande à Carl.
Il dit, Carl, quelqu'un demandé une tasse rouge.
Pouvez-vous faire cela?
Et que dit Carl?
Disons comprendre.
Quelqu'un at-il idée de ce que dit Carl?
Et je vais répéter de nouveau à vous.
Je ai vu un mouvement de la main.
>> PUBLIC: Il dit quelqu'un d'autre pour obtenir les tasses rouges.
>> STEPHEN TURBAN: Il raconte quelqu'un d'autre pour obtenir la tasse rouge.
Exactement.
Et avons-nous une idée qui est cette personne pourrait être?
Ce est un indice.
Il va commencer par un M. Mob?
>> AUDIENCE: Modèle.
>> STEPHEN TURBAN: Le modèle, oui.
Son nom ne est pas le modèle, malheureusement, parce que ce est un nom stupide.
Nous avons Mitt.
Et quand nous pensons à Mitt-- non, ce ne est pas une image de Zack.
Nous devons penser à deux adjectifs clés avec Mitt.
Il est capable, mais il est soumis.
Donc, Mitt sait ce qu'il a à faire, mais il ne peut vraiment pas faire ne importe quoi.
Ou il peut vraiment pas se prononcer sur son propre.
>> Nous avons donc Carl.
Carl crie à Mitt.
Et il dit, hey Mitt, nous avons besoin de tasses rouges.
Et Mitt va à son rouge tasse dépositaire.
Il attrape une tasse, et il lui rend.
Quelqu'un at-il idée de ce qui se passe alors?
Donne la tasse.
Jusqu'ici Mitt est allé à son rouge Coupe du référentiel, prise it out,
vérifier le tout, dit, Je ai pris une tasse rouge.
Et il le donne Carl.
Avez-vous une idée?
Que pensez-vous Carl fait?
>> AUDIENCE: Carl elle donne à Vince.
>> STEPHEN TURBAN: Carl elle donne à Vince.
Vince.
>> AUDIENCE: Et Vince il montre à [inaudible].
STEPHEN TURBAN: Exactement.
Donc, ce est exactement ça.
Donc Vince prend la coupe, ne sait même pas ce que ce est,
mais il montre à l'utilisateur.
Essayons donc de recréer ce vraiment brièvement.
Et nous allons devoir trois volontaires silencieux,
que vous les gars ne vont pas pour être en mesure de parler.
Ainsi pourrais-je saisir trois?
D'ACCORD.
Et qui aimeriez-vous être?
>> PUBLIC: Je serai Vince.
>> STEPHEN TURBAN: Vince, OK.
Belle, mais stupide.
Grande.
Quelqu'un d'autre?
Nous recherchons pour un capable, mais soumis.
Quelqu'un d'autre veut être capable?
>> AUDIENCE: je pourrais être Carl.
STEPHEN TURBAN: Sweet.
Nous avons Carl.
>> AUDIENCE: Mitt.
>> STEPHEN TURBAN: Mitt, OK.
Et nous allons avoir besoin a-- je serai le client.
Alors, venez sur place, venez sur place.
Et tout le monde est en vue?
Donc, je vais demander à Vince debout à l'avant, tout sourire,
tout sourire aussi lumineux que possible.
Et nous allons demander à Carl, droite, pourquoi ne pas vous, comme,
debout juste derrière elle?
Et Mitt, pourquoi ne pas juste éteint dans le dos,
et puis je vais vous donner un groupe des tasses de sortir avec.
>> Donc, je suis un client.
Je viens.
Et je fais [Inaudible] Je dis, salut, je aimerais une tasse.
Parfait.
Donc Vince n'a aucune idée.
Alors qu'est-ce que Vince faire ensuite?
Vince-- OK, donc je vais être raconter maintenant.
>> Vince crie à Carl, tasse!
Qu'est-ce que Carl faire?
Carl hurle à Mitt.
Mitt attrape une tasse.
Mitt donne à Carl.
Carl elle retourne à Vince.
Vince et montre à l'utilisateur.
>> Et ce est une grande, haute, haute regard, si haut au MVC.
Nous divisons en ayant une vue, ce l'utilisateur voit, un contrôleur, quelqu'un
qui fait tout dans le fond mais vraiment ne peut pas mettre à jour quoi que ce soit
ou ne peut pas faire quelque chose de toute signification sauf appeler la vue et le modèle.
Et puis nous avons Mitt, le modèle, qui met à jour toutes les données que nous avons.
Je vous remercie beaucoup pour notre belle, contrôle, et les bénévoles capables.
Et je pense que ce était ça.
>> [Applaudissements]
>> Je pense que Gabe va parler maintenant à un niveau moins élevé, espérons.
>> GABRIEL GUIMARAES: OK, les gars.
Parlons maintenant un peu plus sur code et à propos de Ruby on Rails lui-même,
et sur la façon dont il se rapporte à tous de cette histoire MVC.
Fondamentalement, Ruby on Rails est un framework.
Plus à ce sujet dans une seconde.
>> Mais juste pour vous donner une sens de qui se en sert,
comme, tous ces gros companies-- afin GitHub, Groupon, Twitter--
ils sont tous en utilisant Ruby on Rails comme cadre principal
de mettre en œuvre leur site web.
Donc, je suis sûr que beaucoup de personnes ont utilisé ces sites ici.
Et ce est tout Ruby on Rails à mettre en œuvre le modèle, la vue et le contrôleur
sur l'ensemble de ces sites et beaucoup plus.
D'ACCORD?
>> Donc, comme je le disais, Ruby on Rails est un framework.
Et vous pouvez sorte de penser à un cadre dans le sens de la construction d'une maison.
Donc, si vous allez construire un house-- et vous pouvez toujours
commencer à partir de zéro, non?
Vous pouvez essayer de trouver un moyen de scier le bois,
et de mettre le bois à la place, et pour obtenir les pierres dans la bonne forme,
puis tout cela.
Mais cela va prendre probablement beaucoup d'années
jusqu'à ce que vous obtenez tout le matériel, et vous obtenez tout ensemble,
et vous commencez réellement pour construire votre maison.
>> Donc, il se avère si vous commencez avec un cadre avec quelque chose qui est
déjà en place type de pour ne importe quel type de maison
que vous voulez quelque chose de build-- ce est très générique, mais que vous pouvez
puis modéliser vers votre propre goals-- alors vous pouvez tirer parti
ce pouvoir des cadres pour construire les quelque chose de beaucoup, beaucoup plus rapide.
D'ACCORD.
Donc, ce est la même idée dans un cadre pour une application Web
ou pour tout type de demande, pour cette question.
>> Vous commencez réellement à avec une demi demande
déjà en place pour vous.
Et par là, je veux dire que vous avez beaucoup de les fichiers qui ont déjà des fonctions,
comme les bibliothèques, comme la fonctionnalité, et les commandes que vous pouvez exécuter dans l'ordre
pour rendre votre vie beaucoup plus simple et plus facile.
D'ACCORD.
>> Donc dans ce cas, nous allons pour parler de Ruby on Rails.
Il ya beaucoup de différents ossatures, là-bas.
Il ya Django pour Python.
Il ya Zend Framework ou Laravel pour PHP.
Il ya beaucoup de différents.
Ruby on Rails est une nouvelle assez agréable.
Beaucoup de gens utilisent que dans des startups et ce genre d'environnement.
Et certains de ces très gros entreprises que je montrais ici avant
sont également en utilisant Ruby on Rails.
>> Donc, juste pour vous donner une sens de ce qui est Ruby
comme, puisque vous les gars sont plus habitués à, comme, C et un peu de PHP
maintenant et Ruby va être le équivalent de votre PHP dans ce sens.
Ce ne est pas Ruby.
Ce est C. OK?
Mais ce est comme le DJBHash fonction que je
connais beaucoup de gens utilisés les fautes d'orthographe PSET.
>> Et en Ruby, jolie un peu comme dans PHP, vous
pourrait mettre en œuvre ce avec seulement quelques lignes de code.
Au lieu d'avoir à se inquiéter à propos de la fonction de hachage,
avoir à se soucier des seaux, et tout cela, vous pouvez juste dire,
= dictionnaire Hash.net.
Et puis vous utilisez un peu comme la même idée que PHP a.
Et ce est pour vrai.
Et puis si vous voulez vérifier, afin de vérifier la fonction
serait si dictionnaire "foo" equals égaux vrai, retourne vrai.
Et ce est tout, OK?
>> Donc, vous remarquerez quelques différences.
Il n'y a pas des points-virgules ici, car il y avait en C.
Mais l'idée générale est très semblable.
D'ACCORD?
>> Aussi, en Ruby, il ya des pierres précieuses, qui sont des sortes des bibliothèques Ruby.
Et Rails les poignées une très belle façon pour vous.
Donc, si vous voulez mettre dans une bibliothèque qui
ne emails, ou fait la messagerie texte,
ou qui ne l'intégration avec Facebook, ou tout genre de chose
comme ça pour votre application, ce est très, très facile.
Les chances sont que vous pouvez trouver quelque chose comme sur Internet.
Et ils font juste quelque chose comme ce qui put
bijou que vous souhaitez utiliser dans le fichier de bijou.
Et puis Rails installe tout.
Vous ne avez pas à vous soucier de tout de cela, donc ce est vraiment cool.
Aussi, il ya beaucoup, beaucoup d'aide en ligne.
Ainsi vous pouvez trouver beaucoup de choses.
Si vous avez une erreur, vous pouvez il suffit de Google,
et il va être très facile à obtenir de l'aide.
>> Et ce est beaucoup de fun-- exactly-- parce que vous
ne ont pas à se inquiéter de la faible niveau détails, la mise en œuvre de tables de hachage
et d'avoir à venir avec tous les en-têtes HTTP, et beaucoup de choses,
et même certaines choses de niveau plus élevé.
Vous ne avez pas à vous soucier à ce sujet dans Rails.
Il le fait très, très bien pour vous.
Et nous allons montrer que plus concrètement très bientôt.
D'ACCORD.
>> Donc un peu de Ruby nouveau.
Donc, ce est juste comme C, comme je le disais.
Au lieu de printf, nous disons "Met", qui est "mis chaîne."
Il met une chaîne à la console.
Et dans ce cas, nous sommes juste l'impression "Bonjour tout le monde."
Nous ne avons pas besoin des parenthèses, mais ce est à peu près similaire.
>> Et puis si vous voulez de faire quelque chose ici,
comme imprimer un tas de "smalls" et un tas de "bigs" dans une boucle While,
ce est un peu comme en C, non?
Vous ne avez pas les params, mais ce est à peu près la même.
L'indentation ici chefs d'accusation, donc x est égal à 1.
Puis alors que X est plus petit que 50-- se agit d'un cas, ce est une Else.
Ce est un peu comme ce que vous avez vu.
>> Et puis x + = 1 est juste incrémentation, un peu comme faire l'++ que vous pouvez
faire en C. Mais ce est assez bien ce que vous avez vu dans C.
Il ne devrait pas être trop compliqué.
Mais il est plus puissant.
Donc, il ya quelques commandes ici qui sont certainement un peu plus récente.
>> Ainsi, par exemple, «puts».
Vous pouvez utiliser cette notation hashtag ici pour simplement imprimer quelque chose--
un peu comme ce que vous feriez si l'% D ou% C ou un peu comme ça.
Et vous pouvez réellement mettre un Si juste après la déclaration.
Donc, je ne veux que faire this-- Si x est supérieur à 3.
Alors, pourquoi aurais-je à faire un ensemble Si le bloc?
Je ne sais pas.
Je peux juste imprimer ce que si x est égal à supérieur à 3.
Donc, ce est une façon d'une ligne de le faire en Ruby.
>> Une liste est en Ruby quelque chose de très polyvalent.
Donc, vous ne avez pas vraiment besoin d'avoir un seul type.
Vous pouvez avoir une chaîne, puis quelques chiffres, et tout.
Et si vous voulez ajouter quelque chose à une liste,
vous pouvez simplement utiliser cette notation ici.
>> Et si vous voulez parcourir.
A peu près la 4each en PHP, ici, vous avoir une liste et vous faites "List.each faire."
Et cette «elem,« ce est comme le nom de chaque élément
que je vais avoir dans ma liste.
Et puis je peux juste "met élém."
Et "puts" assez bien poignées mettre pour vous, de l'imprimer.
Il ne importe pas si ce est une chaîne ou un int.
Il va travailler que pour vous.
Droite?
Cool.
>> Et tout comme PHP, Ruby et HTML également intégrer très, très bien.
Et ici, il ya une certaine HTML avec Ruby en elle.
Nous avons donc une étiquette de corps comme en HTML.
Et si nous voulons vérifier que l'utilisateur est, par exemple,
connecté, nous pouvons simplement dire, à partir de Ruby, si user.logged_in ?, fin de Ruby.
Imprimer cette chose entière, qui a une certaine Ruby en elle, qui est juste
un peu comme ça syntaxe pour PHP qui affiche une variable.
Disons imprimer le user.name.
>> Alors, bienvenue, Stephen, l'intérieur d'un div HTML.
Et à la fin, nous avons une «fin» et Du code Ruby, qui signifie que ce est mon
Si le bloc.
D'ACCORD?
Donc, ce est juste comme une transparente intégration entre Ruby et HTML.
Il ya aussi beaucoup de ressources.
Mais avant de passer, ne importe qui Pour toute question sur Ruby, quelque chose?
D'ACCORD.
>> Il ya beaucoup de ressources en ligne à tryruby.org, Code Académie,
ruby-lang.org, où vous pouvez essayer sur votre navigateur avant de vous
dis, oh, OK, je vais utiliser Ruby pour mon projet final.
Et donc certainement donner à ceux un essai.
Tous ces diapositives sont va être disponible en ligne,
de sorte que vous pouvez simplement télécharger.
Et oui?
>> AUDIENCE: [inaudible] ce que vous venez montré
été et le code HTML intégrés dans à cette notion de Model View
Contrôleur?
>> GABRIEL GUIMARAES: Oui.
Nous le ferons dans une seconde quand nous montrons notre exemple, OK?
Merci pour la question.
Donc la question était essentiellement si nous peut montrer cette intégration de Ruby
en HTML dans le modèle Voir cadre contrôleur.
>> Donc, l'idée du modèle Cadre View Controller
est ce est essentiellement une philosophie, tout comme Stephen montré ici.
Et ce ne est pas quelque chose que vous avez à faire,
mais ce est quelque chose qui rend votre vie tellement plus simple.
Et Ruby on Rails est construit autour de cette philosophie de code.
Donc, nous allons montrer un exemple très bientôt.
>> Donc Rails est amour.
Beaucoup de gens l'utilisent, comme je le disais.
Et ce est vraiment amusant.
Vous devriez certainement donner un essai.
MVC rend tout plus simple.
Ainsi, le Model View Controller, les choses séparent
et en mettant une personne, en soi, ou une partie de votre demande
de faire chacun des différents emplois que vous application doit faire.
Et moins de temps passé sur les problèmes de bas niveau.
Et très populaire en ce moment.
Nous avons Rails 4.0, qui est une nouvelle version.
Et il est livré avec un tas de trucs cool.
Une autre question.
>> PUBLIC: Une autre question.
Ruby on Rails rapport Ruby on Rails Grails.
>> GABRIEL GUIMARAES: OK.
La question était, Ruby on Rails contre Ruby--
AUDIENCE: Grails.
Ruby?
>> GABRIEL GUIMARAES: Ouais.
Donc, Ruby est un langage.
>> AUDIENCE: Non
Je vous demande de comparer une langue et d'un cadre, Ruby on Rails,
avec une autre langue populaire framework-- Grails-- avec Ruby
on Rails.
>> GABRIEL GUIMARAES: OK.
Désolé.
La question a été, comparer Ruby et Ruby on Rails
à un autre cadre et another--
>> AUDIENCE: Ruby.
C'est OK.
Si vous ne savez pas, ce est très bien.
>> GABRIEL GUIMARAES: Comme, ce que je comprends, ce est that--
>> PUBLIC: Il ya un autre cadres appelés Grails.
>> GABRIEL GUIMARAES: Oh, Grails.
Je ne ai jamais entendu parler de lui.
Désolé.
Je ne ai jamais entendu parler de Groovy on Rails.
Désolé.
>> PUBLIC: Ce est beaucoup mieux intégrée avec Java.
>> GABRIEL GUIMARAES: Je vois.
>> PUBLIC: Je suis juste curieux à propos de certaines personnes que je connais like--
>> GABRIEL GUIMARAES: Non, je ne ai jamais entendu parler de celui-là, malheureusement.
Grails.
>> AUDIENCE: Et certaines personnes évidemment comme Ruby on Rails.
>> GABRIEL GUIMARAES: Je ai Ruby on Rails utilisé beaucoup.
Je ai utilisé un certain Django avec Python, comme je le disais.
Je ai utilisé un certain Laravel.
Mais je ne avais pas utilisé Groovy on Rails.
Désolé.
Et il est très populaire maintenant avec Rails 4.0.
Comme, certaines des choses que Rails le fait pour vous, par exemple, ce est vous
avoir beaucoup de fichiers CSS et beaucoup de fichiers JavaScript.
Et vous pouvez les traiter comme séparée et tout.
>> Mais alors il avoir automatiquement lorsque vous envoyez votre code à la production,
il compile automatiquement tous dans un seul fichier
Ce est sans aucun minified les espaces, de sorte qu'il prend
moins d'espace dans votre application, de sorte que vous pouvez vraiment évoluer les choses beaucoup.
Ce est pourquoi ces grandes entreprises comme Twitter et GitHub
utilisent Rails, car il fait tout que, pour vous, ce qui est vraiment cool.
>> Une chose qui est très, très, très intimidante
pour les personnes, y compris moi, qui essaient de travailler
avec un cadre au début, est que lorsque vous commencez une demande,
vous allez voir un tas de fichiers.
Comme, lorsque vous créez Rails Nouvelle, mon application,
vous allez voir tous ces folders-- application, bin, config, db, lib,
connecter, public.
Comme, beaucoup, beaucoup de choses.
>> Et le temps d'abord, je vu que, je étais comme,
OK, je ne ai aucune idée de ce qui se passe.
Je veux juste créer un site Web avec "Bonjour tout le monde,"
et cela me donne, comme, 100 milliards de pages différents.
Je ne sais pas ce qui se passe.
Alors se il vous plaît ne soyez pas trop intimidé par cela.
>> L'idée est qu'il a fait demi- d'une maison là pour vous déjà.
Il dispose d'un ensemble de cadre pour que vous avez déjà.
Ce est pourquoi il ya tant de nombreux fichiers.
Mais la bonne chose est qu'il sépare chacun d'eux très bien.
Les chances sont que vous ne avez pas à vous soucier à propos de la plupart de ces dossiers.
>> Le plus important, je dirait, est le dossier de l'application,
où votre application vit réellement.
Ainsi, la configuration, vous allez avoir de configurer certaines choses,
comme votre base de données et des choses comme quel type de base de données que vous utilisez.
Mais à part ça, comme la plupart des votre travail va être fait en application.
Donc, dans l'application, vous avez des actifs, des contrôleurs, aides, les expéditeurs, les modèles, vues.
Alors là, vous commencez à voir que contrôleurs, modèles et vues viennent
en jeu.
>> Expéditeurs sont simplement si vous vouloir envoyer des emails.
Helpers si vous voulez créer des fonctions
que vous utilisez beaucoup dans la vue.
Donc, vous les mettez dans aides.
Et actifs est fondamentalement tous vos images, l'ensemble de votre CSS,
tout votre JavaScript et comme ces sortes
des choses qui sont envoyés au client.
Et tout ce qui est dans les actifs, que je ai dit avant, obtient minified.
Il est compilé.
Et vous ne avez pas vraiment à se inquiéter que quand il va de code de production.
Cool.
>> Maintenant Zack va venir, et il est va faire un exemple de Twitter50.
>> AUDIENCE: Woo-hoo!
>> ZACK CHAUVIN: Awesome.
Je ai donc eu la chance de travailler avec Ruby on Rails cet été.
Ce est un cadre incroyable.
Je suis très partielle à elle.
Et je vais vous montrer un peu de un exemple de ce que pourrait ressembler.
Sautez par-dessus à Chrome.
Donc, ce est un exemple de très simple Ruby on Rails Application-- quelque chose
comme ce est quelque chose que Ruby excelle vraiment
that-- juste où votre modèles sont très bien définis.
>> Dans cet exemple, vous verrez deux modèles différents, qui
sont que nous avons des utilisateurs et nous avons tweets.
Donc, ce est Twitter50, Propre Twitter de Harvard.
Comme vous pouvez le voir, je suis connecté en tantzack.
Et je suis capable de faire de nouveaux tweets.
Donc je think-- «Ce est un" - pardon?
AUDIENCE: [inaudible].
ZACK CHAUVIN: Oh, OK.
Besoin d'arrêter le serveur.
Excellente.
Donc nous sommes ici.
Comme vous pouvez le voir, nous avons notre Application Twitter ici.
Et ce est super facile de démarrer le serveur.
Nous allons juste faire "serveur de rails."
Grande.
D'ACCORD.
Merci pour cela.
Alors maintenant, nous sommes en cours d'exécution.
>> Et nous disons: «Ce est un séminaire génial. "
Et nous allons voir ce qui se passe.
Donc, nous allons Tweet ce sujet.
Tout en bas, vous pouvez voir il ya maintenant plus de trois tweets.
Nous avons donc un peu la pagination passe.
Et nous avons ce tweet.
Et je peux aussi chercher dans mon tweets-- pour cette recherche et les deux
ceux qui ont la parole «Ceci» en eux manifester.
Nous pouvons également supprimer tweets par cliquant sur le petit bouton Supprimer.
Et évidemment, je ne peux supprimer le poste qui me appartenait.
>> Déjà, nous avons presque fonctionnalité de Twitter.
Comme, quand vous pensez à ce sujet, Twitter vraiment ne fait pas tant que ça.
Il a les utilisateurs, il a tweets.
Il ya certaines fonctionnalités plus complexe.
Mais quand vous avez vraiment descendez à elle, il est tout à fait une application simple Ruby on Rails.
Et quelque chose comme ça, avec un bonne compréhension de Ruby on Rails,
Vous pourriez probablement faire en une heure ou deux.
>> Et ce est vraiment Retour à la mantra Ruby,
qui est convention plutôt que configuration.
Donc, retour dans la journée, les gens, ne importe quand ils voulaient faire de ce site,
devra commencer à partir de zéro.
OK, je veux faire un site web.
Faisons ce fichier et ce fichier et ce fichier.
>> Avec Ruby on Rails, il ya rien de tout cela.
Vous dites, je veux une nouvelle application.
Et tout comme Gabe nous a montré, il crée la structure de fichier entier pour nous.
Et nous venons de changer la petites pièces que nous doivent.
Nous personnalisons ce que est unique à propos de notre application.
Cool.
Pour en revenir à notre présentation preview-- intéressant.
Où dois-je présenter?
AUDIENCE: Plein écran.
En haut à droite.
>> ZACK CHAUVIN: Excellent.
Cool.
D'ACCORD.
Ainsi, tout d'abord, le modèle.
Stephen a fait un super travail de décrivant MVC.
Et maintenant, nous allons porter ce retour à Ruby on Rails.
Ainsi, le modèle que vous pouvez type de penser que la base de données.
Vous avez été voir cela dans CS50 Finance, où les magasins de modèle
les informations sur combien de stocks que vous avez,
ou toutes les transactions que vous avez faites.
Ceci est un exemple de une ligne de la façon dont vous le feriez
y prendre pour faire un nouveau modèle dans Rails.
Donc, je veux un utilisateur.
Il va avoir un e-mail, qui est une chaîne,
et un mot de passe, qui est également la chaîne.
Donc, ce est comme je veux those-- chaque rangée dans ma table des utilisateurs ressembler à ça.
>> Une partie vraiment génial à propos de Rails est qu'il
rend inutile écrire ne importe quel SQL à peu près.
Combien d'entre vous les gars aimé écrit SQL dans PSET 7?
Exactement.
SQL ne est pas très convivial.
Et tout ce que Rails fait abstraction de suite avec ces commandes très faciles.
Ainsi, par exemple, si nous avons un utilisateur, un utilisateur a de nombreux tweets.
Et chacun de ceux tweets appartient à un utilisateur.
>> Donc, si vous regardez ici, ce est notre modèle pour notre tweet.
Et tout ce que nous avons à dire est cette seule line-- Je suis un tweet
et je appartiens à un utilisateur.
Et avec cette ligne simple et une peu de configuration de base de données,
Rails établit cette relation.
À tout moment, je peux juste dire, zack.tweets, comme, me donner tout de tweets Zack.
Pas SQL.
Super facile.
Encore une fois, ce est la convention sur configuration entrée en jeu.
>> Vous pouvez voir un peu d'un exemple de Ruby ici.
Comme Gave dit, écrit Ruby est un peu comme écrire en anglais.
Ce est un langage de très haut niveau, et il rend vraiment facile
pour nous de dire des choses comme, je veux assurez-vous que ce tweet a un corps.
Sa présence est vrai.
Et je veux me assurer que cette tweeter, tout comme normale Twitter,
a une longueur maximum de 140.
Ce est super-intuitive, un vraiment super langue.
>> Ensuite nous avons la vue.
Donc, il se agit de HTML et CSS.
Et voici un exemple de vue.
Donc, Ruby on Rails sorte de façon transparente intègre à la fois Ruby et HTML
afin de générer ce que nous voulons sur la page.
Donc, ce est un exemple de notre mise en page.
Donc vous pouvez voir quelques balises que vous les gars sont habitués, comme le HTML, le corps,
toutes ces bonnes choses.
>> Et juste ici, cependant, nous intégrer certains Ruby en disant,
se il ya un message à afficher, puis afficher le message dans une div.
Donc, je ne vais pas trop entrer dans cela.
Mais ce est en général un page qui obtient rendu on--
et ne importe quelle page vous êtes sur, celui-ci se rendait.
Donc, ce est ce qui est inclus toujours.
Cool.
>> Un autre exemple de cela est view-- celui où elle a choisi tous les tweets.
Et certaines de ces choses pourrait ressembler assez familier.
Ainsi, par exemple, ici, nous sommes une boucle à travers chacun des tweets,
et nous les imprimer.
Voici donc où nous en sommes imprimer le corps.
Et si la user-- de le tweet voici une véritable exemple de SQL ne est impliqué.
Je vous demande, est-ce l'utilisateur de l'utilisateur Tweet actuelle?
Puis montrer un lien pour le supprimer.
Ce est super simple.
>> Le contrôleur.
Donc, ce est, encore une fois, l'interface entre le modèle et la vue.
Ce est celui qui fait le sale boulot être de interacting-- l'intermédiaire.
Il charge l'information pour le considérons, que nous verrons dans un sec.
Et afin d'interagir avec le modèle, il
Appelle les méthodes de modèles, qui sont ce que vous les gars êtes familier fonctions.
>> Ainsi, par exemple, il se agit le contrôleur de notre tweet.
Il peut sembler un peu intimidante en ce moment.
Mais il est en fait super-intuitive une fois que vous commencez à plonger.
Ainsi, par exemple, dans notre index, ce est où nous voulons montrer tous les tweets.
Et cette ligne essentiellement demande juste pour tous les tweets.
Et puis on initialise la fois les nouveaux tweet-- Donc, comme
se ils veulent créer un nouveau tweet sur cette page.
>> Et il demande ce que l'utilisateur actuel.
Et cela est très semblable à la rendu que vous avez vu dans PSET 7,
où il est juste une sorte de dire l'view-- ce est un peu comme,
passant les variables que vous êtes allez avoir besoin dans la vue à la vue.
Et il ya tout un tas de différentes méthodes
que le contrôleur de ce tweet peut gérer.
>> Mais vraiment, Rails ne un excellent travail de type
d'entre eux se divisant en différents actions que votre contrôleur pourrait faire.
Y at-il des questions au sujet l'une des pièces de MVC Rails?
Type de juste une brise par.
Alors vous les gars pouvez vérifier il sur votre propre.
Impressionnant.
Nous allons continuer.
>> Donc, l'installation Rails.
L'installation de rampes peuvent être, comme, une des parties les plus redoutables
de l'ensemble des Rails processus, malheureusement.
Mais évidemment, tous nous sommes là pour les aider.
Et une fois que ce est là-bas, beaucoup de grandes ressources,
Gabe comme mentionné, pour commencer.
Voici les liens qui vous aurez besoin pour
pour télécharger Rails pour l'obtenir installé sur votre machine.
De toute évidence, il est disponible à la fois pour Windows et Mac
et l'appareil de CS50.
Questions sur tout ce que nous ont dit?
>> AUDIENCE: je serais intéresse, actually--
donc je sais que le téléchargement logiciel est le plus grand obstacle.
Se il ya suffisamment d'intérêt d'avoir un téléchargement mini-session ou quelque chose.
ZACK CHAUVIN: Mm-hm.
Ouais.
Cela pourrait être vraiment utile.
Si quelqu'un est vraiment enthousiaste à l'utilisation de ce pour leur projet
ou dans l'avenir, alors nous serions certainement heureux de vous parler de cela.
Mm-hm.
>> PUBLIC: Une question connexe à ce que je ai demandé avant.
Pour ceux d'entre vous qui ont fait d'autres cadres qui sont encore
essayer de faire la même chose chose, rendre plus facile
pour construire un site web ou un fonctionnalité, je pense que tout sens
pourquoi nous serait on Rails rapport Zend ou d'autres cadres
et langues.
>> ZACK CHAUVIN: Je vais juste dire que mon $ 0,02 à ce sujet.
Je aime Ruby on Rails.
Je ai eu la chance de travailler à la fois PHP et Ruby on Rails.
Je préfère de beaucoup Ruby on Rails raison de Ruby.
Certainement, ce est une grande partie de celui-ci.
Comme, lorsque vous êtes le choix de votre cadre,
vous pouvez aussi choisir votre langue.
>> Ruby est super accessible-- je pense une bien meilleure langue que PHP.
Mais ce est le genre de préférence personnelle.
En outre, une autre considération est la communauté derrière le cadre
que vous travaillez avec.
>> En ce moment, Ruby on Rails est vraiment chaud.
Il ya des tonnes de soutien derrière elle.
Vous postez quelque chose sur Stack Débordement d'un problème vous êtes
ayant en Ruby on Rails, et il a répondu à.
Encore une fois, il est open source, ce qui signifie qu'il est constamment changé.
Il ya des tonnes de gens qui sont vraiment dédiés
afin d'en faire une cadre vraiment génial.
Ce est pourquoi je voudrais choisir Ruby on Rails.
GABRIEL GUIMARAES: Ouais.
Je dirais que l'idée derrière la plupart des cadres vous êtes
va trouver là-bas est très, très similaires, non?
Ainsi, le Model View Controller, le fait que notre contrôleur de
aller à ressembler à quelque chose comme this-- chacune des fonctions
ce est comme une de vos pages, et il vous redirige,
et il initialise les variables.
Ça va être la même chose pour chaque cadre que vous voyez là-bas.
Et il va être le modèle.
Et vous pouvez faire des choses comme, "appartient à."
Ainsi, au lieu de faire la version de SQL, vous venez, comme, faire, user.tweets,
et vous obtenez tout.
Tout le monde a cela.
Sauf dans Ruby, vous faites user.tweets, puis certains cadres en PHP,
vous faites user.getalltweets OÙ mon PHP ne est pas un problème.
Comme, ce est une grande ligne.
Ce est la même chose, mais ce est une grande ligne.
>> Donc, ce est une des principales raisons de mes préférences plus de Ruby.
Il est juste que je fasse exactement le même chose dans d'autres cadres,
il me faut deux fois seulement que de longues lignes de code.
D'ACCORD?
>> D'autres questions?
>> ZACK CHAUVIN: Quelque chose Je mentionnerai quickly-- Gabe
parlé un peu de pierres précieuses.
Et ce est une très great-- je veux dire, ce est une sorte de commun à tous les cadres,
qu'il ya une sorte de concept de bijou, qui est comme dans mon petit exemple,
Je ai vous identifier.
Comme, vous pouvez vous connecter, vous déconnecter.
Comme, ce est fait type d'un processus complexe.
Il a été traité un peu bits pour vous dans PSET 7.
Mais je ne sais toujours pas entièrement comment de mettre en œuvre la connexion, déconnexion.
Et ce est parce que Ruby on Rails a des tonnes
des gemmes qui font des trucs comme ça pour vous.
>> Encore une fois, la convention sur la configuration.
Tout le monde va faire ce signe-in, l'étape-signer.
Alors pourquoi ne pas faire un paquet, appelé Concevoir, dans ce cas, qui est un petit bijou.
Vous incluez tout simplement.
Et puis il ya un peu d'aide en ligne avec la façon de l'utiliser.
Et vous ne avez pas à vous soucier à propos de quelque chose comme ça.
>> Fixation de photos à ces things-- un joyau pour cela.
Comme, quand vous essayez de faire quelque chose de nouveau, il est un bijou pour cela.
Et vous sorte de juste reconstituer ces joyaux
et de construire une très complexe application très rapidement.
Cool.
D'autres questions?
>> STEPHEN TURBAN: Woo-hoo.
Je ne pense pas [inaudible].
>> GABRIEL GUIMARAES: OK.
Merci beaucoup, les gars.
>> STEPHEN TURBAN: Buh-bye.
ZACK CHAUVIN: Buh-bye.
>> STEPHEN TURBAN: Woo-hoo.
[Applaudissements]
>> Yay.