1 00:00:00,000 --> 00:00:03,968 >> [Música tocando] 2 00:00:03,968 --> 00:00:10,744 3 00:00:10,744 --> 00:00:14,040 >> STEPHEN TURBAN: Então, eu estou Stephen turbante. 4 00:00:14,040 --> 00:00:16,990 Ao longo do lado aqui, talvez nós pode obter algumas pessoas para mergulhar em. 5 00:00:16,990 --> 00:00:20,150 6 00:00:20,150 --> 00:00:23,854 Temos Gabriel e Zack. 7 00:00:23,854 --> 00:00:26,270 Então, por um breve roteiro sobre o que isso vai se parecer, 8 00:00:26,270 --> 00:00:31,580 Eu vou estar fazendo alguma extremamente olhar de alto nível para o que é MVC. 9 00:00:31,580 --> 00:00:32,285 Gabe? 10 00:00:32,285 --> 00:00:35,080 >> GABRIEL GUIMARAES: eu vou falar sobre Ruby e um pouco 11 00:00:35,080 --> 00:00:39,100 como o Rails funciona e como ele pode ajudá-lo a construir aplicações web. 12 00:00:39,100 --> 00:00:42,070 >> ZACK CHAUVIN: E eu vou mostrar-lhe um exemplo concreto de como 13 00:00:42,070 --> 00:00:45,112 usar Rails para construir um app super incrível. 14 00:00:45,112 --> 00:00:46,112 STEPHEN TURBAN: Awesome. 15 00:00:46,112 --> 00:00:46,350 Doce. 16 00:00:46,350 --> 00:00:46,850 Tudo certo. 17 00:00:46,850 --> 00:00:49,510 Então vamos falar sobre MVC. 18 00:00:49,510 --> 00:00:54,970 Então vamos para o próximo slide, que Vou fazer pressionando esse botão. 19 00:00:54,970 --> 00:01:12,640 E vamos para o desenvolvimento next--, Eu gosto de pensar em ir para CVS, 20 00:01:12,640 --> 00:01:17,240 porque CVS é ​​uma loja e também tem um V no centro. 21 00:01:17,240 --> 00:01:21,460 >> E assim vamos imaginar a uma loja. 22 00:01:21,460 --> 00:01:25,380 E vamos fazer esta loja vender apenas uma coisa. 23 00:01:25,380 --> 00:01:31,380 Então nós vamos ter essa armazenar apenas vender esses copos vermelhos. 24 00:01:31,380 --> 00:01:40,410 E imagine que caminhar, e você ir à frente da loja, por pessoa. 25 00:01:40,410 --> 00:01:43,440 E o nome dele é Vince. 26 00:01:43,440 --> 00:01:48,370 >> E Vince ondas Olá para você, diz oi. 27 00:01:48,370 --> 00:01:50,860 E você percebe uma coisa sobre Vince. 28 00:01:50,860 --> 00:01:56,880 Assim, sempre que pensamos em Vince, nós tem que pensar em dois adjetivos-chave. 29 00:01:56,880 --> 00:02:00,600 Vince é bonito, mas é estúpido. 30 00:02:00,600 --> 00:02:01,320 OK. 31 00:02:01,320 --> 00:02:06,810 Então, você sabe, não por culpa própria, Infelizmente, ele é lindo. 32 00:02:06,810 --> 00:02:08,009 Ele é o nosso ponto de vista. 33 00:02:08,009 --> 00:02:10,539 Assim, nosso primeiro membro do elenco está lá. 34 00:02:10,539 --> 00:02:12,340 Tenha isso em mente. 35 00:02:12,340 --> 00:02:17,230 >> Agora, você pergunta Vince, você vai, hey Vince. 36 00:02:17,230 --> 00:02:18,110 Eu sou um cliente. 37 00:02:18,110 --> 00:02:19,130 Ele diz oi. 38 00:02:19,130 --> 00:02:23,610 Eu realmente quero um de seus copos vermelhos. 39 00:02:23,610 --> 00:02:24,760 E o que Vince dizer? 40 00:02:24,760 --> 00:02:26,510 Alguém tem alguma idéia do que Vince diz? 41 00:02:26,510 --> 00:02:30,340 42 00:02:30,340 --> 00:02:31,452 Vou chamada fria. 43 00:02:31,452 --> 00:02:32,660 O que você acha Vince diz? 44 00:02:32,660 --> 00:02:36,139 >> AUDIÊNCIA: Ele diz, eu posso mostrar-lhe onde ele está, mas eu não posso dar-lhe um. 45 00:02:36,139 --> 00:02:41,330 >> STEPHEN TURBAN: Ele diz, eu posso mostrar-lhe onde ele está, mas eu não posso dar-lhe um. 46 00:02:41,330 --> 00:02:42,295 Ainda pior. 47 00:02:42,295 --> 00:02:44,420 Alguém tem outra idéia do que Vince poderia dizer? 48 00:02:44,420 --> 00:02:46,957 >> AUDIÊNCIA: Ele tem que ir de seleção se eles têm alguma copos vermelhos. 49 00:02:46,957 --> 00:02:49,290 STEPHEN TURBAN: Vince não mesmo sabe que ele tem que verificar. 50 00:02:49,290 --> 00:02:50,070 Algo mais? 51 00:02:50,070 --> 00:02:52,360 Então você disse, tem que verificar se ele tem copos vermelhos. 52 00:02:52,360 --> 00:02:52,895 Continue. 53 00:02:52,895 --> 00:02:54,020 AUDIÊNCIA: O que é um copo vermelho? 54 00:02:54,020 --> 00:02:56,072 STEPHEN TURBAN: O que é um copo vermelho? 55 00:02:56,072 --> 00:02:58,090 O que é um copo vermelho? 56 00:02:58,090 --> 00:02:59,410 Vince é confuso. 57 00:02:59,410 --> 00:03:05,141 Então Vince vai falar com nosso próximo membro do elenco, Carl. 58 00:03:05,141 --> 00:03:10,252 E quando pensamos sobre Carl, nós gotta pensar sobre dois grandes adjectives-- 59 00:03:10,252 --> 00:03:15,110 ele é controlador, mas ele é incapaz. 60 00:03:15,110 --> 00:03:17,840 >> Então Vince goes-- ele vai, o que é um copo vermelho? 61 00:03:17,840 --> 00:03:19,800 Eu não sei o que é um copo vermelho. 62 00:03:19,800 --> 00:03:23,080 Ele se vira, e ele pergunta Carl. 63 00:03:23,080 --> 00:03:28,890 Ele diz que, Carl, alguém pediu um copo vermelho. 64 00:03:28,890 --> 00:03:30,722 Você pode fazer isso? 65 00:03:30,722 --> 00:03:31,680 E o que Carl dizer? 66 00:03:31,680 --> 00:03:32,513 Vamos descobrir isso. 67 00:03:32,513 --> 00:03:34,330 Alguém tem alguma idéia do que Carl diz? 68 00:03:34,330 --> 00:03:37,260 E eu só vou repeti-lo de volta para você. 69 00:03:37,260 --> 00:03:39,280 Eu vi um movimento da mão. 70 00:03:39,280 --> 00:03:41,760 >> AUDIÊNCIA: Ele diz a alguém outra coisa para obter os copos vermelhos. 71 00:03:41,760 --> 00:03:44,430 >> STEPHEN TURBAN: Ele diz outra pessoa para obter o copo vermelho. 72 00:03:44,430 --> 00:03:46,270 Exatamente. 73 00:03:46,270 --> 00:03:49,010 E nós temos uma idéia que essa pessoa possa ser? 74 00:03:49,010 --> 00:03:52,590 75 00:03:52,590 --> 00:03:53,090 É uma dica. 76 00:03:53,090 --> 00:03:56,960 Vai começar com um M. Mob? 77 00:03:56,960 --> 00:04:00,225 >> AUDIÊNCIA: Modelo. 78 00:04:00,225 --> 00:04:02,720 >> STEPHEN TURBAN: O modelo, sim. 79 00:04:02,720 --> 00:04:06,920 Seu nome não é o modelo, infelizmente, porque isso é um nome bobo. 80 00:04:06,920 --> 00:04:09,310 Temos Mitt. 81 00:04:09,310 --> 00:04:12,970 E quando pensamos sobre Mitt-- não, isso não é uma imagem de Zack. 82 00:04:12,970 --> 00:04:15,590 83 00:04:15,590 --> 00:04:21,759 Temos que pensar em dois adjetivos chave com Mitt. 84 00:04:21,759 --> 00:04:25,040 Ele é capaz, mas ele é submisso. 85 00:04:25,040 --> 00:04:29,950 Então Mitt sabe o que tem que fazer, mas ele realmente não pode fazer nada. 86 00:04:29,950 --> 00:04:32,340 Ou ele realmente não pode decidir sobre o seu próprio. 87 00:04:32,340 --> 00:04:33,256 >> Portanto, temos Carl. 88 00:04:33,256 --> 00:04:34,705 Carl grita com Mitt. 89 00:04:34,705 --> 00:04:39,990 E ele diz, hey Mitt, precisamos de copos vermelhos. 90 00:04:39,990 --> 00:04:46,410 E Mitt vai para o seu copo depositário vermelho. 91 00:04:46,410 --> 00:04:48,960 Ele pega um copo, e ele dá-lo de volta. 92 00:04:48,960 --> 00:04:51,360 Alguém tem alguma idéia do que acontece então? 93 00:04:51,360 --> 00:04:54,070 94 00:04:54,070 --> 00:04:55,120 Dá a taça. 95 00:04:55,120 --> 00:05:01,740 Até agora, Mitt foi a seu vermelho repositório copo, tomada para fora, 96 00:05:01,740 --> 00:05:03,550 verifiquei fora, disse: Tomei um copo vermelho. 97 00:05:03,550 --> 00:05:06,717 E ele está dando para Carl. 98 00:05:06,717 --> 00:05:07,550 Você tem uma idéia? 99 00:05:07,550 --> 00:05:08,980 O que você acha Carl faz? 100 00:05:08,980 --> 00:05:10,926 >> AUDIÊNCIA: Carl dá para Vince. 101 00:05:10,926 --> 00:05:13,550 >> STEPHEN TURBAN: Carl dá para Vince. 102 00:05:13,550 --> 00:05:14,165 Vince. 103 00:05:14,165 --> 00:05:15,999 >> AUDIÊNCIA: E Vince mostra-lo para [inaudível]. 104 00:05:15,999 --> 00:05:16,998 STEPHEN TURBAN: Exatamente. 105 00:05:16,998 --> 00:05:18,080 Então, é exatamente isso. 106 00:05:18,080 --> 00:05:21,040 Então Vince leva a taça, nem sequer sabe o que é, 107 00:05:21,040 --> 00:05:23,840 mas ele mostra que para o utilizador. 108 00:05:23,840 --> 00:05:27,140 Então, vamos tentar recriar isso realmente brevemente. 109 00:05:27,140 --> 00:05:31,380 E vamos precisar três voluntários silenciosos, 110 00:05:31,380 --> 00:05:35,260 como vocês não vão para ser capaz de falar. 111 00:05:35,260 --> 00:05:36,470 Então, eu poderia pegar três? 112 00:05:36,470 --> 00:05:37,040 OK. 113 00:05:37,040 --> 00:05:38,248 E quem você gostaria de ser? 114 00:05:38,248 --> 00:05:42,310 115 00:05:42,310 --> 00:05:43,750 >> AUDIÊNCIA: Eu vou ser Vince. 116 00:05:43,750 --> 00:05:44,960 >> STEPHEN TURBAN: Vince, OK. 117 00:05:44,960 --> 00:05:46,190 Bonito, mas estúpido. 118 00:05:46,190 --> 00:05:47,510 Ótimo. 119 00:05:47,510 --> 00:05:48,570 Mais alguém? 120 00:05:48,570 --> 00:05:53,520 Estamos à procura de um capaz, mas submissa. 121 00:05:53,520 --> 00:05:55,760 Alguém mais quer ser capaz? 122 00:05:55,760 --> 00:05:56,944 >> AUDIÊNCIA: eu poderia ser Carl. 123 00:05:56,944 --> 00:05:57,860 STEPHEN TURBAN: Sweet. 124 00:05:57,860 --> 00:05:59,102 Temos Carl. 125 00:05:59,102 --> 00:05:59,866 >> AUDIÊNCIA: Mitt. 126 00:05:59,866 --> 00:06:01,050 >> STEPHEN TURBAN: Mitt, OK. 127 00:06:01,050 --> 00:06:05,070 E nós vamos precisar a-- eu vou ser o cliente. 128 00:06:05,070 --> 00:06:07,460 Então vamos lá para cima, vamos lá para cima. 129 00:06:07,460 --> 00:06:10,470 E está todo mundo no ponto de vista? 130 00:06:10,470 --> 00:06:15,440 Então, eu vou pedir para Vince ficar na frente, apenas sorrindo, 131 00:06:15,440 --> 00:06:18,230 apenas sorrindo tão brilhante quanto possível. 132 00:06:18,230 --> 00:06:21,520 E nós vamos pedir a Carl, certo, por que não fazê-lo, como, 133 00:06:21,520 --> 00:06:24,050 ficar bem atrás dela? 134 00:06:24,050 --> 00:06:26,660 E Mitt, por que não fazê-lo basta ir off na parte de trás, 135 00:06:26,660 --> 00:06:31,410 e então eu vou dar-lhe um grupo de copos para sair com. 136 00:06:31,410 --> 00:06:34,170 >> Então, eu sou um cliente. 137 00:06:34,170 --> 00:06:35,610 Eu venho. 138 00:06:35,610 --> 00:06:40,490 E eu faço [inaudível] I dizer, oi, eu gostaria de uma xícara. 139 00:06:40,490 --> 00:06:43,214 140 00:06:43,214 --> 00:06:44,580 Perfeito. 141 00:06:44,580 --> 00:06:45,580 Então Vince não tem idéia. 142 00:06:45,580 --> 00:06:46,915 Então, o que Vince fazer a seguir? 143 00:06:46,915 --> 00:06:50,770 144 00:06:50,770 --> 00:06:52,860 Vince-- OK, então eu vou para ser narrante agora. 145 00:06:52,860 --> 00:06:55,390 >> Vince grita com Carl, copo! 146 00:06:55,390 --> 00:06:58,840 147 00:06:58,840 --> 00:07:00,790 O que Carl fazer? 148 00:07:00,790 --> 00:07:03,910 Carl grita com Mitt. 149 00:07:03,910 --> 00:07:06,710 Mitt pega um copo. 150 00:07:06,710 --> 00:07:08,220 Mitt dá para Carl. 151 00:07:08,220 --> 00:07:10,870 Carl retorna para Vince. 152 00:07:10,870 --> 00:07:12,640 Vince e mostra para o utilizador. 153 00:07:12,640 --> 00:07:17,960 >> E isso é um alto, alto, alta tão alto olhar, a MVC. 154 00:07:17,960 --> 00:07:22,460 Nós dividi-lo por ter um ponto de vista, o que o usuário vê, um controlador, alguém 155 00:07:22,460 --> 00:07:25,760 que faz tudo em segundo plano mas realmente não pode atualizar qualquer coisa 156 00:07:25,760 --> 00:07:29,960 ou não pode fazer nada de qualquer significado exceto chamando a vista e do modelo. 157 00:07:29,960 --> 00:07:35,280 E então nós temos Mitt, o modelo, que atualiza todos os dados que temos. 158 00:07:35,280 --> 00:07:42,660 Então, muito obrigado para a nossa bela, controlar e voluntários capacitados. 159 00:07:42,660 --> 00:07:43,730 E eu acho que foi isso. 160 00:07:43,730 --> 00:07:45,040 >> [Aplausos] 161 00:07:45,040 --> 00:07:48,745 >> Eu acho que Gabe vai falar agora em um nível elevado talvez menos. 162 00:07:48,745 --> 00:07:51,600 >> GABRIEL GUIMARAES: Ok, caras. 163 00:07:51,600 --> 00:07:56,790 Agora vamos falar um pouco mais sobre código e sobre Ruby on Rails em si, 164 00:07:56,790 --> 00:08:00,750 e sobre como ele se relaciona a todos desta história MVC. 165 00:08:00,750 --> 00:08:03,190 Basicamente, Ruby on Rails é um framework. 166 00:08:03,190 --> 00:08:04,640 Mais sobre isso em um segundo. 167 00:08:04,640 --> 00:08:07,760 >> Mas só para lhe dar um senso de quem o está usando, 168 00:08:07,760 --> 00:08:12,240 como, todos estes grandes companies-- assim GitHub, Groupon, Twitter-- 169 00:08:12,240 --> 00:08:15,300 todos estão utilizando Ruby on Rails como quadro principal 170 00:08:15,300 --> 00:08:16,510 para implementar seu website. 171 00:08:16,510 --> 00:08:19,130 Então, eu tenho certeza que um monte de gente ter usado esses sites aqui. 172 00:08:19,130 --> 00:08:24,470 E é tudo Ruby on Rails para implementar o modelo, a vista, eo controlador 173 00:08:24,470 --> 00:08:26,890 em todos estes sites e muitos mais. 174 00:08:26,890 --> 00:08:27,830 OK? 175 00:08:27,830 --> 00:08:32,090 >> Então, como eu disse, Ruby on Rails é um framework. 176 00:08:32,090 --> 00:08:37,237 E você pode tipo de pensar de um quadro no sentido de como construir uma casa. 177 00:08:37,237 --> 00:08:39,570 Então, se você estiver indo para construir um house-- e você sempre pode 178 00:08:39,570 --> 00:08:40,653 começar do zero, certo? 179 00:08:40,653 --> 00:08:46,440 Você pode tentar chegar com um modo para serrar a madeira, 180 00:08:46,440 --> 00:08:49,760 e para trazer a madeira para o local, e para obter as pedras na forma certa, 181 00:08:49,760 --> 00:08:51,250 e depois de tudo isso. 182 00:08:51,250 --> 00:08:54,020 Mas isso vai demorar provavelmente lotes de anos 183 00:08:54,020 --> 00:08:56,910 até obter todo o material, e você começa tudo junto, 184 00:08:56,910 --> 00:08:58,790 e você realmente começar para construir sua casa. 185 00:08:58,790 --> 00:09:01,748 >> Então não é que se você começar com um quadro com algo que é 186 00:09:01,748 --> 00:09:04,260 já no tipo de lugar para qualquer tipo de casa 187 00:09:04,260 --> 00:09:07,750 que você deseja algo build-- isso é muito genérico, mas que você pode 188 00:09:07,750 --> 00:09:12,850 em seguida, modelar em direção ao seu próprio goals-- então você pode aproveitar 189 00:09:12,850 --> 00:09:16,800 este poder dos quadros para construir -lhes algo muito, muito mais rápido. 190 00:09:16,800 --> 00:09:17,300 OK. 191 00:09:17,300 --> 00:09:21,110 Portanto, esta é a mesma idéia em uma quadro para uma aplicação web 192 00:09:21,110 --> 00:09:23,755 ou para qualquer tipo de aplicação, para essa matéria. 193 00:09:23,755 --> 00:09:26,560 >> Você realmente começar com metade de uma aplicação 194 00:09:26,560 --> 00:09:28,400 já está lá no lugar para você. 195 00:09:28,400 --> 00:09:32,230 E por isso, quero dizer que você obter lotes de arquivos que já possuem funções, 196 00:09:32,230 --> 00:09:36,830 como bibliotecas, como funcionalidade, e os comandos que podem ser executados em ordem 197 00:09:36,830 --> 00:09:40,500 para tornar a sua vida muito mais mais simples e mais fácil. 198 00:09:40,500 --> 00:09:41,180 OK. 199 00:09:41,180 --> 00:09:43,555 >> Portanto, neste caso, nós vamos para falar sobre Ruby on Rails. 200 00:09:43,555 --> 00:09:45,920 Há lotes de diferentes Estruturas lá fora. 201 00:09:45,920 --> 00:09:47,550 Há Django para Python. 202 00:09:47,550 --> 00:09:50,990 Há Zend Framework ou Laravel para PHP. 203 00:09:50,990 --> 00:09:52,390 Há muitas diferentes. 204 00:09:52,390 --> 00:09:56,830 Ruby on Rails é um novo muito agradável. 205 00:09:56,830 --> 00:10:01,600 Um monte de gente usar isso em startups e este tipo de ambiente. 206 00:10:01,600 --> 00:10:04,250 E algumas delas muito grande empresas que eu mostrei aqui antes 207 00:10:04,250 --> 00:10:06,050 também estão usando Ruby on Rails. 208 00:10:06,050 --> 00:10:10,070 >> Então, só para lhe dar um sensação de que Ruby é 209 00:10:10,070 --> 00:10:13,030 como, já que vocês são mais utilizados para, como, C e um pouco de PHP 210 00:10:13,030 --> 00:10:17,560 agora, para o Ruby vai ser o equivalente de seu PHP neste sentido. 211 00:10:17,560 --> 00:10:18,380 Este não é rubi. 212 00:10:18,380 --> 00:10:19,830 Este é C. OK? 213 00:10:19,830 --> 00:10:22,660 Mas isto é como a Função DJBHash que eu 214 00:10:22,660 --> 00:10:27,170 Conheço muitas pessoas usadas para erros ortográficos PSET. 215 00:10:27,170 --> 00:10:29,670 >> E em Ruby, bastante bem como em PHP, você 216 00:10:29,670 --> 00:10:32,745 poderia implementar isso com apenas algumas linhas de código. 217 00:10:32,745 --> 00:10:34,870 Em vez de ter que se preocupar sobre a função hash, 218 00:10:34,870 --> 00:10:37,950 ter que se preocupar com os baldes, e tudo isso, você pode simplesmente dizer: 219 00:10:37,950 --> 00:10:40,160 dicionário = Hash.net. 220 00:10:40,160 --> 00:10:44,560 E então você usa o tipo de como a mesma idéia que tinha PHP. 221 00:10:44,560 --> 00:10:45,970 E por isso é a verdade. 222 00:10:45,970 --> 00:10:48,080 E então se você quiser verificar, de modo a verificar a função 223 00:10:48,080 --> 00:10:51,560 seria se dicionário "foo" é igual a igual a true, return true. 224 00:10:51,560 --> 00:10:52,580 E isso é tudo, OK? 225 00:10:52,580 --> 00:10:54,030 >> Então você notar algumas diferenças. 226 00:10:54,030 --> 00:10:57,940 Não há ponto e vírgula aqui, como havia em C. 227 00:10:57,940 --> 00:11:00,710 Mas a idéia geral é muito semelhante. 228 00:11:00,710 --> 00:11:02,030 OK? 229 00:11:02,030 --> 00:11:08,010 >> Além disso, em Ruby, existem pedras preciosas, que são uma espécie de as bibliotecas Ruby. 230 00:11:08,010 --> 00:11:12,460 E Rails processa-los em uma maneira muito agradável para você. 231 00:11:12,460 --> 00:11:15,480 Então, se você quiser colocar em alguns biblioteca que 232 00:11:15,480 --> 00:11:18,670 faz-mails, ou que faz de mensagens de texto, 233 00:11:18,670 --> 00:11:22,170 ou que faz com integração Facebook, ou qualquer tipo de coisa 234 00:11:22,170 --> 00:11:24,374 assim para o seu app, é muito, muito fácil. 235 00:11:24,374 --> 00:11:26,790 As probabilidades são que você pode encontrar algo assim na internet. 236 00:11:26,790 --> 00:11:30,300 E eles simplesmente fazer algo como put que 237 00:11:30,300 --> 00:11:32,290 gem que você deseja usar no arquivo de jóia. 238 00:11:32,290 --> 00:11:33,749 E então Rails instala tudo. 239 00:11:33,749 --> 00:11:36,456 Você não tem que se preocupar com qualquer de que, de modo que é muito legal. 240 00:11:36,456 --> 00:11:38,500 Além disso, há muito, abundância de ajuda online. 241 00:11:38,500 --> 00:11:40,485 Assim, você pode encontrar um monte de coisas. 242 00:11:40,485 --> 00:11:42,360 Se você tem um erro, você pode simplesmente pesquisar no Google, 243 00:11:42,360 --> 00:11:45,090 e que vai ser muito fácil de obter ajuda. 244 00:11:45,090 --> 00:11:47,200 >> E é um monte de diversão-- exactly-- porque você 245 00:11:47,200 --> 00:11:51,420 não tem que se preocupar com o baixo nível detalhes, a implementação de tabelas de hash 246 00:11:51,420 --> 00:11:58,080 e ter que vir para cima com tudo os cabeçalhos HTTP, e um monte de coisas, 247 00:11:58,080 --> 00:12:00,197 e até mesmo algumas coisas nível mais superior. 248 00:12:00,197 --> 00:12:02,030 Você não tem que se preocupar sobre isso em Rails. 249 00:12:02,030 --> 00:12:04,010 Ele faz isso muito, muito bem para você. 250 00:12:04,010 --> 00:12:07,490 E nós estamos indo para mostrar que mais concretamente muito em breve. 251 00:12:07,490 --> 00:12:08,130 OK. 252 00:12:08,130 --> 00:12:09,750 >> Então, um pouco sobre o Ruby novamente. 253 00:12:09,750 --> 00:12:11,420 Então, é como C, como eu disse. 254 00:12:11,420 --> 00:12:14,170 Em vez de printf, dizemos "Coloca", que é "colocar string." 255 00:12:14,170 --> 00:12:18,100 Ele coloca uma string para o console. 256 00:12:18,100 --> 00:12:20,601 E, neste caso, estamos apenas imprimir "Olá mundo". 257 00:12:20,601 --> 00:12:23,100 Nós não precisamos de os parênteses, mas é bastante semelhante. 258 00:12:23,100 --> 00:12:26,190 >> E então se você quiser fazer alguma coisa aqui, 259 00:12:26,190 --> 00:12:30,450 como imprimir um monte de "roupas íntimas" e um bando de "bigs" em um loop While, 260 00:12:30,450 --> 00:12:32,060 é tipo como em C, certo? 261 00:12:32,060 --> 00:12:35,090 Você não tem os parâmetros, mas é praticamente o mesmo. 262 00:12:35,090 --> 00:12:37,300 O recuo aqui contagem, então x é igual a 1. 263 00:12:37,300 --> 00:12:41,250 E então Enquanto x é menor do que 50-- este é um caso, este é um Else. 264 00:12:41,250 --> 00:12:42,810 É muito parecido com o que viu. 265 00:12:42,810 --> 00:12:47,150 >> E, em seguida, x + = 1 é apenas incrementando, tipo de como fazer a ++ que você pode 266 00:12:47,150 --> 00:12:50,213 fazer em C. Mas é muito muito do que viu em C. 267 00:12:50,213 --> 00:12:52,380 Não deve ser muito complicado. 268 00:12:52,380 --> 00:12:54,320 Mas é mais poderoso. 269 00:12:54,320 --> 00:13:00,100 Portanto, há alguns comandos aqui que são definitivamente um pouco mais recente. 270 00:13:00,100 --> 00:13:05,110 >> Assim, por exemplo, "puts". 271 00:13:05,110 --> 00:13:08,680 Você pode usar esta notação hashtag aqui apenas para imprimir something-- 272 00:13:08,680 --> 00:13:13,490 muito parecido com o que você faria se a% D ou% C ou um pouco parecido. 273 00:13:13,490 --> 00:13:17,600 E você pode realmente colocar um Se logo após a declaração. 274 00:13:17,600 --> 00:13:21,180 Então eu só quero fazer isso- Se x for maior do que 3. 275 00:13:21,180 --> 00:13:24,129 Então, por que eu tenho que fazer uma inteira Se o bloco? 276 00:13:24,129 --> 00:13:24,670 Eu não sei. 277 00:13:24,670 --> 00:13:28,880 Eu só posso imprimir esta só se x é igual a superior a 3. 278 00:13:28,880 --> 00:13:32,740 Portanto, esta é uma forma de uma linha de fazer isso em Ruby. 279 00:13:32,740 --> 00:13:35,570 >> Uma lista em Ruby é algo muito versátil. 280 00:13:35,570 --> 00:13:38,110 Então, você realmente não precisa ter apenas um tipo. 281 00:13:38,110 --> 00:13:40,674 Você pode ter uma seqüência, e em seguida alguns números, e qualquer que seja. 282 00:13:40,674 --> 00:13:42,590 E se você deseja anexar algo a uma lista, 283 00:13:42,590 --> 00:13:46,860 você pode apenas usar esse notação aqui. 284 00:13:46,860 --> 00:13:48,310 >> E se você quiser fazer uma iteração. 285 00:13:48,310 --> 00:13:56,200 Praticamente o 4each em PHP, aqui, você tem uma lista e você faz "List.each fazer." 286 00:13:56,200 --> 00:13:59,464 E este "elem," esta é como o nome de cada elemento 287 00:13:59,464 --> 00:14:00,880 que eu vou ter na minha lista. 288 00:14:00,880 --> 00:14:03,890 E então eu posso apenas "coloca elem." 289 00:14:03,890 --> 00:14:07,130 E "coloca" Praticamente alças colocá-lo para você, imprimi-lo. 290 00:14:07,130 --> 00:14:09,920 Não importa se é uma string ou um int. 291 00:14:09,920 --> 00:14:12,790 Vai resolver isso para você. 292 00:14:12,790 --> 00:14:14,270 Certo? 293 00:14:14,270 --> 00:14:14,790 Com estilo. 294 00:14:14,790 --> 00:14:19,980 >> E, assim como PHP, Ruby e HTML também integrar muito, muito bem. 295 00:14:19,980 --> 00:14:23,340 E aqui, há alguns HTML com Ruby na mesma. 296 00:14:23,340 --> 00:14:25,860 Portanto, temos uma tag corpo como em HTML. 297 00:14:25,860 --> 00:14:28,270 E se queremos verificar que um utilizador é, por exemplo, 298 00:14:28,270 --> 00:14:35,730 logado, podemos apenas dizer que, a partir de Ruby, se user.logged_in ?, final de Ruby. 299 00:14:35,730 --> 00:14:39,240 Imprima esta coisa toda, que tem algum Ruby in-lo, o que é justo 300 00:14:39,240 --> 00:14:42,230 tipo como de que a sintaxe para PHP que imprime uma variável. 301 00:14:42,230 --> 00:14:43,380 Vamos imprimir o user.name. 302 00:14:43,380 --> 00:14:48,870 >> Então, bem-vindo, Stephen, dentro de uma div HTML. 303 00:14:48,870 --> 00:14:53,760 E, no final, temos um "fim" e Código Ruby, o que significa que esta é a minha 304 00:14:53,760 --> 00:14:54,470 Se o bloco. 305 00:14:54,470 --> 00:14:55,060 OK? 306 00:14:55,060 --> 00:14:57,684 Então, é como uma perfeita integração entre Ruby e HTML. 307 00:14:57,684 --> 00:15:00,056 308 00:15:00,056 --> 00:15:01,430 Há também grande quantidade de recursos. 309 00:15:01,430 --> 00:15:06,290 Mas, antes de seguir em frente, alguém tem dúvidas sobre Ruby, alguma coisa? 310 00:15:06,290 --> 00:15:08,960 OK. 311 00:15:08,960 --> 00:15:12,250 >> Há muitos recursos on-line para tryruby.org, Code Academy, 312 00:15:12,250 --> 00:15:18,740 ruby-lang.org, onde você pode experimentá-lo para fora em seu navegador antes de você realmente 313 00:15:18,740 --> 00:15:22,310 digo, oh, OK, eu vou usar Ruby para o meu projeto final. 314 00:15:22,310 --> 00:15:24,020 E assim definitivamente dar aqueles tentar. 315 00:15:24,020 --> 00:15:26,510 Todos esses slides são vai estar disponível on-line, 316 00:15:26,510 --> 00:15:28,950 assim você pode simplesmente baixá-los. 317 00:15:28,950 --> 00:15:30,115 E sim? 318 00:15:30,115 --> 00:15:31,889 >> AUDIÊNCIA: [inaudível] o que você apenas mostrou 319 00:15:31,889 --> 00:15:36,851 foi HTML eo código embutido em -lo para essa noção de Model View 320 00:15:36,851 --> 00:15:37,350 Controlador? 321 00:15:37,350 --> 00:15:37,610 >> GABRIEL GUIMARAES: Sim. 322 00:15:37,610 --> 00:15:40,290 Faremos isso em um segundo quando mostramos nosso exemplo, OK? 323 00:15:40,290 --> 00:15:41,290 Obrigado pela pergunta. 324 00:15:41,290 --> 00:15:44,760 Portanto, a questão era, basicamente, se nós pode mostrar essa integração do Ruby 325 00:15:44,760 --> 00:15:49,230 em HTML no Modelo Ver quadro Controller. 326 00:15:49,230 --> 00:15:51,710 >> Assim, a idéia do Modelo Quadro View Controller 327 00:15:51,710 --> 00:15:55,740 é que é, basicamente, uma filosofia, apenas como Stephen mostrou aqui. 328 00:15:55,740 --> 00:15:58,177 E não é algo que você tem que fazer, 329 00:15:58,177 --> 00:16:00,510 mas é algo que faz a sua vida muito mais simples. 330 00:16:00,510 --> 00:16:04,170 E Ruby on Rails é construído em torno desta filosofia de código. 331 00:16:04,170 --> 00:16:06,320 Então, nós estamos indo para mostrar um exemplo muito em breve. 332 00:16:06,320 --> 00:16:07,340 >> Então Rails é o amor. 333 00:16:07,340 --> 00:16:09,140 Um monte de pessoas estão usando-o, como eu disse. 334 00:16:09,140 --> 00:16:10,510 E é muito divertido. 335 00:16:10,510 --> 00:16:12,360 Vocês deveriam definitivamente dar-lhe uma tentativa. 336 00:16:12,360 --> 00:16:15,120 MVC torna tudo mais simples. 337 00:16:15,120 --> 00:16:18,110 Assim, o Model View Controller, as coisas que separam 338 00:16:18,110 --> 00:16:21,450 e colocando uma pessoa, por si só, ou uma parte do seu aplicativo 339 00:16:21,450 --> 00:16:24,850 para fazer cada um dos diferentes empregos que a aplicação tem de fazer. 340 00:16:24,850 --> 00:16:26,676 E menos tempo gasto sobre os problemas de baixo nível. 341 00:16:26,676 --> 00:16:27,800 E muito popular agora. 342 00:16:27,800 --> 00:16:29,917 Temos Rails 4.0, que é uma nova versão. 343 00:16:29,917 --> 00:16:31,500 E ele vem com um monte de coisas legais. 344 00:16:31,500 --> 00:16:32,562 Outra pergunta. 345 00:16:32,562 --> 00:16:34,490 >> AUDIÊNCIA: Outra pergunta. 346 00:16:34,490 --> 00:16:39,310 Ruby on Rails contra 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 A pergunta era, Ruby on Rails contra Ruby-- 349 00:16:42,252 --> 00:16:42,960 AUDIÊNCIA: Grails. 350 00:16:42,960 --> 00:16:43,490 Ruby? 351 00:16:43,490 --> 00:16:44,490 >> GABRIEL GUIMARAES: Yeah. 352 00:16:44,490 --> 00:16:45,955 Então Ruby é a linguagem. 353 00:16:45,955 --> 00:16:46,745 >> AUDIÊNCIA: Não. 354 00:16:46,745 --> 00:16:50,360 Eu estou pedindo para você comparar uma língua e um quadro, Ruby on Rails, 355 00:16:50,360 --> 00:16:52,975 com outra linguagem popular framework-- Grails-- com 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 Desculpe. 359 00:16:54,480 --> 00:16:57,390 A questão foi, compare Ruby e Ruby on Rails 360 00:16:57,390 --> 00:16:59,750 para outro quadro e another-- 361 00:16:59,750 --> 00:17:01,022 >> AUDIÊNCIA: Ruby. 362 00:17:01,022 --> 00:17:01,954 Está certo. 363 00:17:01,954 --> 00:17:03,820 Se você não sabe sobre isso, tudo bem. 364 00:17:03,820 --> 00:17:05,359 >> GABRIEL GUIMARAES: Como, o que eu entendo é isso-- 365 00:17:05,359 --> 00:17:07,080 >> AUDIÊNCIA: Não há outro framework chamado Grails. 366 00:17:07,080 --> 00:17:07,700 >> GABRIEL GUIMARAES: Oh, Grails. 367 00:17:07,700 --> 00:17:08,650 Eu nunca ouvi falar disso. 368 00:17:08,650 --> 00:17:09,640 Desculpe. 369 00:17:09,640 --> 00:17:11,690 Eu nunca ouvi falar de Groovy on Rails. 370 00:17:11,690 --> 00:17:12,744 Desculpe. 371 00:17:12,744 --> 00:17:14,869 >> AUDIÊNCIA: É muito melhor integrado com Java. 372 00:17:14,869 --> 00:17:15,450 >> GABRIEL GUIMARAES: Entendo. 373 00:17:15,450 --> 00:17:17,555 >> AUDIÊNCIA: Eu sou apenas um curioso sobre algumas pessoas que conheço como-- 374 00:17:17,555 --> 00:17:20,240 >> GABRIEL GUIMARAES: Não, eu nunca ouviu falar que um, infelizmente. 375 00:17:20,240 --> 00:17:20,700 Grails. 376 00:17:20,700 --> 00:17:21,410 >> AUDIÊNCIA: E algumas pessoas obviamente, como Ruby on Rails. 377 00:17:21,410 --> 00:17:22,640 >> GABRIEL GUIMARAES: Eu tenho rubi usados ​​on Rails muito. 378 00:17:22,640 --> 00:17:24,790 Eu usei alguns Django com Python, como eu disse. 379 00:17:24,790 --> 00:17:26,329 Eu usei alguns Laravel. 380 00:17:26,329 --> 00:17:29,490 Mas eu não tinha usado Groovy on Rails. 381 00:17:29,490 --> 00:17:31,630 Desculpe. 382 00:17:31,630 --> 00:17:34,040 E é muito popular agora com Rails 4.0. 383 00:17:34,040 --> 00:17:38,180 Como, algumas das coisas que o Rails faz por você, por exemplo, é você 384 00:17:38,180 --> 00:17:43,650 tem um monte de arquivos CSS e lotes de arquivos JavaScript. 385 00:17:43,650 --> 00:17:45,790 E você pode tratá-los como separado e tudo. 386 00:17:45,790 --> 00:17:50,010 >> Mas, então, quando automatically-- você envia o seu código para produção, 387 00:17:50,010 --> 00:17:52,770 ele compila automaticamente los todos em um único arquivo 388 00:17:52,770 --> 00:17:55,150 que é minified, sem qualquer espaços, de modo que ele ocupa 389 00:17:55,150 --> 00:17:59,400 menos espaço em sua aplicação, de modo que você pode realmente escalar coisas muito. 390 00:17:59,400 --> 00:18:04,380 É por isso que essas grandes empresas como Twitter e GitHub 391 00:18:04,380 --> 00:18:10,220 estão usando Rails, porque ele faz tudo que, para você, o que é muito legal. 392 00:18:10,220 --> 00:18:12,840 >> Uma coisa que é muito, muito, muito assustador 393 00:18:12,840 --> 00:18:18,450 para as pessoas, inclusive eu, que estão tentando trabalhar 394 00:18:18,450 --> 00:18:22,430 com um quadro no início, é que quando você começa uma aplicação, 395 00:18:22,430 --> 00:18:24,440 você vai ver um monte de arquivos. 396 00:18:24,440 --> 00:18:28,460 Como, quando você cria Rails Nova, o meu pedido, 397 00:18:28,460 --> 00:18:31,710 você vai ver tudo isso folders-- app, bin, configuração, db, lib, 398 00:18:31,710 --> 00:18:32,482 log, público. 399 00:18:32,482 --> 00:18:33,690 Como, montes e montes de coisas. 400 00:18:33,690 --> 00:18:35,030 >> E a primeira vez que eu vi aquilo, eu era como, 401 00:18:35,030 --> 00:18:36,570 OK, eu não tenho idéia do que está acontecendo. 402 00:18:36,570 --> 00:18:38,890 Eu só quero criar uma Web site com "Olá, mundo", 403 00:18:38,890 --> 00:18:41,730 e isso está me dando, como, 100 bilhões de páginas diferentes. 404 00:18:41,730 --> 00:18:43,070 Eu não sei o que está acontecendo. 405 00:18:43,070 --> 00:18:47,460 Então, por favor, não ser muito assustados com isso. 406 00:18:47,460 --> 00:18:53,699 >> A idéia é que ele realmente tem metade de uma casa lá para você já. 407 00:18:53,699 --> 00:18:55,490 Tem um inteiro quadro para você já. 408 00:18:55,490 --> 00:18:56,948 É por isso que há tantos arquivos. 409 00:18:56,948 --> 00:19:00,150 Mas a coisa boa é que ele separa todos eles muito bem. 410 00:19:00,150 --> 00:19:03,370 As probabilidades são de que você não precisa se preocupar sobre a maioria dessas pastas. 411 00:19:03,370 --> 00:19:05,820 >> O mais importante, eu diria, é a pasta app, 412 00:19:05,820 --> 00:19:07,147 onde seu app realmente vive. 413 00:19:07,147 --> 00:19:09,730 Assim, a configuração, você vai tem de configurar algumas coisas, 414 00:19:09,730 --> 00:19:12,840 como seu banco de dados e coisas assim que tipo de banco de dados que você está usando. 415 00:19:12,840 --> 00:19:17,430 Mas além disso, como a maioria dos o seu trabalho vai ser feito em app. 416 00:19:17,430 --> 00:19:21,620 Assim, em app, você tem ativos, controladores, ajudantes, malas diretas, modelos, pontos de vista. 417 00:19:21,620 --> 00:19:24,460 Então, aqui, você começa a ver que controladores, modelos e pontos de vista vêm 418 00:19:24,460 --> 00:19:25,410 em jogo. 419 00:19:25,410 --> 00:19:27,270 >> Utentes são apenas se você deseja enviar e-mails. 420 00:19:27,270 --> 00:19:29,400 Helpers se você quiser criar algumas funções 421 00:19:29,400 --> 00:19:32,050 que você usa muito na vista. 422 00:19:32,050 --> 00:19:34,490 Então você colocá-los em ajudantes. 423 00:19:34,490 --> 00:19:39,000 E activos é basicamente todos suas imagens, todo o seu CSS, 424 00:19:39,000 --> 00:19:41,200 todo o seu JavaScript, e como esses tipos 425 00:19:41,200 --> 00:19:43,110 de coisas que são enviados para o cliente. 426 00:19:43,110 --> 00:19:45,500 E tudo o que está no ativo, que eu disse antes, fica minified. 427 00:19:45,500 --> 00:19:45,940 Ela é compilada. 428 00:19:45,940 --> 00:19:49,189 E você realmente não precisa se preocupar com que, quando se vai para o código de produção. 429 00:19:49,189 --> 00:19:49,770 Com estilo. 430 00:19:49,770 --> 00:19:54,205 >> Agora Zack vai entrar, e ele é vamos fazer um exemplo de Twitter50. 431 00:19:54,205 --> 00:19:54,970 >> AUDIÊNCIA: Woo-hoo! 432 00:19:54,970 --> 00:19:56,726 >> ZACK CHAUVIN: Awesome. 433 00:19:56,726 --> 00:20:00,180 Então eu tive a chance de trabalhar com Ruby on Rails neste verão. 434 00:20:00,180 --> 00:20:01,580 É um quadro surpreendente. 435 00:20:01,580 --> 00:20:03,580 Estou muito parcial a ele. 436 00:20:03,580 --> 00:20:09,770 E eu vou mostrar-lhe um pouco de um exemplo do que pode parecer. 437 00:20:09,770 --> 00:20:11,020 Ir até Chrome. 438 00:20:11,020 --> 00:20:16,350 Portanto, este é um exemplo de uma forma muito simples Ruby on Rails application-- algo 439 00:20:16,350 --> 00:20:19,690 como este é algo que Ruby realmente se destaca 440 00:20:19,690 --> 00:20:24,070 isso-- apenas onde o seu modelos são muito bem definido. 441 00:20:24,070 --> 00:20:27,150 >> Neste exemplo, você verá dois modelos diferentes, que 442 00:20:27,150 --> 00:20:30,380 são de que temos usuários e temos tweets. 443 00:20:30,380 --> 00:20:33,480 Portanto, este é Twitter50, Próprio Twitter de Harvard. 444 00:20:33,480 --> 00:20:36,820 Como você pode ver, eu estou logado comozack. 445 00:20:36,820 --> 00:20:38,860 E eu sou capaz de fazer novos tweets. 446 00:20:38,860 --> 00:20:42,266 Então eu penso-- "Este é um" - desculpe? 447 00:20:42,266 --> 00:20:43,182 AUDIÊNCIA: [inaudível]. 448 00:20:43,182 --> 00:20:44,061 ZACK CHAUVIN: Oh, OK. 449 00:20:44,061 --> 00:20:45,060 Precisa parar o servidor. 450 00:20:45,060 --> 00:20:47,480 Excelente. 451 00:20:47,480 --> 00:20:49,630 Então aqui estamos nós. 452 00:20:49,630 --> 00:20:52,520 Como você pode ver, temos a nossa Twitter aplicativo aqui. 453 00:20:52,520 --> 00:20:55,020 E é super fácil de iniciar o servidor. 454 00:20:55,020 --> 00:20:57,991 Nós vamos apenas fazer "servidor trilhos." 455 00:20:57,991 --> 00:20:58,490 Ótimo. 456 00:20:58,490 --> 00:20:58,990 OK. 457 00:20:58,990 --> 00:21:00,830 Obrigado por isso. 458 00:21:00,830 --> 00:21:02,200 Então, agora nós estamos correndo. 459 00:21:02,200 --> 00:21:06,120 >> E nós vamos dizer: "Este é um seminário incrível. " 460 00:21:06,120 --> 00:21:08,870 E vamos ver o que acontece. 461 00:21:08,870 --> 00:21:10,020 Então, nós vamos twittar sobre isso. 462 00:21:10,020 --> 00:21:13,390 Lá no fundo, você pode ver agora há mais de três tweets. 463 00:21:13,390 --> 00:21:15,980 Então nós temos um pouco de paginação acontecendo. 464 00:21:15,980 --> 00:21:19,640 E nós temos que tweet. 465 00:21:19,640 --> 00:21:24,010 E eu também pode procurar através do meu Pesquisa tweets-- para este e os dois 466 00:21:24,010 --> 00:21:27,960 aqueles que têm a palavra "This" neles aparecem. 467 00:21:27,960 --> 00:21:30,860 Nós também pode apagar os tweets por clicando no pequeno botão Delete. 468 00:21:30,860 --> 00:21:36,440 E, obviamente, eu só posso apagar o posto que pertencia a mim. 469 00:21:36,440 --> 00:21:39,030 >> Já, nós quase ter a funcionalidade do Twitter. 470 00:21:39,030 --> 00:21:42,000 Como, quando você pensa sobre isso, Twitter realmente não faz muito. 471 00:21:42,000 --> 00:21:44,280 Tem os usuários, tem tweets. 472 00:21:44,280 --> 00:21:47,690 Há algumas funcionalidades mais complexas. 473 00:21:47,690 --> 00:21:52,960 Mas quando você realmente começar a ele, é bem um aplicativo simples Ruby on Rails. 474 00:21:52,960 --> 00:21:57,560 E algo assim, com um bom entendimento do Ruby on Rails, 475 00:21:57,560 --> 00:22:00,680 você poderia provavelmente fazer em uma ou duas horas. 476 00:22:00,680 --> 00:22:04,210 >> E isso vem realmente de volta para o mantra Ruby, 477 00:22:04,210 --> 00:22:07,540 que é convenção sobre configuração. 478 00:22:07,540 --> 00:22:10,965 Então, de volta ao dia, as pessoas, a qualquer hora eles queriam fazer este site, 479 00:22:10,965 --> 00:22:12,340 teria de começar do zero. 480 00:22:12,340 --> 00:22:13,740 OK, eu quero fazer um site. 481 00:22:13,740 --> 00:22:15,970 Vamos fazer este arquivo e este arquivo e este arquivo. 482 00:22:15,970 --> 00:22:19,180 >> Com Ruby on Rails, não há nada disso. 483 00:22:19,180 --> 00:22:21,170 Você diz: Eu quero um novo app. 484 00:22:21,170 --> 00:22:25,010 E, assim como Gabe nos mostrou, ele cria toda a estrutura de arquivos para nós. 485 00:22:25,010 --> 00:22:27,490 E acabamos de mudar o pequenas peças que precisamos. 486 00:22:27,490 --> 00:22:31,570 Acabamos de personalizar o que é único sobre o nosso app. 487 00:22:31,570 --> 00:22:32,250 Com estilo. 488 00:22:32,250 --> 00:22:38,540 Então, voltando à nossa apresentação preview-- interessante. 489 00:22:38,540 --> 00:22:41,408 490 00:22:41,408 --> 00:22:42,724 Onde posso apresentar? 491 00:22:42,724 --> 00:22:43,640 AUDIÊNCIA: tela cheia. 492 00:22:43,640 --> 00:22:45,715 Top direita. 493 00:22:45,715 --> 00:22:48,480 >> ZACK CHAUVIN: Excelente. 494 00:22:48,480 --> 00:22:48,990 Com estilo. 495 00:22:48,990 --> 00:22:49,490 OK. 496 00:22:49,490 --> 00:22:51,480 Então, em primeiro lugar, o modelo. 497 00:22:51,480 --> 00:22:54,100 Stephen fez um impressionante trabalho de delinear MVC. 498 00:22:54,100 --> 00:22:57,980 E agora vamos relacionar que volta para Ruby on Rails. 499 00:22:57,980 --> 00:23:00,730 Assim, o modelo que você pode tipo de pensar em como o banco de dados. 500 00:23:00,730 --> 00:23:04,870 Você tem visto isso em CS50 Finanças, onde as lojas modelo 501 00:23:04,870 --> 00:23:07,590 a informação sobre quantas ações que você tem, 502 00:23:07,590 --> 00:23:10,986 ou todas as transações que você fez. 503 00:23:10,986 --> 00:23:12,860 Este é um exemplo de uma linha de como você faria 504 00:23:12,860 --> 00:23:15,640 ir sobre como fazer um novo modelo no Rails. 505 00:23:15,640 --> 00:23:17,102 Então, eu quero um usuário. 506 00:23:17,102 --> 00:23:19,060 Vai ter um e-mail, que é uma cadeia, 507 00:23:19,060 --> 00:23:20,990 e uma senha, que é também a string. 508 00:23:20,990 --> 00:23:27,150 Então, é como those-- Eu quero que cada fileira na minha tabela de usuários para se parecer com isso. 509 00:23:27,150 --> 00:23:30,730 >> A parte realmente impressionante sobre Rails é que ele 510 00:23:30,730 --> 00:23:33,755 torna desnecessária a escrever qualquer SQL muito bonito. 511 00:23:33,755 --> 00:23:38,640 Quantos de vocês amado escrever SQL em PSET 7? 512 00:23:38,640 --> 00:23:39,770 Exatamente. 513 00:23:39,770 --> 00:23:41,840 SQL não é muito fácil de usar. 514 00:23:41,840 --> 00:23:46,470 E Rails abstrai tudo o que fora com estes comandos realmente fáceis. 515 00:23:46,470 --> 00:23:51,580 Assim, por exemplo, se temos um usuário, o usuário tem muitos tweets. 516 00:23:51,580 --> 00:23:56,580 E cada um daqueles os tweets pertence a um usuário. 517 00:23:56,580 --> 00:23:59,520 >> Então, se você olhar aqui, este é o nosso modelo para o nosso tweet. 518 00:23:59,520 --> 00:24:02,750 E tudo o que temos a dizer é este único linha-- Estou um tweet 519 00:24:02,750 --> 00:24:05,090 e eu pertenço a um usuário. 520 00:24:05,090 --> 00:24:10,160 E com essa linha única e uma pouco de configuração de banco de dados, 521 00:24:10,160 --> 00:24:12,990 Rails estabelece essa relação. 522 00:24:12,990 --> 00:24:17,450 A qualquer momento, posso apenas dizer, zack.tweets, como, dar-me todo de tweets Zack. 523 00:24:17,450 --> 00:24:19,420 No SQL. 524 00:24:19,420 --> 00:24:20,040 Super fácil. 525 00:24:20,040 --> 00:24:26,580 Mais uma vez, isso é convenção sobre configuração entrando em jogo. 526 00:24:26,580 --> 00:24:29,770 >> Você pode ver um pouco de um exemplo de rubi aqui. 527 00:24:29,770 --> 00:24:32,740 Como disse Gave, escrever Ruby é tipo de como escrever Inglês. 528 00:24:32,740 --> 00:24:35,540 É uma linguagem muito alto nível, e torna-se muito fácil 529 00:24:35,540 --> 00:24:42,380 para nós a dizer coisas como, eu quero certificar-se de que este tweet tem um corpo. 530 00:24:42,380 --> 00:24:43,740 Sua presença é verdade. 531 00:24:43,740 --> 00:24:47,170 E eu quero ter certeza de que esta tweet, como Twitter normal, 532 00:24:47,170 --> 00:24:49,020 tem um comprimento máximo de 140. 533 00:24:49,020 --> 00:24:52,800 É super-intuitivo, um realmente grande língua. 534 00:24:52,800 --> 00:24:54,590 >> Em seguida temos a vista. 535 00:24:54,590 --> 00:24:57,510 Então, trata-se de HTML e CSS. 536 00:24:57,510 --> 00:25:00,490 E aqui está um exemplo de um ponto de vista. 537 00:25:00,490 --> 00:25:05,600 Então Ruby on Rails tipo de perfeição integra tanto Ruby e HTML 538 00:25:05,600 --> 00:25:08,880 a fim de gerar o que queremos na página. 539 00:25:08,880 --> 00:25:11,380 Portanto, este é um exemplo de nosso layout. 540 00:25:11,380 --> 00:25:15,710 Assim, você pode ver algumas marcas que você caras estão acostumados, como HTML, corpo, 541 00:25:15,710 --> 00:25:17,250 todas essas coisas boas. 542 00:25:17,250 --> 00:25:21,760 >> E bem aqui, no entanto, nós incorporar algumas Rubi, dizendo: 543 00:25:21,760 --> 00:25:25,390 se há uma mensagem a ser exibida, em seguida, exibir a mensagem em uma div. 544 00:25:25,390 --> 00:25:28,060 Então eu não vou ficar muito para isso. 545 00:25:28,060 --> 00:25:31,190 Mas este é geralmente um página que é renderizado on-- 546 00:25:31,190 --> 00:25:33,960 e não importa em que página você está on, este é renderizado. 547 00:25:33,960 --> 00:25:38,110 Então, isso é o que é incluído sempre. 548 00:25:38,110 --> 00:25:38,980 Com estilo. 549 00:25:38,980 --> 00:25:42,730 >> Outro exemplo de um view-- este é daquele em que escolheram todos os tweets. 550 00:25:42,730 --> 00:25:45,630 E algumas dessas coisas pode parecer bastante familiar. 551 00:25:45,630 --> 00:25:50,050 Assim, por exemplo, aqui, estamos loop através de cada um dos tweets 552 00:25:50,050 --> 00:25:51,960 e estamos a imprimi-los. 553 00:25:51,960 --> 00:25:54,320 Então, aqui é o lugar onde nós estamos imprimindo a corpo. 554 00:25:54,320 --> 00:26:00,910 E se user-- do Tweet Aqui é um exemplo real de não SQL está envolvido. 555 00:26:00,910 --> 00:26:04,390 Eu só estou pedindo, é este usuário do chilrear o usuário atual? 556 00:26:04,390 --> 00:26:06,030 Em seguida, mostrar um link para excluí-lo. 557 00:26:06,030 --> 00:26:06,880 É super simples. 558 00:26:06,880 --> 00:26:09,670 559 00:26:09,670 --> 00:26:10,920 >> O controlador. 560 00:26:10,920 --> 00:26:14,390 Portanto, este é, de novo, a interface entre o modelo ea vista. 561 00:26:14,390 --> 00:26:17,820 É o que faz o trabalho duro sendo de interacting-- o intermediário. 562 00:26:17,820 --> 00:26:20,980 Ele carrega informações para a ver, o que vamos ver em um segundo. 563 00:26:20,980 --> 00:26:23,850 E, a fim de interagir com o modelo, isto 564 00:26:23,850 --> 00:26:29,170 chama métodos modelo, que são o que vocês estão familiarizados como funções. 565 00:26:29,170 --> 00:26:31,490 >> Assim, por exemplo, esta é controlador do nosso tweet. 566 00:26:31,490 --> 00:26:33,930 Pode parecer um pouco assustadora agora. 567 00:26:33,930 --> 00:26:38,240 Mas na verdade é super intuitivo uma vez que você começar a mergulhar. 568 00:26:38,240 --> 00:26:42,990 Assim, por exemplo, em nosso índice, que é onde queremos mostrar todos os tweets. 569 00:26:42,990 --> 00:26:46,910 E assim esta linha, basicamente, apenas pede para todos os tweets. 570 00:26:46,910 --> 00:26:50,300 E então nós inicializar ambos os novos tweet-- assim como 571 00:26:50,300 --> 00:26:52,320 se eles querem criar um novo tweet nessa página. 572 00:26:52,320 --> 00:26:54,250 >> E ele pergunta o que o usuário atual é. 573 00:26:54,250 --> 00:26:58,850 E esta é muito semelhante ao renda que você viu na PSET 7, 574 00:26:58,850 --> 00:27:02,230 onde é apenas uma espécie de contar o view-- é uma espécie de, como, 575 00:27:02,230 --> 00:27:06,284 passando as variáveis ​​que você é vai precisar na vista para a vista. 576 00:27:06,284 --> 00:27:08,200 E há um grupo inteiro métodos de diferentes 577 00:27:08,200 --> 00:27:10,410 que o controlador deste Tweet pode manipular. 578 00:27:10,410 --> 00:27:12,495 >> Mas, realmente, Rails faz um grande trabalho de tipo 579 00:27:12,495 --> 00:27:18,910 de dividindo-os em diferentes ações que o controlador poderia fazer. 580 00:27:18,910 --> 00:27:23,800 Existem dúvidas sobre qualquer das partes MVC de Rails? 581 00:27:23,800 --> 00:27:25,550 Kind of apenas uma brisa. 582 00:27:25,550 --> 00:27:29,250 Então vocês podem verificar -lo em seu próprio país. 583 00:27:29,250 --> 00:27:30,106 Impressionante. 584 00:27:30,106 --> 00:27:31,200 Nós vamos continuar. 585 00:27:31,200 --> 00:27:32,546 >> Assim, a instalação Rails. 586 00:27:32,546 --> 00:27:35,170 Instalando o Rails pode ser, como, uma das partes mais assustadores 587 00:27:35,170 --> 00:27:37,830 dos trilhos inteiros processo, infelizmente. 588 00:27:37,830 --> 00:27:40,450 Mas, obviamente, todos nós estão por perto para ajudar. 589 00:27:40,450 --> 00:27:42,590 E uma vez que está lá, um monte de grandes recursos, 590 00:27:42,590 --> 00:27:45,100 Gabe como mencionado, para começar a trabalhar. 591 00:27:45,100 --> 00:27:47,230 Aqui estão os links que você vai precisar, a fim 592 00:27:47,230 --> 00:27:51,460 para baixar Rails para obtê-lo instalado em sua máquina. 593 00:27:51,460 --> 00:27:54,240 Obviamente, ele está disponível para Windows e Mac 594 00:27:54,240 --> 00:27:55,600 e para o aparelho CS50. 595 00:27:55,600 --> 00:27:58,520 596 00:27:58,520 --> 00:28:00,020 Perguntas sobre qualquer coisa que eu disse? 597 00:28:00,020 --> 00:28:04,265 598 00:28:04,265 --> 00:28:06,690 >> AUDIÊNCIA: Eu seria interessado, actually-- 599 00:28:06,690 --> 00:28:10,255 então eu sei que o download software é a maior barreira. 600 00:28:10,255 --> 00:28:14,807 Se há interesse suficiente para ter um download de mini-sessão ou algo assim. 601 00:28:14,807 --> 00:28:15,640 ZACK CHAUVIN: Hum-hum. 602 00:28:15,640 --> 00:28:15,692 Sim. 603 00:28:15,692 --> 00:28:16,900 Isso pode ser realmente útil. 604 00:28:16,900 --> 00:28:20,650 Se alguém é realmente entusiasta sobre usando isso para seu projeto 605 00:28:20,650 --> 00:28:26,555 ou no futuro, então nós definitivamente o prazer em falar com você sobre isso. 606 00:28:26,555 --> 00:28:27,055 Hum-hum. 607 00:28:27,055 --> 00:28:29,530 >> AUDIÊNCIA: Uma questão relacionada para o que eu pedi antes. 608 00:28:29,530 --> 00:28:32,563 Para aqueles de vocês que têm feito outras estruturas que ainda estão 609 00:28:32,563 --> 00:28:34,354 tentando fazer o mesmo coisa, torná-lo mais fácil 610 00:28:34,354 --> 00:28:38,452 para construir um site ou um funcionalidade, eu acho que qualquer sentido 611 00:28:38,452 --> 00:28:43,653 de por que seria on Rails contra Zend ou alguns dos outros frameworks 612 00:28:43,653 --> 00:28:44,236 e idiomas. 613 00:28:44,236 --> 00:28:47,870 >> ZACK CHAUVIN: Eu só vou dizer que o meu $ 0,02 sobre isso. 614 00:28:47,870 --> 00:28:49,090 Eu amo o Ruby on Rails. 615 00:28:49,090 --> 00:28:52,120 Eu tive a chance de trabalhar tanto em PHP e Ruby on Rails. 616 00:28:52,120 --> 00:28:55,291 Eu prefiro muito mais Ruby on Rails por causa de Ruby. 617 00:28:55,291 --> 00:28:56,790 Definitivamente, isso é uma grande parte disso. 618 00:28:56,790 --> 00:28:58,140 Como, quando você está escolher o seu enquadramento, 619 00:28:58,140 --> 00:28:59,490 você também escolher o idioma. 620 00:28:59,490 --> 00:29:03,510 >> Rubi é super accessible-- eu acho uma linguagem muito melhor do que PHP. 621 00:29:03,510 --> 00:29:06,250 Mas esse é o tipo de preferência pessoal. 622 00:29:06,250 --> 00:29:09,360 Como assim, uma outra consideração é a comunidade de trás do quadro 623 00:29:09,360 --> 00:29:11,570 que você está trabalhando. 624 00:29:11,570 --> 00:29:13,840 >> Agora Ruby on Rails é realmente quente. 625 00:29:13,840 --> 00:29:16,160 Há toneladas de apoio por trás dele. 626 00:29:16,160 --> 00:29:19,180 Você postar algo sobre Stack Overflow sobre um problema que você está 627 00:29:19,180 --> 00:29:22,350 Tendo em Ruby on Rails, e é atendida. 628 00:29:22,350 --> 00:29:26,900 Novamente, é open source, o que significa que está constantemente a ser alterado. 629 00:29:26,900 --> 00:29:28,910 Há milhares de pessoas que são realmente dedicados 630 00:29:28,910 --> 00:29:32,370 a fim de tornar este um quadro realmente incrível. 631 00:29:32,370 --> 00:29:34,225 Então é por isso que eu faria escolher Ruby on Rails. 632 00:29:34,225 --> 00:29:35,225 GABRIEL GUIMARAES: Yeah. 633 00:29:35,225 --> 00:29:37,562 Eu diria que a idéia atrás a maioria dos frameworks você é 634 00:29:37,562 --> 00:29:39,770 vai encontrar lá fora é muito, muito semelhante, certo? 635 00:29:39,770 --> 00:29:42,210 Assim, o Model View Controller, o fato de que nosso controlador de 636 00:29:42,210 --> 00:29:44,793 vai parecer algo como isto-- cada uma das funções 637 00:29:44,793 --> 00:29:47,235 é como uma de suas páginas, e ele redireciona você, 638 00:29:47,235 --> 00:29:48,750 e ele inicializa as variáveis. 639 00:29:48,750 --> 00:29:51,959 Essa vai ser a mesma coisa para cada quadro que você vê por aí. 640 00:29:51,959 --> 00:29:53,375 E aí, vai ser o modelo. 641 00:29:53,375 --> 00:29:55,270 E você pode fazer coisas como, "pertence". 642 00:29:55,270 --> 00:29:59,830 Então, ao invés de fazer a versão SQL, você apenas, como, fazer, user.tweets, 643 00:29:59,830 --> 00:30:01,210 e você tem tudo. 644 00:30:01,210 --> 00:30:02,650 Todo mundo tem isso. 645 00:30:02,650 --> 00:30:07,070 Exceto em Ruby, você faz user.tweets, e, em seguida, alguns frameworks em PHP, 646 00:30:07,070 --> 00:30:12,010 você faz user.getalltweets Onde meu PHP não é um problema. 647 00:30:12,010 --> 00:30:13,460 Como, é uma grande linha. 648 00:30:13,460 --> 00:30:15,320 É a mesma coisa, mas é uma grande linha. 649 00:30:15,320 --> 00:30:19,350 >> Então essa é uma das principais razões das minhas preferências sobre Ruby. 650 00:30:19,350 --> 00:30:22,290 É só eu faço exatamente o mesma coisa em outros frameworks, 651 00:30:22,290 --> 00:30:26,021 ele só me leva duas vezes como longas linhas de código. 652 00:30:26,021 --> 00:30:26,520 OK? 653 00:30:26,520 --> 00:30:29,730 654 00:30:29,730 --> 00:30:32,540 >> Alguma outra pergunta? 655 00:30:32,540 --> 00:30:35,200 >> ZACK CHAUVIN: Algo Vou mencionar quickly-- Gabe 656 00:30:35,200 --> 00:30:36,682 Conversamos um pouco sobre pedras preciosas. 657 00:30:36,682 --> 00:30:39,890 E isso é realmente um great-- Quer dizer, isso é uma espécie de comum a todos os quadros, 658 00:30:39,890 --> 00:30:45,170 que há uma espécie de conceito gema, que é como no meu pequeno exemplo, 659 00:30:45,170 --> 00:30:46,680 Tenho login. 660 00:30:46,680 --> 00:30:48,460 Tipo, você pode entrar, sair. 661 00:30:48,460 --> 00:30:51,740 Como, que é, na verdade, tipo de um processo complexo. 662 00:30:51,740 --> 00:30:55,950 Ele foi tratado um pouco bit para você em PSET 7. 663 00:30:55,950 --> 00:31:01,160 Mas eu ainda não sei totalmente como para implementar sign-in, sign-out. 664 00:31:01,160 --> 00:31:03,740 E isso é porque Ruby on Rails tem toneladas 665 00:31:03,740 --> 00:31:06,080 de gemas que fazem esse tipo de coisa para você. 666 00:31:06,080 --> 00:31:08,550 >> Mais uma vez, convenção sobre configuração. 667 00:31:08,550 --> 00:31:11,050 Todo mundo vai estar fazendo este sign-in, passo assinar-out. 668 00:31:11,050 --> 00:31:14,450 Então por que não fazer um pacote, chamado Conceber, neste caso, o que é uma jóia. 669 00:31:14,450 --> 00:31:15,810 Você simplesmente incluí-lo. 670 00:31:15,810 --> 00:31:18,970 E então há alguma ajuda em linha com a forma de usá-lo. 671 00:31:18,970 --> 00:31:21,230 E você não precisa se preocupar sobre qualquer coisa assim. 672 00:31:21,230 --> 00:31:24,060 >> Colocar imagens para estes coisas- uma jóia para isso. 673 00:31:24,060 --> 00:31:27,220 Como, quando você está tentando fazer nada de novo, há uma jóia para isso. 674 00:31:27,220 --> 00:31:29,420 E você tipo de apenas juntar essas jóias 675 00:31:29,420 --> 00:31:33,160 e construir realmente um complexo aplicação muito rapidamente. 676 00:31:33,160 --> 00:31:35,902 677 00:31:35,902 --> 00:31:37,437 Com estilo. 678 00:31:37,437 --> 00:31:38,270 Alguma outra pergunta? 679 00:31:38,270 --> 00:31:39,623 >> STEPHEN TURBAN: Woo-hoo. 680 00:31:39,623 --> 00:31:40,976 Eu não acho que [inaudível]. 681 00:31:40,976 --> 00:31:41,966 >> GABRIEL GUIMARAES: OK. 682 00:31:41,966 --> 00:31:42,840 Muito obrigado, pessoal. 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 [Aplausos] 687 00:31:48,150 --> 00:31:49,700 >> Yay. 688 00:31:49,700 --> 00:31:50,955