1 00:00:00,000 --> 00:00:03,968 >> [Jouer de la musique] 2 00:00:03,968 --> 00:00:10,744 3 00:00:10,744 --> 00:00:14,040 >> STEPHEN TURBAN: Je suis donc Stephen Turban. 4 00:00:14,040 --> 00:00:16,990 Plus sur le côté ici, peut-être nous peut obtenir certaines personnes à plonger. 5 00:00:16,990 --> 00:00:20,150 6 00:00:20,150 --> 00:00:23,854 Nous avons Gabriel et Zack. 7 00:00:23,854 --> 00:00:26,270 Donc, pour une brève feuille de route sur ce cela va ressembler, 8 00:00:26,270 --> 00:00:31,580 Je vais être de faire quelques très regard de haut niveau à ce que MVC est. 9 00:00:31,580 --> 00:00:32,285 Gabe? 10 00:00:32,285 --> 00:00:35,080 >> GABRIEL GUIMARAES: Je vais parler de Ruby et un peu 11 00:00:35,080 --> 00:00:39,100 Rails comment fonctionne et comment il peut vous aider à construire des applications web. 12 00:00:39,100 --> 00:00:42,070 >> ZACK CHAUVIN: Et je vais vous montrer un exemple concret de la façon dont 13 00:00:42,070 --> 00:00:45,112 à utiliser Rails de construire une application super-génial. 14 00:00:45,112 --> 00:00:46,112 STEPHEN TURBAN: Awesome. 15 00:00:46,112 --> 00:00:46,350 Sweet. 16 00:00:46,350 --> 00:00:46,850 Bien. 17 00:00:46,850 --> 00:00:49,510 Donc, nous allons parler de MVC. 18 00:00:49,510 --> 00:00:54,970 Allons donc à la diapositive suivante, qui Je vais faire en appuyant sur ce bouton. 19 00:00:54,970 --> 00:01:12,640 Passons maintenant à l'élaboration next--, Je aime à penser à aller à CVS, 20 00:01:12,640 --> 00:01:17,240 parce CVS est un magasin et a également un V dans le centre. 21 00:01:17,240 --> 00:01:21,460 >> Et imaginons dans un magasin. 22 00:01:21,460 --> 00:01:25,380 Et nous allons faire ce magasin vendre une seule chose. 23 00:01:25,380 --> 00:01:31,380 Nous allons donc d'avoir cette stocker seulement vendre ces tasses rouges. 24 00:01:31,380 --> 00:01:40,410 Et imaginez que vous entrez, et vous allez à l'avant du magasin, et personne. 25 00:01:40,410 --> 00:01:43,440 Et son nom est Vince. 26 00:01:43,440 --> 00:01:48,370 >> Et Vince vagues bonjour à vous, dit salut. 27 00:01:48,370 --> 00:01:50,860 Et vous remarquerez une chose à propos de Vince. 28 00:01:50,860 --> 00:01:56,880 Donc, chaque fois que nous pensons à Vince, nous avoir à penser environ deux adjectifs clés. 29 00:01:56,880 --> 00:02:00,600 Vince est beau, mais il est stupide. 30 00:02:00,600 --> 00:02:01,320 D'ACCORD. 31 00:02:01,320 --> 00:02:06,810 Alors vous savez, sans faute de sa part, Malheureusement, il est beau. 32 00:02:06,810 --> 00:02:08,009 Il est notre avis. 33 00:02:08,009 --> 00:02:10,539 Donc, notre premier acteur est là. 34 00:02:10,539 --> 00:02:12,340 Gardez cela à l'esprit. 35 00:02:12,340 --> 00:02:17,230 >> Maintenant, demandez-vous Vince, vous allez, hey Vince. 36 00:02:17,230 --> 00:02:18,110 Je suis un client. 37 00:02:18,110 --> 00:02:19,130 Il dit salut. 38 00:02:19,130 --> 00:02:23,610 Je veux vraiment une de vos tasses rouges. 39 00:02:23,610 --> 00:02:24,760 Et que dit Vince? 40 00:02:24,760 --> 00:02:26,510 Quelqu'un at-il idée de ce que dit Vince? 41 00:02:26,510 --> 00:02:30,340 42 00:02:30,340 --> 00:02:31,452 Je vais appel à froid. 43 00:02:31,452 --> 00:02:32,660 Que pensez-vous Vince dit? 44 00:02:32,660 --> 00:02:36,139 >> PUBLIC: Il dit, je peux vous montrer où il est, mais je ne peux pas vous donner un. 45 00:02:36,139 --> 00:02:41,330 >> STEPHEN TURBAN: Il dit, je peux vous montrer où il est, mais je ne peux pas vous donner un. 46 00:02:41,330 --> 00:02:42,295 Pire encore. 47 00:02:42,295 --> 00:02:44,420 Quelqu'un d'autre a une autre idée de ce que pourrait dire Vince? 48 00:02:44,420 --> 00:02:46,957 >> PUBLIC: Il doit aller chèque se ils ont des tasses rouges. 49 00:02:46,957 --> 00:02:49,290 STEPHEN TURBAN: Vince ne est pas même savoir qu'il doit vérifier. 50 00:02:49,290 --> 00:02:50,070 Rien d'autre? 51 00:02:50,070 --> 00:02:52,360 Donc, vous avez dit, doit vérifier se il a tasses rouges. 52 00:02:52,360 --> 00:02:52,895 Aller de l'avant. 53 00:02:52,895 --> 00:02:54,020 Public: Qu'est-ce qu'une tasse rouge? 54 00:02:54,020 --> 00:02:56,072 STEPHEN TURBAN: Qu'est-ce qu'une tasse rouge? 55 00:02:56,072 --> 00:02:58,090 Ce qui est une tasse rouge? 56 00:02:58,090 --> 00:02:59,410 Vince est confus. 57 00:02:59,410 --> 00:03:05,141 Donc Vince va parler notre prochain membre de la distribution, Carl. 58 00:03:05,141 --> 00:03:10,252 Et quand on pense à Carl, nous dois penser à deux gros adjectives-- 59 00:03:10,252 --> 00:03:15,110 il est majoritaire, mais il est incapable. 60 00:03:15,110 --> 00:03:17,840 >> Alors qu'il Vince goes-- va, ce est une tasse rouge? 61 00:03:17,840 --> 00:03:19,800 Je ne sais pas ce que une tasse rouge est. 62 00:03:19,800 --> 00:03:23,080 Il se retourne, et il demande à Carl. 63 00:03:23,080 --> 00:03:28,890 Il dit, Carl, quelqu'un demandé une tasse rouge. 64 00:03:28,890 --> 00:03:30,722 Pouvez-vous faire cela? 65 00:03:30,722 --> 00:03:31,680 Et que dit Carl? 66 00:03:31,680 --> 00:03:32,513 Disons comprendre. 67 00:03:32,513 --> 00:03:34,330 Quelqu'un at-il idée de ce que dit Carl? 68 00:03:34,330 --> 00:03:37,260 Et je vais répéter de nouveau à vous. 69 00:03:37,260 --> 00:03:39,280 Je ai vu un mouvement de la main. 70 00:03:39,280 --> 00:03:41,760 >> PUBLIC: Il dit quelqu'un d'autre pour obtenir les tasses rouges. 71 00:03:41,760 --> 00:03:44,430 >> STEPHEN TURBAN: Il raconte quelqu'un d'autre pour obtenir la tasse rouge. 72 00:03:44,430 --> 00:03:46,270 Exactement. 73 00:03:46,270 --> 00:03:49,010 Et avons-nous une idée qui est cette personne pourrait être? 74 00:03:49,010 --> 00:03:52,590 75 00:03:52,590 --> 00:03:53,090 Ce est un indice. 76 00:03:53,090 --> 00:03:56,960 Il va commencer par un M. Mob? 77 00:03:56,960 --> 00:04:00,225 >> AUDIENCE: Modèle. 78 00:04:00,225 --> 00:04:02,720 >> STEPHEN TURBAN: Le modèle, oui. 79 00:04:02,720 --> 00:04:06,920 Son nom ne est pas le modèle, malheureusement, parce que ce est un nom stupide. 80 00:04:06,920 --> 00:04:09,310 Nous avons Mitt. 81 00:04:09,310 --> 00:04:12,970 Et quand nous pensons à Mitt-- non, ce ne est pas une image de Zack. 82 00:04:12,970 --> 00:04:15,590 83 00:04:15,590 --> 00:04:21,759 Nous devons penser à deux adjectifs clés avec Mitt. 84 00:04:21,759 --> 00:04:25,040 Il est capable, mais il est soumis. 85 00:04:25,040 --> 00:04:29,950 Donc, Mitt sait ce qu'il a à faire, mais il ne peut vraiment pas faire ne importe quoi. 86 00:04:29,950 --> 00:04:32,340 Ou il peut vraiment pas se prononcer sur son propre. 87 00:04:32,340 --> 00:04:33,256 >> Nous avons donc Carl. 88 00:04:33,256 --> 00:04:34,705 Carl crie à Mitt. 89 00:04:34,705 --> 00:04:39,990 Et il dit, hey Mitt, nous avons besoin de tasses rouges. 90 00:04:39,990 --> 00:04:46,410 Et Mitt va à son rouge tasse dépositaire. 91 00:04:46,410 --> 00:04:48,960 Il attrape une tasse, et il lui rend. 92 00:04:48,960 --> 00:04:51,360 Quelqu'un at-il idée de ce qui se passe alors? 93 00:04:51,360 --> 00:04:54,070 94 00:04:54,070 --> 00:04:55,120 Donne la tasse. 95 00:04:55,120 --> 00:05:01,740 Jusqu'ici Mitt est allé à son rouge Coupe du référentiel, prise it out, 96 00:05:01,740 --> 00:05:03,550 vérifier le tout, dit, Je ai pris une tasse rouge. 97 00:05:03,550 --> 00:05:06,717 Et il le donne Carl. 98 00:05:06,717 --> 00:05:07,550 Avez-vous une idée? 99 00:05:07,550 --> 00:05:08,980 Que pensez-vous Carl fait? 100 00:05:08,980 --> 00:05:10,926 >> AUDIENCE: Carl elle donne à Vince. 101 00:05:10,926 --> 00:05:13,550 >> STEPHEN TURBAN: Carl elle donne à Vince. 102 00:05:13,550 --> 00:05:14,165 Vince. 103 00:05:14,165 --> 00:05:15,999 >> AUDIENCE: Et Vince il montre à [inaudible]. 104 00:05:15,999 --> 00:05:16,998 STEPHEN TURBAN: Exactement. 105 00:05:16,998 --> 00:05:18,080 Donc, ce est exactement ça. 106 00:05:18,080 --> 00:05:21,040 Donc Vince prend la coupe, ne sait même pas ce que ce est, 107 00:05:21,040 --> 00:05:23,840 mais il montre à l'utilisateur. 108 00:05:23,840 --> 00:05:27,140 Essayons donc de recréer ce vraiment brièvement. 109 00:05:27,140 --> 00:05:31,380 Et nous allons devoir trois volontaires silencieux, 110 00:05:31,380 --> 00:05:35,260 que vous les gars ne vont pas pour être en mesure de parler. 111 00:05:35,260 --> 00:05:36,470 Ainsi pourrais-je saisir trois? 112 00:05:36,470 --> 00:05:37,040 D'ACCORD. 113 00:05:37,040 --> 00:05:38,248 Et qui aimeriez-vous être? 114 00:05:38,248 --> 00:05:42,310 115 00:05:42,310 --> 00:05:43,750 >> PUBLIC: Je serai Vince. 116 00:05:43,750 --> 00:05:44,960 >> STEPHEN TURBAN: Vince, OK. 117 00:05:44,960 --> 00:05:46,190 Belle, mais stupide. 118 00:05:46,190 --> 00:05:47,510 Grande. 119 00:05:47,510 --> 00:05:48,570 Quelqu'un d'autre? 120 00:05:48,570 --> 00:05:53,520 Nous recherchons pour un capable, mais soumis. 121 00:05:53,520 --> 00:05:55,760 Quelqu'un d'autre veut être capable? 122 00:05:55,760 --> 00:05:56,944 >> AUDIENCE: je pourrais être Carl. 123 00:05:56,944 --> 00:05:57,860 STEPHEN TURBAN: Sweet. 124 00:05:57,860 --> 00:05:59,102 Nous avons Carl. 125 00:05:59,102 --> 00:05:59,866 >> AUDIENCE: Mitt. 126 00:05:59,866 --> 00:06:01,050 >> STEPHEN TURBAN: Mitt, OK. 127 00:06:01,050 --> 00:06:05,070 Et nous allons avoir besoin a-- je serai le client. 128 00:06:05,070 --> 00:06:07,460 Alors, venez sur place, venez sur place. 129 00:06:07,460 --> 00:06:10,470 Et tout le monde est en vue? 130 00:06:10,470 --> 00:06:15,440 Donc, je vais demander à Vince debout à l'avant, tout sourire, 131 00:06:15,440 --> 00:06:18,230 tout sourire aussi lumineux que possible. 132 00:06:18,230 --> 00:06:21,520 Et nous allons demander à Carl, droite, pourquoi ne pas vous, comme, 133 00:06:21,520 --> 00:06:24,050 debout juste derrière elle? 134 00:06:24,050 --> 00:06:26,660 Et Mitt, pourquoi ne pas juste éteint dans le dos, 135 00:06:26,660 --> 00:06:31,410 et puis je vais vous donner un groupe des tasses de sortir avec. 136 00:06:31,410 --> 00:06:34,170 >> Donc, je suis un client. 137 00:06:34,170 --> 00:06:35,610 Je viens. 138 00:06:35,610 --> 00:06:40,490 Et je fais [Inaudible] Je dis, salut, je aimerais une tasse. 139 00:06:40,490 --> 00:06:43,214 140 00:06:43,214 --> 00:06:44,580 Parfait. 141 00:06:44,580 --> 00:06:45,580 Donc Vince n'a aucune idée. 142 00:06:45,580 --> 00:06:46,915 Alors qu'est-ce que Vince faire ensuite? 143 00:06:46,915 --> 00:06:50,770 144 00:06:50,770 --> 00:06:52,860 Vince-- OK, donc je vais être raconter maintenant. 145 00:06:52,860 --> 00:06:55,390 >> Vince crie à Carl, tasse! 146 00:06:55,390 --> 00:06:58,840 147 00:06:58,840 --> 00:07:00,790 Qu'est-ce que Carl faire? 148 00:07:00,790 --> 00:07:03,910 Carl hurle à Mitt. 149 00:07:03,910 --> 00:07:06,710 Mitt attrape une tasse. 150 00:07:06,710 --> 00:07:08,220 Mitt donne à Carl. 151 00:07:08,220 --> 00:07:10,870 Carl elle retourne à Vince. 152 00:07:10,870 --> 00:07:12,640 Vince et montre à l'utilisateur. 153 00:07:12,640 --> 00:07:17,960 >> Et ce est une grande, haute, haute regard, si haut au MVC. 154 00:07:17,960 --> 00:07:22,460 Nous divisons en ayant une vue, ce l'utilisateur voit, un contrôleur, quelqu'un 155 00:07:22,460 --> 00:07:25,760 qui fait tout dans le fond mais vraiment ne peut pas mettre à jour quoi que ce soit 156 00:07:25,760 --> 00:07:29,960 ou ne peut pas faire quelque chose de toute signification sauf appeler la vue et le modèle. 157 00:07:29,960 --> 00:07:35,280 Et puis nous avons Mitt, le modèle, qui met à jour toutes les données que nous avons. 158 00:07:35,280 --> 00:07:42,660 Je vous remercie beaucoup pour notre belle, contrôle, et les bénévoles capables. 159 00:07:42,660 --> 00:07:43,730 Et je pense que ce était ça. 160 00:07:43,730 --> 00:07:45,040 >> [Applaudissements] 161 00:07:45,040 --> 00:07:48,745 >> Je pense que Gabe va parler maintenant à un niveau moins élevé, espérons. 162 00:07:48,745 --> 00:07:51,600 >> GABRIEL GUIMARAES: OK, les gars. 163 00:07:51,600 --> 00:07:56,790 Parlons maintenant un peu plus sur code et à propos de Ruby on Rails lui-même, 164 00:07:56,790 --> 00:08:00,750 et sur la façon dont il se rapporte à tous de cette histoire MVC. 165 00:08:00,750 --> 00:08:03,190 Fondamentalement, Ruby on Rails est un framework. 166 00:08:03,190 --> 00:08:04,640 Plus à ce sujet dans une seconde. 167 00:08:04,640 --> 00:08:07,760 >> Mais juste pour vous donner une sens de qui se en sert, 168 00:08:07,760 --> 00:08:12,240 comme, tous ces gros companies-- afin GitHub, Groupon, Twitter-- 169 00:08:12,240 --> 00:08:15,300 ils sont tous en utilisant Ruby on Rails comme cadre principal 170 00:08:15,300 --> 00:08:16,510 de mettre en œuvre leur site web. 171 00:08:16,510 --> 00:08:19,130 Donc, je suis sûr que beaucoup de personnes ont utilisé ces sites ici. 172 00:08:19,130 --> 00:08:24,470 Et ce est tout Ruby on Rails à mettre en œuvre le modèle, la vue et le contrôleur 173 00:08:24,470 --> 00:08:26,890 sur l'ensemble de ces sites et beaucoup plus. 174 00:08:26,890 --> 00:08:27,830 D'ACCORD? 175 00:08:27,830 --> 00:08:32,090 >> Donc, comme je le disais, Ruby on Rails est un framework. 176 00:08:32,090 --> 00:08:37,237 Et vous pouvez sorte de penser à un cadre dans le sens de la construction d'une maison. 177 00:08:37,237 --> 00:08:39,570 Donc, si vous allez construire un house-- et vous pouvez toujours 178 00:08:39,570 --> 00:08:40,653 commencer à partir de zéro, non? 179 00:08:40,653 --> 00:08:46,440 Vous pouvez essayer de trouver un moyen de scier le bois, 180 00:08:46,440 --> 00:08:49,760 et de mettre le bois à la place, et pour obtenir les pierres dans la bonne forme, 181 00:08:49,760 --> 00:08:51,250 puis tout cela. 182 00:08:51,250 --> 00:08:54,020 Mais cela va prendre probablement beaucoup d'années 183 00:08:54,020 --> 00:08:56,910 jusqu'à ce que vous obtenez tout le matériel, et vous obtenez tout ensemble, 184 00:08:56,910 --> 00:08:58,790 et vous commencez réellement pour construire votre maison. 185 00:08:58,790 --> 00:09:01,748 >> Donc, il se avère si vous commencez avec un cadre avec quelque chose qui est 186 00:09:01,748 --> 00:09:04,260 déjà en place type de pour ne importe quel type de maison 187 00:09:04,260 --> 00:09:07,750 que vous voulez quelque chose de build-- ce est très générique, mais que vous pouvez 188 00:09:07,750 --> 00:09:12,850 puis modéliser vers votre propre goals-- alors vous pouvez tirer parti 189 00:09:12,850 --> 00:09:16,800 ce pouvoir des cadres pour construire les quelque chose de beaucoup, beaucoup plus rapide. 190 00:09:16,800 --> 00:09:17,300 D'ACCORD. 191 00:09:17,300 --> 00:09:21,110 Donc, ce est la même idée dans un cadre pour une application Web 192 00:09:21,110 --> 00:09:23,755 ou pour tout type de demande, pour cette question. 193 00:09:23,755 --> 00:09:26,560 >> Vous commencez réellement à avec une demi demande 194 00:09:26,560 --> 00:09:28,400 déjà en place pour vous. 195 00:09:28,400 --> 00:09:32,230 Et par là, je veux dire que vous avez beaucoup de les fichiers qui ont déjà des fonctions, 196 00:09:32,230 --> 00:09:36,830 comme les bibliothèques, comme la fonctionnalité, et les commandes que vous pouvez exécuter dans l'ordre 197 00:09:36,830 --> 00:09:40,500 pour rendre votre vie beaucoup plus simple et plus facile. 198 00:09:40,500 --> 00:09:41,180 D'ACCORD. 199 00:09:41,180 --> 00:09:43,555 >> Donc dans ce cas, nous allons pour parler de Ruby on Rails. 200 00:09:43,555 --> 00:09:45,920 Il ya beaucoup de différents ossatures, là-bas. 201 00:09:45,920 --> 00:09:47,550 Il ya Django pour Python. 202 00:09:47,550 --> 00:09:50,990 Il ya Zend Framework ou Laravel pour PHP. 203 00:09:50,990 --> 00:09:52,390 Il ya beaucoup de différents. 204 00:09:52,390 --> 00:09:56,830 Ruby on Rails est une nouvelle assez agréable. 205 00:09:56,830 --> 00:10:01,600 Beaucoup de gens utilisent que dans des startups et ce genre d'environnement. 206 00:10:01,600 --> 00:10:04,250 Et certains de ces très gros entreprises que je montrais ici avant 207 00:10:04,250 --> 00:10:06,050 sont également en utilisant Ruby on Rails. 208 00:10:06,050 --> 00:10:10,070 >> Donc, juste pour vous donner une sens de ce qui est Ruby 209 00:10:10,070 --> 00:10:13,030 comme, puisque vous les gars sont plus habitués à, comme, C et un peu de PHP 210 00:10:13,030 --> 00:10:17,560 maintenant et Ruby va être le équivalent de votre PHP dans ce sens. 211 00:10:17,560 --> 00:10:18,380 Ce ne est pas Ruby. 212 00:10:18,380 --> 00:10:19,830 Ce est C. OK? 213 00:10:19,830 --> 00:10:22,660 Mais ce est comme le DJBHash fonction que je 214 00:10:22,660 --> 00:10:27,170 connais beaucoup de gens utilisés les fautes d'orthographe PSET. 215 00:10:27,170 --> 00:10:29,670 >> Et en Ruby, jolie un peu comme dans PHP, vous 216 00:10:29,670 --> 00:10:32,745 pourrait mettre en œuvre ce avec seulement quelques lignes de code. 217 00:10:32,745 --> 00:10:34,870 Au lieu d'avoir à se inquiéter à propos de la fonction de hachage, 218 00:10:34,870 --> 00:10:37,950 avoir à se soucier des seaux, et tout cela, vous pouvez juste dire, 219 00:10:37,950 --> 00:10:40,160 = dictionnaire Hash.net. 220 00:10:40,160 --> 00:10:44,560 Et puis vous utilisez un peu comme la même idée que PHP a. 221 00:10:44,560 --> 00:10:45,970 Et ce est pour vrai. 222 00:10:45,970 --> 00:10:48,080 Et puis si vous voulez vérifier, afin de vérifier la fonction 223 00:10:48,080 --> 00:10:51,560 serait si dictionnaire "foo" equals égaux vrai, retourne vrai. 224 00:10:51,560 --> 00:10:52,580 Et ce est tout, OK? 225 00:10:52,580 --> 00:10:54,030 >> Donc, vous remarquerez quelques différences. 226 00:10:54,030 --> 00:10:57,940 Il n'y a pas des points-virgules ici, car il y avait en C. 227 00:10:57,940 --> 00:11:00,710 Mais l'idée générale est très semblable. 228 00:11:00,710 --> 00:11:02,030 D'ACCORD? 229 00:11:02,030 --> 00:11:08,010 >> Aussi, en Ruby, il ya des pierres précieuses, qui sont des sortes des bibliothèques Ruby. 230 00:11:08,010 --> 00:11:12,460 Et Rails les poignées une très belle façon pour vous. 231 00:11:12,460 --> 00:11:15,480 Donc, si vous voulez mettre dans une bibliothèque qui 232 00:11:15,480 --> 00:11:18,670 ne emails, ou fait la messagerie texte, 233 00:11:18,670 --> 00:11:22,170 ou qui ne l'intégration avec Facebook, ou tout genre de chose 234 00:11:22,170 --> 00:11:24,374 comme ça pour votre application, ce est très, très facile. 235 00:11:24,374 --> 00:11:26,790 Les chances sont que vous pouvez trouver quelque chose comme sur Internet. 236 00:11:26,790 --> 00:11:30,300 Et ils font juste quelque chose comme ce qui put 237 00:11:30,300 --> 00:11:32,290 bijou que vous souhaitez utiliser dans le fichier de bijou. 238 00:11:32,290 --> 00:11:33,749 Et puis Rails installe tout. 239 00:11:33,749 --> 00:11:36,456 Vous ne avez pas à vous soucier de tout de cela, donc ce est vraiment cool. 240 00:11:36,456 --> 00:11:38,500 Aussi, il ya beaucoup, beaucoup d'aide en ligne. 241 00:11:38,500 --> 00:11:40,485 Ainsi vous pouvez trouver beaucoup de choses. 242 00:11:40,485 --> 00:11:42,360 Si vous avez une erreur, vous pouvez il suffit de Google, 243 00:11:42,360 --> 00:11:45,090 et il va être très facile à obtenir de l'aide. 244 00:11:45,090 --> 00:11:47,200 >> Et ce est beaucoup de fun-- exactly-- parce que vous 245 00:11:47,200 --> 00:11:51,420 ne ont pas à se inquiéter de la faible niveau détails, la mise en œuvre de tables de hachage 246 00:11:51,420 --> 00:11:58,080 et d'avoir à venir avec tous les en-têtes HTTP, et beaucoup de choses, 247 00:11:58,080 --> 00:12:00,197 et même certaines choses de niveau plus élevé. 248 00:12:00,197 --> 00:12:02,030 Vous ne avez pas à vous soucier à ce sujet dans Rails. 249 00:12:02,030 --> 00:12:04,010 Il le fait très, très bien pour vous. 250 00:12:04,010 --> 00:12:07,490 Et nous allons montrer que plus concrètement très bientôt. 251 00:12:07,490 --> 00:12:08,130 D'ACCORD. 252 00:12:08,130 --> 00:12:09,750 >> Donc un peu de Ruby nouveau. 253 00:12:09,750 --> 00:12:11,420 Donc, ce est juste comme C, comme je le disais. 254 00:12:11,420 --> 00:12:14,170 Au lieu de printf, nous disons "Met", qui est "mis chaîne." 255 00:12:14,170 --> 00:12:18,100 Il met une chaîne à la console. 256 00:12:18,100 --> 00:12:20,601 Et dans ce cas, nous sommes juste l'impression "Bonjour tout le monde." 257 00:12:20,601 --> 00:12:23,100 Nous ne avons pas besoin des parenthèses, mais ce est à peu près similaire. 258 00:12:23,100 --> 00:12:26,190 >> Et puis si vous voulez de faire quelque chose ici, 259 00:12:26,190 --> 00:12:30,450 comme imprimer un tas de "smalls" et un tas de "bigs" dans une boucle While, 260 00:12:30,450 --> 00:12:32,060 ce est un peu comme en C, non? 261 00:12:32,060 --> 00:12:35,090 Vous ne avez pas les params, mais ce est à peu près la même. 262 00:12:35,090 --> 00:12:37,300 L'indentation ici chefs d'accusation, donc x est égal à 1. 263 00:12:37,300 --> 00:12:41,250 Puis alors que X est plus petit que 50-- se agit d'un cas, ce est une Else. 264 00:12:41,250 --> 00:12:42,810 Ce est un peu comme ce que vous avez vu. 265 00:12:42,810 --> 00:12:47,150 >> Et puis x + = 1 est juste incrémentation, un peu comme faire l'++ que vous pouvez 266 00:12:47,150 --> 00:12:50,213 faire en C. Mais ce est assez bien ce que vous avez vu dans C. 267 00:12:50,213 --> 00:12:52,380 Il ne devrait pas être trop compliqué. 268 00:12:52,380 --> 00:12:54,320 Mais il est plus puissant. 269 00:12:54,320 --> 00:13:00,100 Donc, il ya quelques commandes ici qui sont certainement un peu plus récente. 270 00:13:00,100 --> 00:13:05,110 >> Ainsi, par exemple, «puts». 271 00:13:05,110 --> 00:13:08,680 Vous pouvez utiliser cette notation hashtag ici pour simplement imprimer quelque chose-- 272 00:13:08,680 --> 00:13:13,490 un peu comme ce que vous feriez si l'% D ou% C ou un peu comme ça. 273 00:13:13,490 --> 00:13:17,600 Et vous pouvez réellement mettre un Si juste après la déclaration. 274 00:13:17,600 --> 00:13:21,180 Donc, je ne veux que faire this-- Si x est supérieur à 3. 275 00:13:21,180 --> 00:13:24,129 Alors, pourquoi aurais-je à faire un ensemble Si le bloc? 276 00:13:24,129 --> 00:13:24,670 Je ne sais pas. 277 00:13:24,670 --> 00:13:28,880 Je peux juste imprimer ce que si x est égal à supérieur à 3. 278 00:13:28,880 --> 00:13:32,740 Donc, ce est une façon d'une ligne de le faire en Ruby. 279 00:13:32,740 --> 00:13:35,570 >> Une liste est en Ruby quelque chose de très polyvalent. 280 00:13:35,570 --> 00:13:38,110 Donc, vous ne avez pas vraiment besoin d'avoir un seul type. 281 00:13:38,110 --> 00:13:40,674 Vous pouvez avoir une chaîne, puis quelques chiffres, et tout. 282 00:13:40,674 --> 00:13:42,590 Et si vous voulez ajouter quelque chose à une liste, 283 00:13:42,590 --> 00:13:46,860 vous pouvez simplement utiliser cette notation ici. 284 00:13:46,860 --> 00:13:48,310 >> Et si vous voulez parcourir. 285 00:13:48,310 --> 00:13:56,200 A peu près la 4each en PHP, ici, vous avoir une liste et vous faites "List.each faire." 286 00:13:56,200 --> 00:13:59,464 Et cette «elem,« ce est comme le nom de chaque élément 287 00:13:59,464 --> 00:14:00,880 que je vais avoir dans ma liste. 288 00:14:00,880 --> 00:14:03,890 Et puis je peux juste "met élém." 289 00:14:03,890 --> 00:14:07,130 Et "puts" assez bien poignées mettre pour vous, de l'imprimer. 290 00:14:07,130 --> 00:14:09,920 Il ne importe pas si ce est une chaîne ou un int. 291 00:14:09,920 --> 00:14:12,790 Il va travailler que pour vous. 292 00:14:12,790 --> 00:14:14,270 Droite? 293 00:14:14,270 --> 00:14:14,790 Cool. 294 00:14:14,790 --> 00:14:19,980 >> Et tout comme PHP, Ruby et HTML également intégrer très, très bien. 295 00:14:19,980 --> 00:14:23,340 Et ici, il ya une certaine HTML avec Ruby en elle. 296 00:14:23,340 --> 00:14:25,860 Nous avons donc une étiquette de corps comme en HTML. 297 00:14:25,860 --> 00:14:28,270 Et si nous voulons vérifier que l'utilisateur est, par exemple, 298 00:14:28,270 --> 00:14:35,730 connecté, nous pouvons simplement dire, à partir de Ruby, si user.logged_in ?, fin de Ruby. 299 00:14:35,730 --> 00:14:39,240 Imprimer cette chose entière, qui a une certaine Ruby en elle, qui est juste 300 00:14:39,240 --> 00:14:42,230 un peu comme ça syntaxe pour PHP qui affiche une variable. 301 00:14:42,230 --> 00:14:43,380 Disons imprimer le user.name. 302 00:14:43,380 --> 00:14:48,870 >> Alors, bienvenue, Stephen, l'intérieur d'un div HTML. 303 00:14:48,870 --> 00:14:53,760 Et à la fin, nous avons une «fin» et Du code Ruby, qui signifie que ce est mon 304 00:14:53,760 --> 00:14:54,470 Si le bloc. 305 00:14:54,470 --> 00:14:55,060 D'ACCORD? 306 00:14:55,060 --> 00:14:57,684 Donc, ce est juste comme une transparente intégration entre Ruby et HTML. 307 00:14:57,684 --> 00:15:00,056 308 00:15:00,056 --> 00:15:01,430 Il ya aussi beaucoup de ressources. 309 00:15:01,430 --> 00:15:06,290 Mais avant de passer, ne importe qui Pour toute question sur Ruby, quelque chose? 310 00:15:06,290 --> 00:15:08,960 D'ACCORD. 311 00:15:08,960 --> 00:15:12,250 >> Il ya beaucoup de ressources en ligne à tryruby.org, Code Académie, 312 00:15:12,250 --> 00:15:18,740 ruby-lang.org, où vous pouvez essayer sur votre navigateur avant de vous 313 00:15:18,740 --> 00:15:22,310 dis, oh, OK, je vais utiliser Ruby pour mon projet final. 314 00:15:22,310 --> 00:15:24,020 Et donc certainement donner à ceux un essai. 315 00:15:24,020 --> 00:15:26,510 Tous ces diapositives sont va être disponible en ligne, 316 00:15:26,510 --> 00:15:28,950 de sorte que vous pouvez simplement télécharger. 317 00:15:28,950 --> 00:15:30,115 Et oui? 318 00:15:30,115 --> 00:15:31,889 >> AUDIENCE: [inaudible] ce que vous venez montré 319 00:15:31,889 --> 00:15:36,851 été et le code HTML intégrés dans à cette notion de Model View 320 00:15:36,851 --> 00:15:37,350 Contrôleur? 321 00:15:37,350 --> 00:15:37,610 >> GABRIEL GUIMARAES: Oui. 322 00:15:37,610 --> 00:15:40,290 Nous le ferons dans une seconde quand nous montrons notre exemple, OK? 323 00:15:40,290 --> 00:15:41,290 Merci pour la question. 324 00:15:41,290 --> 00:15:44,760 Donc la question était essentiellement si nous peut montrer cette intégration de Ruby 325 00:15:44,760 --> 00:15:49,230 en HTML dans le modèle Voir cadre contrôleur. 326 00:15:49,230 --> 00:15:51,710 >> Donc, l'idée du modèle Cadre View Controller 327 00:15:51,710 --> 00:15:55,740 est ce est essentiellement une philosophie, tout comme Stephen montré ici. 328 00:15:55,740 --> 00:15:58,177 Et ce ne est pas quelque chose que vous avez à faire, 329 00:15:58,177 --> 00:16:00,510 mais ce est quelque chose qui rend votre vie tellement plus simple. 330 00:16:00,510 --> 00:16:04,170 Et Ruby on Rails est construit autour de cette philosophie de code. 331 00:16:04,170 --> 00:16:06,320 Donc, nous allons montrer un exemple très bientôt. 332 00:16:06,320 --> 00:16:07,340 >> Donc Rails est amour. 333 00:16:07,340 --> 00:16:09,140 Beaucoup de gens l'utilisent, comme je le disais. 334 00:16:09,140 --> 00:16:10,510 Et ce est vraiment amusant. 335 00:16:10,510 --> 00:16:12,360 Vous devriez certainement donner un essai. 336 00:16:12,360 --> 00:16:15,120 MVC rend tout plus simple. 337 00:16:15,120 --> 00:16:18,110 Ainsi, le Model View Controller, les choses séparent 338 00:16:18,110 --> 00:16:21,450 et en mettant une personne, en soi, ou une partie de votre demande 339 00:16:21,450 --> 00:16:24,850 de faire chacun des différents emplois que vous application doit faire. 340 00:16:24,850 --> 00:16:26,676 Et moins de temps passé sur les problèmes de bas niveau. 341 00:16:26,676 --> 00:16:27,800 Et très populaire en ce moment. 342 00:16:27,800 --> 00:16:29,917 Nous avons Rails 4.0, qui est une nouvelle version. 343 00:16:29,917 --> 00:16:31,500 Et il est livré avec un tas de trucs cool. 344 00:16:31,500 --> 00:16:32,562 Une autre question. 345 00:16:32,562 --> 00:16:34,490 >> PUBLIC: Une autre question. 346 00:16:34,490 --> 00:16:39,310 Ruby on Rails rapport Ruby on Rails Grails. 347 00:16:39,310 --> 00:16:40,230 >> GABRIEL GUIMARAES: OK. 348 00:16:40,230 --> 00:16:42,252 La question était, Ruby on Rails contre Ruby-- 349 00:16:42,252 --> 00:16:42,960 AUDIENCE: Grails. 350 00:16:42,960 --> 00:16:43,490 Ruby? 351 00:16:43,490 --> 00:16:44,490 >> GABRIEL GUIMARAES: Ouais. 352 00:16:44,490 --> 00:16:45,955 Donc, Ruby est un langage. 353 00:16:45,955 --> 00:16:46,745 >> AUDIENCE: Non 354 00:16:46,745 --> 00:16:50,360 Je vous demande de comparer une langue et d'un cadre, Ruby on Rails, 355 00:16:50,360 --> 00:16:52,975 avec une autre langue populaire framework-- Grails-- avec Ruby 356 00:16:52,975 --> 00:16:53,310 on Rails. 357 00:16:53,310 --> 00:16:53,720 >> GABRIEL GUIMARAES: OK. 358 00:16:53,720 --> 00:16:54,480 Désolé. 359 00:16:54,480 --> 00:16:57,390 La question a été, comparer Ruby et Ruby on Rails 360 00:16:57,390 --> 00:16:59,750 à un autre cadre et another-- 361 00:16:59,750 --> 00:17:01,022 >> AUDIENCE: Ruby. 362 00:17:01,022 --> 00:17:01,954 C'est OK. 363 00:17:01,954 --> 00:17:03,820 Si vous ne savez pas, ce est très bien. 364 00:17:03,820 --> 00:17:05,359 >> GABRIEL GUIMARAES: Comme, ce que je comprends, ce est that-- 365 00:17:05,359 --> 00:17:07,080 >> PUBLIC: Il ya un autre cadres appelés Grails. 366 00:17:07,080 --> 00:17:07,700 >> GABRIEL GUIMARAES: Oh, Grails. 367 00:17:07,700 --> 00:17:08,650 Je ne ai jamais entendu parler de lui. 368 00:17:08,650 --> 00:17:09,640 Désolé. 369 00:17:09,640 --> 00:17:11,690 Je ne ai jamais entendu parler de Groovy on Rails. 370 00:17:11,690 --> 00:17:12,744 Désolé. 371 00:17:12,744 --> 00:17:14,869 >> PUBLIC: Ce est beaucoup mieux intégrée avec Java. 372 00:17:14,869 --> 00:17:15,450 >> GABRIEL GUIMARAES: Je vois. 373 00:17:15,450 --> 00:17:17,555 >> PUBLIC: Je suis juste curieux à propos de certaines personnes que je connais like-- 374 00:17:17,555 --> 00:17:20,240 >> GABRIEL GUIMARAES: Non, je ne ai jamais entendu parler de celui-là, malheureusement. 375 00:17:20,240 --> 00:17:20,700 Grails. 376 00:17:20,700 --> 00:17:21,410 >> AUDIENCE: Et certaines personnes évidemment comme Ruby on Rails. 377 00:17:21,410 --> 00:17:22,640 >> GABRIEL GUIMARAES: Je ai Ruby on Rails utilisé beaucoup. 378 00:17:22,640 --> 00:17:24,790 Je ai utilisé un certain Django avec Python, comme je le disais. 379 00:17:24,790 --> 00:17:26,329 Je ai utilisé un certain Laravel. 380 00:17:26,329 --> 00:17:29,490 Mais je ne avais pas utilisé Groovy on Rails. 381 00:17:29,490 --> 00:17:31,630 Désolé. 382 00:17:31,630 --> 00:17:34,040 Et il est très populaire maintenant avec Rails 4.0. 383 00:17:34,040 --> 00:17:38,180 Comme, certaines des choses que Rails le fait pour vous, par exemple, ce est vous 384 00:17:38,180 --> 00:17:43,650 avoir beaucoup de fichiers CSS et beaucoup de fichiers JavaScript. 385 00:17:43,650 --> 00:17:45,790 Et vous pouvez les traiter comme séparée et tout. 386 00:17:45,790 --> 00:17:50,010 >> Mais alors il avoir automatiquement lorsque vous envoyez votre code à la production, 387 00:17:50,010 --> 00:17:52,770 il compile automatiquement tous dans un seul fichier 388 00:17:52,770 --> 00:17:55,150 Ce est sans aucun minified les espaces, de sorte qu'il prend 389 00:17:55,150 --> 00:17:59,400 moins d'espace dans votre application, de sorte que vous pouvez vraiment évoluer les choses beaucoup. 390 00:17:59,400 --> 00:18:04,380 Ce est pourquoi ces grandes entreprises comme Twitter et GitHub 391 00:18:04,380 --> 00:18:10,220 utilisent Rails, car il fait tout que, pour vous, ce qui est vraiment cool. 392 00:18:10,220 --> 00:18:12,840 >> Une chose qui est très, très, très intimidante 393 00:18:12,840 --> 00:18:18,450 pour les personnes, y compris moi, qui essaient de travailler 394 00:18:18,450 --> 00:18:22,430 avec un cadre au début, est que lorsque vous commencez une demande, 395 00:18:22,430 --> 00:18:24,440 vous allez voir un tas de fichiers. 396 00:18:24,440 --> 00:18:28,460 Comme, lorsque vous créez Rails Nouvelle, mon application, 397 00:18:28,460 --> 00:18:31,710 vous allez voir tous ces folders-- application, bin, config, db, lib, 398 00:18:31,710 --> 00:18:32,482 connecter, public. 399 00:18:32,482 --> 00:18:33,690 Comme, beaucoup, beaucoup de choses. 400 00:18:33,690 --> 00:18:35,030 >> Et le temps d'abord, je vu que, je étais comme, 401 00:18:35,030 --> 00:18:36,570 OK, je ne ai aucune idée de ce qui se passe. 402 00:18:36,570 --> 00:18:38,890 Je veux juste créer un site Web avec "Bonjour tout le monde," 403 00:18:38,890 --> 00:18:41,730 et cela me donne, comme, 100 milliards de pages différents. 404 00:18:41,730 --> 00:18:43,070 Je ne sais pas ce qui se passe. 405 00:18:43,070 --> 00:18:47,460 Alors se il vous plaît ne soyez pas trop intimidé par cela. 406 00:18:47,460 --> 00:18:53,699 >> L'idée est qu'il a fait demi- d'une maison là pour vous déjà. 407 00:18:53,699 --> 00:18:55,490 Il dispose d'un ensemble de cadre pour que vous avez déjà. 408 00:18:55,490 --> 00:18:56,948 Ce est pourquoi il ya tant de nombreux fichiers. 409 00:18:56,948 --> 00:19:00,150 Mais la bonne chose est qu'il sépare chacun d'eux très bien. 410 00:19:00,150 --> 00:19:03,370 Les chances sont que vous ne avez pas à vous soucier à propos de la plupart de ces dossiers. 411 00:19:03,370 --> 00:19:05,820 >> Le plus important, je dirait, est le dossier de l'application, 412 00:19:05,820 --> 00:19:07,147 où votre application vit réellement. 413 00:19:07,147 --> 00:19:09,730 Ainsi, la configuration, vous allez avoir de configurer certaines choses, 414 00:19:09,730 --> 00:19:12,840 comme votre base de données et des choses comme quel type de base de données que vous utilisez. 415 00:19:12,840 --> 00:19:17,430 Mais à part ça, comme la plupart des votre travail va être fait en application. 416 00:19:17,430 --> 00:19:21,620 Donc, dans l'application, vous avez des actifs, des contrôleurs, aides, les expéditeurs, les modèles, vues. 417 00:19:21,620 --> 00:19:24,460 Alors là, vous commencez à voir que contrôleurs, modèles et vues viennent 418 00:19:24,460 --> 00:19:25,410 en jeu. 419 00:19:25,410 --> 00:19:27,270 >> Expéditeurs sont simplement si vous vouloir envoyer des emails. 420 00:19:27,270 --> 00:19:29,400 Helpers si vous voulez créer des fonctions 421 00:19:29,400 --> 00:19:32,050 que vous utilisez beaucoup dans la vue. 422 00:19:32,050 --> 00:19:34,490 Donc, vous les mettez dans aides. 423 00:19:34,490 --> 00:19:39,000 Et actifs est fondamentalement tous vos images, l'ensemble de votre CSS, 424 00:19:39,000 --> 00:19:41,200 tout votre JavaScript et comme ces sortes 425 00:19:41,200 --> 00:19:43,110 des choses qui sont envoyés au client. 426 00:19:43,110 --> 00:19:45,500 Et tout ce qui est dans les actifs, que je ai dit avant, obtient minified. 427 00:19:45,500 --> 00:19:45,940 Il est compilé. 428 00:19:45,940 --> 00:19:49,189 Et vous ne avez pas vraiment à se inquiéter que quand il va de code de production. 429 00:19:49,189 --> 00:19:49,770 Cool. 430 00:19:49,770 --> 00:19:54,205 >> Maintenant Zack va venir, et il est va faire un exemple de Twitter50. 431 00:19:54,205 --> 00:19:54,970 >> AUDIENCE: Woo-hoo! 432 00:19:54,970 --> 00:19:56,726 >> ZACK CHAUVIN: Awesome. 433 00:19:56,726 --> 00:20:00,180 Je ai donc eu la chance de travailler avec Ruby on Rails cet été. 434 00:20:00,180 --> 00:20:01,580 Ce est un cadre incroyable. 435 00:20:01,580 --> 00:20:03,580 Je suis très partielle à elle. 436 00:20:03,580 --> 00:20:09,770 Et je vais vous montrer un peu de un exemple de ce que pourrait ressembler. 437 00:20:09,770 --> 00:20:11,020 Sautez par-dessus à Chrome. 438 00:20:11,020 --> 00:20:16,350 Donc, ce est un exemple de très simple Ruby on Rails Application-- quelque chose 439 00:20:16,350 --> 00:20:19,690 comme ce est quelque chose que Ruby excelle vraiment 440 00:20:19,690 --> 00:20:24,070 that-- juste où votre modèles sont très bien définis. 441 00:20:24,070 --> 00:20:27,150 >> Dans cet exemple, vous verrez deux modèles différents, qui 442 00:20:27,150 --> 00:20:30,380 sont que nous avons des utilisateurs et nous avons tweets. 443 00:20:30,380 --> 00:20:33,480 Donc, ce est Twitter50, Propre Twitter de Harvard. 444 00:20:33,480 --> 00:20:36,820 Comme vous pouvez le voir, je suis connecté en tantzack. 445 00:20:36,820 --> 00:20:38,860 Et je suis capable de faire de nouveaux tweets. 446 00:20:38,860 --> 00:20:42,266 Donc je think-- «Ce est un" - pardon? 447 00:20:42,266 --> 00:20:43,182 AUDIENCE: [inaudible]. 448 00:20:43,182 --> 00:20:44,061 ZACK CHAUVIN: Oh, OK. 449 00:20:44,061 --> 00:20:45,060 Besoin d'arrêter le serveur. 450 00:20:45,060 --> 00:20:47,480 Excellente. 451 00:20:47,480 --> 00:20:49,630 Donc nous sommes ici. 452 00:20:49,630 --> 00:20:52,520 Comme vous pouvez le voir, nous avons notre Application Twitter ici. 453 00:20:52,520 --> 00:20:55,020 Et ce est super facile de démarrer le serveur. 454 00:20:55,020 --> 00:20:57,991 Nous allons juste faire "serveur de rails." 455 00:20:57,991 --> 00:20:58,490 Grande. 456 00:20:58,490 --> 00:20:58,990 D'ACCORD. 457 00:20:58,990 --> 00:21:00,830 Merci pour cela. 458 00:21:00,830 --> 00:21:02,200 Alors maintenant, nous sommes en cours d'exécution. 459 00:21:02,200 --> 00:21:06,120 >> Et nous disons: «Ce est un séminaire génial. " 460 00:21:06,120 --> 00:21:08,870 Et nous allons voir ce qui se passe. 461 00:21:08,870 --> 00:21:10,020 Donc, nous allons Tweet ce sujet. 462 00:21:10,020 --> 00:21:13,390 Tout en bas, vous pouvez voir il ya maintenant plus de trois tweets. 463 00:21:13,390 --> 00:21:15,980 Nous avons donc un peu la pagination passe. 464 00:21:15,980 --> 00:21:19,640 Et nous avons ce tweet. 465 00:21:19,640 --> 00:21:24,010 Et je peux aussi chercher dans mon tweets-- pour cette recherche et les deux 466 00:21:24,010 --> 00:21:27,960 ceux qui ont la parole «Ceci» en eux manifester. 467 00:21:27,960 --> 00:21:30,860 Nous pouvons également supprimer tweets par cliquant sur le petit bouton Supprimer. 468 00:21:30,860 --> 00:21:36,440 Et évidemment, je ne peux supprimer le poste qui me appartenait. 469 00:21:36,440 --> 00:21:39,030 >> Déjà, nous avons presque fonctionnalité de Twitter. 470 00:21:39,030 --> 00:21:42,000 Comme, quand vous pensez à ce sujet, Twitter vraiment ne fait pas tant que ça. 471 00:21:42,000 --> 00:21:44,280 Il a les utilisateurs, il a tweets. 472 00:21:44,280 --> 00:21:47,690 Il ya certaines fonctionnalités plus complexe. 473 00:21:47,690 --> 00:21:52,960 Mais quand vous avez vraiment descendez à elle, il est tout à fait une application simple Ruby on Rails. 474 00:21:52,960 --> 00:21:57,560 Et quelque chose comme ça, avec un bonne compréhension de Ruby on Rails, 475 00:21:57,560 --> 00:22:00,680 Vous pourriez probablement faire en une heure ou deux. 476 00:22:00,680 --> 00:22:04,210 >> Et ce est vraiment Retour à la mantra Ruby, 477 00:22:04,210 --> 00:22:07,540 qui est convention plutôt que configuration. 478 00:22:07,540 --> 00:22:10,965 Donc, retour dans la journée, les gens, ne importe quand ils voulaient faire de ce site, 479 00:22:10,965 --> 00:22:12,340 devra commencer à partir de zéro. 480 00:22:12,340 --> 00:22:13,740 OK, je veux faire un site web. 481 00:22:13,740 --> 00:22:15,970 Faisons ce fichier et ce fichier et ce fichier. 482 00:22:15,970 --> 00:22:19,180 >> Avec Ruby on Rails, il ya rien de tout cela. 483 00:22:19,180 --> 00:22:21,170 Vous dites, je veux une nouvelle application. 484 00:22:21,170 --> 00:22:25,010 Et tout comme Gabe nous a montré, il crée la structure de fichier entier pour nous. 485 00:22:25,010 --> 00:22:27,490 Et nous venons de changer la petites pièces que nous doivent. 486 00:22:27,490 --> 00:22:31,570 Nous personnalisons ce que est unique à propos de notre application. 487 00:22:31,570 --> 00:22:32,250 Cool. 488 00:22:32,250 --> 00:22:38,540 Pour en revenir à notre présentation preview-- intéressant. 489 00:22:38,540 --> 00:22:41,408 490 00:22:41,408 --> 00:22:42,724 Où dois-je présenter? 491 00:22:42,724 --> 00:22:43,640 AUDIENCE: Plein écran. 492 00:22:43,640 --> 00:22:45,715 En haut à droite. 493 00:22:45,715 --> 00:22:48,480 >> ZACK CHAUVIN: Excellent. 494 00:22:48,480 --> 00:22:48,990 Cool. 495 00:22:48,990 --> 00:22:49,490 D'ACCORD. 496 00:22:49,490 --> 00:22:51,480 Ainsi, tout d'abord, le modèle. 497 00:22:51,480 --> 00:22:54,100 Stephen a fait un super travail de décrivant MVC. 498 00:22:54,100 --> 00:22:57,980 Et maintenant, nous allons porter ce retour à Ruby on Rails. 499 00:22:57,980 --> 00:23:00,730 Ainsi, le modèle que vous pouvez type de penser que la base de données. 500 00:23:00,730 --> 00:23:04,870 Vous avez été voir cela dans CS50 Finance, où les magasins de modèle 501 00:23:04,870 --> 00:23:07,590 les informations sur combien de stocks que vous avez, 502 00:23:07,590 --> 00:23:10,986 ou toutes les transactions que vous avez faites. 503 00:23:10,986 --> 00:23:12,860 Ceci est un exemple de une ligne de la façon dont vous le feriez 504 00:23:12,860 --> 00:23:15,640 y prendre pour faire un nouveau modèle dans Rails. 505 00:23:15,640 --> 00:23:17,102 Donc, je veux un utilisateur. 506 00:23:17,102 --> 00:23:19,060 Il va avoir un e-mail, qui est une chaîne, 507 00:23:19,060 --> 00:23:20,990 et un mot de passe, qui est également la chaîne. 508 00:23:20,990 --> 00:23:27,150 Donc, ce est comme je veux those-- chaque rangée dans ma table des utilisateurs ressembler à ça. 509 00:23:27,150 --> 00:23:30,730 >> Une partie vraiment génial à propos de Rails est qu'il 510 00:23:30,730 --> 00:23:33,755 rend inutile écrire ne importe quel SQL à peu près. 511 00:23:33,755 --> 00:23:38,640 Combien d'entre vous les gars aimé écrit SQL dans PSET 7? 512 00:23:38,640 --> 00:23:39,770 Exactement. 513 00:23:39,770 --> 00:23:41,840 SQL ne est pas très convivial. 514 00:23:41,840 --> 00:23:46,470 Et tout ce que Rails fait abstraction de suite avec ces commandes très faciles. 515 00:23:46,470 --> 00:23:51,580 Ainsi, par exemple, si nous avons un utilisateur, un utilisateur a de nombreux tweets. 516 00:23:51,580 --> 00:23:56,580 Et chacun de ceux tweets appartient à un utilisateur. 517 00:23:56,580 --> 00:23:59,520 >> Donc, si vous regardez ici, ce est notre modèle pour notre tweet. 518 00:23:59,520 --> 00:24:02,750 Et tout ce que nous avons à dire est cette seule line-- Je suis un tweet 519 00:24:02,750 --> 00:24:05,090 et je appartiens à un utilisateur. 520 00:24:05,090 --> 00:24:10,160 Et avec cette ligne simple et une peu de configuration de base de données, 521 00:24:10,160 --> 00:24:12,990 Rails établit cette relation. 522 00:24:12,990 --> 00:24:17,450 À tout moment, je peux juste dire, zack.tweets, comme, me donner tout de tweets Zack. 523 00:24:17,450 --> 00:24:19,420 Pas SQL. 524 00:24:19,420 --> 00:24:20,040 Super facile. 525 00:24:20,040 --> 00:24:26,580 Encore une fois, ce est la convention sur configuration entrée en jeu. 526 00:24:26,580 --> 00:24:29,770 >> Vous pouvez voir un peu d'un exemple de Ruby ici. 527 00:24:29,770 --> 00:24:32,740 Comme Gave dit, écrit Ruby est un peu comme écrire en anglais. 528 00:24:32,740 --> 00:24:35,540 Ce est un langage de très haut niveau, et il rend vraiment facile 529 00:24:35,540 --> 00:24:42,380 pour nous de dire des choses comme, je veux assurez-vous que ce tweet a un corps. 530 00:24:42,380 --> 00:24:43,740 Sa présence est vrai. 531 00:24:43,740 --> 00:24:47,170 Et je veux me assurer que cette tweeter, tout comme normale Twitter, 532 00:24:47,170 --> 00:24:49,020 a une longueur maximum de 140. 533 00:24:49,020 --> 00:24:52,800 Ce est super-intuitive, un vraiment super langue. 534 00:24:52,800 --> 00:24:54,590 >> Ensuite nous avons la vue. 535 00:24:54,590 --> 00:24:57,510 Donc, il se agit de HTML et CSS. 536 00:24:57,510 --> 00:25:00,490 Et voici un exemple de vue. 537 00:25:00,490 --> 00:25:05,600 Donc, Ruby on Rails sorte de façon transparente intègre à la fois Ruby et HTML 538 00:25:05,600 --> 00:25:08,880 afin de générer ce que nous voulons sur la page. 539 00:25:08,880 --> 00:25:11,380 Donc, ce est un exemple de notre mise en page. 540 00:25:11,380 --> 00:25:15,710 Donc vous pouvez voir quelques balises que vous les gars sont habitués, comme le HTML, le corps, 541 00:25:15,710 --> 00:25:17,250 toutes ces bonnes choses. 542 00:25:17,250 --> 00:25:21,760 >> Et juste ici, cependant, nous intégrer certains Ruby en disant, 543 00:25:21,760 --> 00:25:25,390 se il ya un message à afficher, puis afficher le message dans une div. 544 00:25:25,390 --> 00:25:28,060 Donc, je ne vais pas trop entrer dans cela. 545 00:25:28,060 --> 00:25:31,190 Mais ce est en général un page qui obtient rendu on-- 546 00:25:31,190 --> 00:25:33,960 et ne importe quelle page vous êtes sur, celui-ci se rendait. 547 00:25:33,960 --> 00:25:38,110 Donc, ce est ce qui est inclus toujours. 548 00:25:38,110 --> 00:25:38,980 Cool. 549 00:25:38,980 --> 00:25:42,730 >> Un autre exemple de cela est view-- celui où elle a choisi tous les tweets. 550 00:25:42,730 --> 00:25:45,630 Et certaines de ces choses pourrait ressembler assez familier. 551 00:25:45,630 --> 00:25:50,050 Ainsi, par exemple, ici, nous sommes une boucle à travers chacun des tweets, 552 00:25:50,050 --> 00:25:51,960 et nous les imprimer. 553 00:25:51,960 --> 00:25:54,320 Voici donc où nous en sommes imprimer le corps. 554 00:25:54,320 --> 00:26:00,910 Et si la user-- de le tweet voici une véritable exemple de SQL ne est impliqué. 555 00:26:00,910 --> 00:26:04,390 Je vous demande, est-ce l'utilisateur de l'utilisateur Tweet actuelle? 556 00:26:04,390 --> 00:26:06,030 Puis montrer un lien pour le supprimer. 557 00:26:06,030 --> 00:26:06,880 Ce est super simple. 558 00:26:06,880 --> 00:26:09,670 559 00:26:09,670 --> 00:26:10,920 >> Le contrôleur. 560 00:26:10,920 --> 00:26:14,390 Donc, ce est, encore une fois, l'interface entre le modèle et la vue. 561 00:26:14,390 --> 00:26:17,820 Ce est celui qui fait le sale boulot être de interacting-- l'intermédiaire. 562 00:26:17,820 --> 00:26:20,980 Il charge l'information pour le considérons, que nous verrons dans un sec. 563 00:26:20,980 --> 00:26:23,850 Et afin d'interagir avec le modèle, il 564 00:26:23,850 --> 00:26:29,170 Appelle les méthodes de modèles, qui sont ce que vous les gars êtes familier fonctions. 565 00:26:29,170 --> 00:26:31,490 >> Ainsi, par exemple, il se agit le contrôleur de notre tweet. 566 00:26:31,490 --> 00:26:33,930 Il peut sembler un peu intimidante en ce moment. 567 00:26:33,930 --> 00:26:38,240 Mais il est en fait super-intuitive une fois que vous commencez à plonger. 568 00:26:38,240 --> 00:26:42,990 Ainsi, par exemple, dans notre index, ce est où nous voulons montrer tous les tweets. 569 00:26:42,990 --> 00:26:46,910 Et cette ligne essentiellement demande juste pour tous les tweets. 570 00:26:46,910 --> 00:26:50,300 Et puis on initialise la fois les nouveaux tweet-- Donc, comme 571 00:26:50,300 --> 00:26:52,320 se ils veulent créer un nouveau tweet sur cette page. 572 00:26:52,320 --> 00:26:54,250 >> Et il demande ce que l'utilisateur actuel. 573 00:26:54,250 --> 00:26:58,850 Et cela est très semblable à la rendu que vous avez vu dans PSET 7, 574 00:26:58,850 --> 00:27:02,230 où il est juste une sorte de dire l'view-- ce est un peu comme, 575 00:27:02,230 --> 00:27:06,284 passant les variables que vous êtes allez avoir besoin dans la vue à la vue. 576 00:27:06,284 --> 00:27:08,200 Et il ya tout un tas de différentes méthodes 577 00:27:08,200 --> 00:27:10,410 que le contrôleur de ce tweet peut gérer. 578 00:27:10,410 --> 00:27:12,495 >> Mais vraiment, Rails ne un excellent travail de type 579 00:27:12,495 --> 00:27:18,910 d'entre eux se divisant en différents actions que votre contrôleur pourrait faire. 580 00:27:18,910 --> 00:27:23,800 Y at-il des questions au sujet l'une des pièces de MVC Rails? 581 00:27:23,800 --> 00:27:25,550 Type de juste une brise par. 582 00:27:25,550 --> 00:27:29,250 Alors vous les gars pouvez vérifier il sur votre propre. 583 00:27:29,250 --> 00:27:30,106 Impressionnant. 584 00:27:30,106 --> 00:27:31,200 Nous allons continuer. 585 00:27:31,200 --> 00:27:32,546 >> Donc, l'installation Rails. 586 00:27:32,546 --> 00:27:35,170 L'installation de rampes peuvent être, comme, une des parties les plus redoutables 587 00:27:35,170 --> 00:27:37,830 de l'ensemble des Rails processus, malheureusement. 588 00:27:37,830 --> 00:27:40,450 Mais évidemment, tous nous sommes là pour les aider. 589 00:27:40,450 --> 00:27:42,590 Et une fois que ce est là-bas, beaucoup de grandes ressources, 590 00:27:42,590 --> 00:27:45,100 Gabe comme mentionné, pour commencer. 591 00:27:45,100 --> 00:27:47,230 Voici les liens qui vous aurez besoin pour 592 00:27:47,230 --> 00:27:51,460 pour télécharger Rails pour l'obtenir installé sur votre machine. 593 00:27:51,460 --> 00:27:54,240 De toute évidence, il est disponible à la fois pour Windows et Mac 594 00:27:54,240 --> 00:27:55,600 et l'appareil de CS50. 595 00:27:55,600 --> 00:27:58,520 596 00:27:58,520 --> 00:28:00,020 Questions sur tout ce que nous ont dit? 597 00:28:00,020 --> 00:28:04,265 598 00:28:04,265 --> 00:28:06,690 >> AUDIENCE: je serais intéresse, actually-- 599 00:28:06,690 --> 00:28:10,255 donc je sais que le téléchargement logiciel est le plus grand obstacle. 600 00:28:10,255 --> 00:28:14,807 Se il ya suffisamment d'intérêt d'avoir un téléchargement mini-session ou quelque chose. 601 00:28:14,807 --> 00:28:15,640 ZACK CHAUVIN: Mm-hm. 602 00:28:15,640 --> 00:28:15,692 Ouais. 603 00:28:15,692 --> 00:28:16,900 Cela pourrait être vraiment utile. 604 00:28:16,900 --> 00:28:20,650 Si quelqu'un est vraiment enthousiaste à l'utilisation de ce pour leur projet 605 00:28:20,650 --> 00:28:26,555 ou dans l'avenir, alors nous serions certainement heureux de vous parler de cela. 606 00:28:26,555 --> 00:28:27,055 Mm-hm. 607 00:28:27,055 --> 00:28:29,530 >> PUBLIC: Une question connexe à ce que je ai demandé avant. 608 00:28:29,530 --> 00:28:32,563 Pour ceux d'entre vous qui ont fait d'autres cadres qui sont encore 609 00:28:32,563 --> 00:28:34,354 essayer de faire la même chose chose, rendre plus facile 610 00:28:34,354 --> 00:28:38,452 pour construire un site web ou un fonctionnalité, je pense que tout sens 611 00:28:38,452 --> 00:28:43,653 pourquoi nous serait on Rails rapport Zend ou d'autres cadres 612 00:28:43,653 --> 00:28:44,236 et langues. 613 00:28:44,236 --> 00:28:47,870 >> ZACK CHAUVIN: Je vais juste dire que mon $ 0,02 à ce sujet. 614 00:28:47,870 --> 00:28:49,090 Je aime Ruby on Rails. 615 00:28:49,090 --> 00:28:52,120 Je ai eu la chance de travailler à la fois PHP et Ruby on Rails. 616 00:28:52,120 --> 00:28:55,291 Je préfère de beaucoup Ruby on Rails raison de Ruby. 617 00:28:55,291 --> 00:28:56,790 Certainement, ce est une grande partie de celui-ci. 618 00:28:56,790 --> 00:28:58,140 Comme, lorsque vous êtes le choix de votre cadre, 619 00:28:58,140 --> 00:28:59,490 vous pouvez aussi choisir votre langue. 620 00:28:59,490 --> 00:29:03,510 >> Ruby est super accessible-- je pense une bien meilleure langue que PHP. 621 00:29:03,510 --> 00:29:06,250 Mais ce est le genre de préférence personnelle. 622 00:29:06,250 --> 00:29:09,360 En outre, une autre considération est la communauté derrière le cadre 623 00:29:09,360 --> 00:29:11,570 que vous travaillez avec. 624 00:29:11,570 --> 00:29:13,840 >> En ce moment, Ruby on Rails est vraiment chaud. 625 00:29:13,840 --> 00:29:16,160 Il ya des tonnes de soutien derrière elle. 626 00:29:16,160 --> 00:29:19,180 Vous postez quelque chose sur Stack Débordement d'un problème vous êtes 627 00:29:19,180 --> 00:29:22,350 ayant en Ruby on Rails, et il a répondu à. 628 00:29:22,350 --> 00:29:26,900 Encore une fois, il est open source, ce qui signifie qu'il est constamment changé. 629 00:29:26,900 --> 00:29:28,910 Il ya des tonnes de gens qui sont vraiment dédiés 630 00:29:28,910 --> 00:29:32,370 afin d'en faire une cadre vraiment génial. 631 00:29:32,370 --> 00:29:34,225 Ce est pourquoi je voudrais choisir Ruby on Rails. 632 00:29:34,225 --> 00:29:35,225 GABRIEL GUIMARAES: Ouais. 633 00:29:35,225 --> 00:29:37,562 Je dirais que l'idée derrière la plupart des cadres vous êtes 634 00:29:37,562 --> 00:29:39,770 va trouver là-bas est très, très similaires, non? 635 00:29:39,770 --> 00:29:42,210 Ainsi, le Model View Controller, le fait que notre contrôleur de 636 00:29:42,210 --> 00:29:44,793 aller à ressembler à quelque chose comme this-- chacune des fonctions 637 00:29:44,793 --> 00:29:47,235 ce est comme une de vos pages, et il vous redirige, 638 00:29:47,235 --> 00:29:48,750 et il initialise les variables. 639 00:29:48,750 --> 00:29:51,959 Ça va être la même chose pour chaque cadre que vous voyez là-bas. 640 00:29:51,959 --> 00:29:53,375 Et il va être le modèle. 641 00:29:53,375 --> 00:29:55,270 Et vous pouvez faire des choses comme, "appartient à." 642 00:29:55,270 --> 00:29:59,830 Ainsi, au lieu de faire la version de SQL, vous venez, comme, faire, user.tweets, 643 00:29:59,830 --> 00:30:01,210 et vous obtenez tout. 644 00:30:01,210 --> 00:30:02,650 Tout le monde a cela. 645 00:30:02,650 --> 00:30:07,070 Sauf dans Ruby, vous faites user.tweets, puis certains cadres en PHP, 646 00:30:07,070 --> 00:30:12,010 vous faites user.getalltweets OÙ mon PHP ne est pas un problème. 647 00:30:12,010 --> 00:30:13,460 Comme, ce est une grande ligne. 648 00:30:13,460 --> 00:30:15,320 Ce est la même chose, mais ce est une grande ligne. 649 00:30:15,320 --> 00:30:19,350 >> Donc, ce est une des principales raisons de mes préférences plus de Ruby. 650 00:30:19,350 --> 00:30:22,290 Il est juste que je fasse exactement le même chose dans d'autres cadres, 651 00:30:22,290 --> 00:30:26,021 il me faut deux fois seulement que de longues lignes de code. 652 00:30:26,021 --> 00:30:26,520 D'ACCORD? 653 00:30:26,520 --> 00:30:29,730 654 00:30:29,730 --> 00:30:32,540 >> D'autres questions? 655 00:30:32,540 --> 00:30:35,200 >> ZACK CHAUVIN: Quelque chose Je mentionnerai quickly-- Gabe 656 00:30:35,200 --> 00:30:36,682 parlé un peu de pierres précieuses. 657 00:30:36,682 --> 00:30:39,890 Et ce est une très great-- je veux dire, ce est une sorte de commun à tous les cadres, 658 00:30:39,890 --> 00:30:45,170 qu'il ya une sorte de concept de bijou, qui est comme dans mon petit exemple, 659 00:30:45,170 --> 00:30:46,680 Je ai vous identifier. 660 00:30:46,680 --> 00:30:48,460 Comme, vous pouvez vous connecter, vous déconnecter. 661 00:30:48,460 --> 00:30:51,740 Comme, ce est fait type d'un processus complexe. 662 00:30:51,740 --> 00:30:55,950 Il a été traité un peu bits pour vous dans PSET 7. 663 00:30:55,950 --> 00:31:01,160 Mais je ne sais toujours pas entièrement comment de mettre en œuvre la connexion, déconnexion. 664 00:31:01,160 --> 00:31:03,740 Et ce est parce que Ruby on Rails a des tonnes 665 00:31:03,740 --> 00:31:06,080 des gemmes qui font des trucs comme ça pour vous. 666 00:31:06,080 --> 00:31:08,550 >> Encore une fois, la convention sur la configuration. 667 00:31:08,550 --> 00:31:11,050 Tout le monde va faire ce signe-in, l'étape-signer. 668 00:31:11,050 --> 00:31:14,450 Alors pourquoi ne pas faire un paquet, appelé Concevoir, dans ce cas, qui est un petit bijou. 669 00:31:14,450 --> 00:31:15,810 Vous incluez tout simplement. 670 00:31:15,810 --> 00:31:18,970 Et puis il ya un peu d'aide en ligne avec la façon de l'utiliser. 671 00:31:18,970 --> 00:31:21,230 Et vous ne avez pas à vous soucier à propos de quelque chose comme ça. 672 00:31:21,230 --> 00:31:24,060 >> Fixation de photos à ces things-- un joyau pour cela. 673 00:31:24,060 --> 00:31:27,220 Comme, quand vous essayez de faire quelque chose de nouveau, il est un bijou pour cela. 674 00:31:27,220 --> 00:31:29,420 Et vous sorte de juste reconstituer ces joyaux 675 00:31:29,420 --> 00:31:33,160 et de construire une très complexe application très rapidement. 676 00:31:33,160 --> 00:31:35,902 677 00:31:35,902 --> 00:31:37,437 Cool. 678 00:31:37,437 --> 00:31:38,270 D'autres questions? 679 00:31:38,270 --> 00:31:39,623 >> STEPHEN TURBAN: Woo-hoo. 680 00:31:39,623 --> 00:31:40,976 Je ne pense pas [inaudible]. 681 00:31:40,976 --> 00:31:41,966 >> GABRIEL GUIMARAES: OK. 682 00:31:41,966 --> 00:31:42,840 Merci beaucoup, les gars. 683 00:31:42,840 --> 00:31:43,839 >> STEPHEN TURBAN: Buh-bye. 684 00:31:43,839 --> 00:31:44,850 ZACK CHAUVIN: Buh-bye. 685 00:31:44,850 --> 00:31:45,849 >> STEPHEN TURBAN: Woo-hoo. 686 00:31:45,849 --> 00:31:48,150 [Applaudissements] 687 00:31:48,150 --> 00:31:49,700 >> Yay. 688 00:31:49,700 --> 00:31:50,955