>> [Música tocando]
>> STEPHEN TURBAN: Então, eu estou Stephen turbante.
Ao longo do lado aqui, talvez nós pode obter algumas pessoas para mergulhar em.
Temos Gabriel e Zack.
Então, por um breve roteiro sobre o que isso vai se parecer,
Eu vou estar fazendo alguma extremamente olhar de alto nível para o que é MVC.
Gabe?
>> GABRIEL GUIMARAES: eu vou falar sobre Ruby e um pouco
como o Rails funciona e como ele pode ajudá-lo a construir aplicações web.
>> ZACK CHAUVIN: E eu vou mostrar-lhe um exemplo concreto de como
usar Rails para construir um app super incrível.
STEPHEN TURBAN: Awesome.
Doce.
Tudo certo.
Então vamos falar sobre MVC.
Então vamos para o próximo slide, que Vou fazer pressionando esse botão.
E vamos para o desenvolvimento next--, Eu gosto de pensar em ir para CVS,
porque CVS é ​​uma loja e também tem um V no centro.
>> E assim vamos imaginar a uma loja.
E vamos fazer esta loja vender apenas uma coisa.
Então nós vamos ter essa armazenar apenas vender esses copos vermelhos.
E imagine que caminhar, e você ir à frente da loja, por pessoa.
E o nome dele é Vince.
>> E Vince ondas Olá para você, diz oi.
E você percebe uma coisa sobre Vince.
Assim, sempre que pensamos em Vince, nós tem que pensar em dois adjetivos-chave.
Vince é bonito, mas é estúpido.
OK.
Então, você sabe, não por culpa própria, Infelizmente, ele é lindo.
Ele é o nosso ponto de vista.
Assim, nosso primeiro membro do elenco está lá.
Tenha isso em mente.
>> Agora, você pergunta Vince, você vai, hey Vince.
Eu sou um cliente.
Ele diz oi.
Eu realmente quero um de seus copos vermelhos.
E o que Vince dizer?
Alguém tem alguma idéia do que Vince diz?
Vou chamada fria.
O que você acha Vince diz?
>> AUDIÊNCIA: Ele diz, eu posso mostrar-lhe onde ele está, mas eu não posso dar-lhe um.
>> STEPHEN TURBAN: Ele diz, eu posso mostrar-lhe onde ele está, mas eu não posso dar-lhe um.
Ainda pior.
Alguém tem outra idéia do que Vince poderia dizer?
>> AUDIÊNCIA: Ele tem que ir de seleção se eles têm alguma copos vermelhos.
STEPHEN TURBAN: Vince não mesmo sabe que ele tem que verificar.
Algo mais?
Então você disse, tem que verificar se ele tem copos vermelhos.
Continue.
AUDIÊNCIA: O que é um copo vermelho?
STEPHEN TURBAN: O que é um copo vermelho?
O que é um copo vermelho?
Vince é confuso.
Então Vince vai falar com nosso próximo membro do elenco, Carl.
E quando pensamos sobre Carl, nós gotta pensar sobre dois grandes adjectives--
ele é controlador, mas ele é incapaz.
>> Então Vince goes-- ele vai, o que é um copo vermelho?
Eu não sei o que é um copo vermelho.
Ele se vira, e ele pergunta Carl.
Ele diz que, Carl, alguém pediu um copo vermelho.
Você pode fazer isso?
E o que Carl dizer?
Vamos descobrir isso.
Alguém tem alguma idéia do que Carl diz?
E eu só vou repeti-lo de volta para você.
Eu vi um movimento da mão.
>> AUDIÊNCIA: Ele diz a alguém outra coisa para obter os copos vermelhos.
>> STEPHEN TURBAN: Ele diz outra pessoa para obter o copo vermelho.
Exatamente.
E nós temos uma idéia que essa pessoa possa ser?
É uma dica.
Vai começar com um M. Mob?
>> AUDIÊNCIA: Modelo.
>> STEPHEN TURBAN: O modelo, sim.
Seu nome não é o modelo, infelizmente, porque isso é um nome bobo.
Temos Mitt.
E quando pensamos sobre Mitt-- não, isso não é uma imagem de Zack.
Temos que pensar em dois adjetivos chave com Mitt.
Ele é capaz, mas ele é submisso.
Então Mitt sabe o que tem que fazer, mas ele realmente não pode fazer nada.
Ou ele realmente não pode decidir sobre o seu próprio.
>> Portanto, temos Carl.
Carl grita com Mitt.
E ele diz, hey Mitt, precisamos de copos vermelhos.
E Mitt vai para o seu copo depositário vermelho.
Ele pega um copo, e ele dá-lo de volta.
Alguém tem alguma idéia do que acontece então?
Dá a taça.
Até agora, Mitt foi a seu vermelho repositório copo, tomada para fora,
verifiquei fora, disse: Tomei um copo vermelho.
E ele está dando para Carl.
Você tem uma idéia?
O que você acha Carl faz?
>> AUDIÊNCIA: Carl dá para Vince.
>> STEPHEN TURBAN: Carl dá para Vince.
Vince.
>> AUDIÊNCIA: E Vince mostra-lo para [inaudível].
STEPHEN TURBAN: Exatamente.
Então, é exatamente isso.
Então Vince leva a taça, nem sequer sabe o que é,
mas ele mostra que para o utilizador.
Então, vamos tentar recriar isso realmente brevemente.
E vamos precisar três voluntários silenciosos,
como vocês não vão para ser capaz de falar.
Então, eu poderia pegar três?
OK.
E quem você gostaria de ser?
>> AUDIÊNCIA: Eu vou ser Vince.
>> STEPHEN TURBAN: Vince, OK.
Bonito, mas estúpido.
Ótimo.
Mais alguém?
Estamos à procura de um capaz, mas submissa.
Alguém mais quer ser capaz?
>> AUDIÊNCIA: eu poderia ser Carl.
STEPHEN TURBAN: Sweet.
Temos Carl.
>> AUDIÊNCIA: Mitt.
>> STEPHEN TURBAN: Mitt, OK.
E nós vamos precisar a-- eu vou ser o cliente.
Então vamos lá para cima, vamos lá para cima.
E está todo mundo no ponto de vista?
Então, eu vou pedir para Vince ficar na frente, apenas sorrindo,
apenas sorrindo tão brilhante quanto possível.
E nós vamos pedir a Carl, certo, por que não fazê-lo, como,
ficar bem atrás dela?
E Mitt, por que não fazê-lo basta ir off na parte de trás,
e então eu vou dar-lhe um grupo de copos para sair com.
>> Então, eu sou um cliente.
Eu venho.
E eu faço [inaudível] I dizer, oi, eu gostaria de uma xícara.
Perfeito.
Então Vince não tem idéia.
Então, o que Vince fazer a seguir?
Vince-- OK, então eu vou para ser narrante agora.
>> Vince grita com Carl, copo!
O que Carl fazer?
Carl grita com Mitt.
Mitt pega um copo.
Mitt dá para Carl.
Carl retorna para Vince.
Vince e mostra para o utilizador.
>> E isso é um alto, alto, alta tão alto olhar, a MVC.
Nós dividi-lo por ter um ponto de vista, o que o usuário vê, um controlador, alguém
que faz tudo em segundo plano mas realmente não pode atualizar qualquer coisa
ou não pode fazer nada de qualquer significado exceto chamando a vista e do modelo.
E então nós temos Mitt, o modelo, que atualiza todos os dados que temos.
Então, muito obrigado para a nossa bela, controlar e voluntários capacitados.
E eu acho que foi isso.
>> [Aplausos]
>> Eu acho que Gabe vai falar agora em um nível elevado talvez menos.
>> GABRIEL GUIMARAES: Ok, caras.
Agora vamos falar um pouco mais sobre código e sobre Ruby on Rails em si,
e sobre como ele se relaciona a todos desta história MVC.
Basicamente, Ruby on Rails é um framework.
Mais sobre isso em um segundo.
>> Mas só para lhe dar um senso de quem o está usando,
como, todos estes grandes companies-- assim GitHub, Groupon, Twitter--
todos estão utilizando Ruby on Rails como quadro principal
para implementar seu website.
Então, eu tenho certeza que um monte de gente ter usado esses sites aqui.
E é tudo Ruby on Rails para implementar o modelo, a vista, eo controlador
em todos estes sites e muitos mais.
OK?
>> Então, como eu disse, Ruby on Rails é um framework.
E você pode tipo de pensar de um quadro no sentido de como construir uma casa.
Então, se você estiver indo para construir um house-- e você sempre pode
começar do zero, certo?
Você pode tentar chegar com um modo para serrar a madeira,
e para trazer a madeira para o local, e para obter as pedras na forma certa,
e depois de tudo isso.
Mas isso vai demorar provavelmente lotes de anos
até obter todo o material, e você começa tudo junto,
e você realmente começar para construir sua casa.
>> Então não é que se você começar com um quadro com algo que é
já no tipo de lugar para qualquer tipo de casa
que você deseja algo build-- isso é muito genérico, mas que você pode
em seguida, modelar em direção ao seu próprio goals-- então você pode aproveitar
este poder dos quadros para construir -lhes algo muito, muito mais rápido.
OK.
Portanto, esta é a mesma idéia em uma quadro para uma aplicação web
ou para qualquer tipo de aplicação, para essa matéria.
>> Você realmente começar com metade de uma aplicação
já está lá no lugar para você.
E por isso, quero dizer que você obter lotes de arquivos que já possuem funções,
como bibliotecas, como funcionalidade, e os comandos que podem ser executados em ordem
para tornar a sua vida muito mais mais simples e mais fácil.
OK.
>> Portanto, neste caso, nós vamos para falar sobre Ruby on Rails.
Há lotes de diferentes Estruturas lá fora.
Há Django para Python.
Há Zend Framework ou Laravel para PHP.
Há muitas diferentes.
Ruby on Rails é um novo muito agradável.
Um monte de gente usar isso em startups e este tipo de ambiente.
E algumas delas muito grande empresas que eu mostrei aqui antes
também estão usando Ruby on Rails.
>> Então, só para lhe dar um sensação de que Ruby é
como, já que vocês são mais utilizados para, como, C e um pouco de PHP
agora, para o Ruby vai ser o equivalente de seu PHP neste sentido.
Este não é rubi.
Este é C. OK?
Mas isto é como a Função DJBHash que eu
Conheço muitas pessoas usadas para erros ortográficos PSET.
>> E em Ruby, bastante bem como em PHP, você
poderia implementar isso com apenas algumas linhas de código.
Em vez de ter que se preocupar sobre a função hash,
ter que se preocupar com os baldes, e tudo isso, você pode simplesmente dizer:
dicionário = Hash.net.
E então você usa o tipo de como a mesma idéia que tinha PHP.
E por isso é a verdade.
E então se você quiser verificar, de modo a verificar a função
seria se dicionário "foo" é igual a igual a true, return true.
E isso é tudo, OK?
>> Então você notar algumas diferenças.
Não há ponto e vírgula aqui, como havia em C.
Mas a idéia geral é muito semelhante.
OK?
>> Além disso, em Ruby, existem pedras preciosas, que são uma espécie de as bibliotecas Ruby.
E Rails processa-los em uma maneira muito agradável para você.
Então, se você quiser colocar em alguns biblioteca que
faz-mails, ou que faz de mensagens de texto,
ou que faz com integração Facebook, ou qualquer tipo de coisa
assim para o seu app, é muito, muito fácil.
As probabilidades são que você pode encontrar algo assim na internet.
E eles simplesmente fazer algo como put que
gem que você deseja usar no arquivo de jóia.
E então Rails instala tudo.
Você não tem que se preocupar com qualquer de que, de modo que é muito legal.
Além disso, há muito, abundância de ajuda online.
Assim, você pode encontrar um monte de coisas.
Se você tem um erro, você pode simplesmente pesquisar no Google,
e que vai ser muito fácil de obter ajuda.
>> E é um monte de diversão-- exactly-- porque você
não tem que se preocupar com o baixo nível detalhes, a implementação de tabelas de hash
e ter que vir para cima com tudo os cabeçalhos HTTP, e um monte de coisas,
e até mesmo algumas coisas nível mais superior.
Você não tem que se preocupar sobre isso em Rails.
Ele faz isso muito, muito bem para você.
E nós estamos indo para mostrar que mais concretamente muito em breve.
OK.
>> Então, um pouco sobre o Ruby novamente.
Então, é como C, como eu disse.
Em vez de printf, dizemos "Coloca", que é "colocar string."
Ele coloca uma string para o console.
E, neste caso, estamos apenas imprimir "Olá mundo".
Nós não precisamos de os parênteses, mas é bastante semelhante.
>> E então se você quiser fazer alguma coisa aqui,
como imprimir um monte de "roupas íntimas" e um bando de "bigs" em um loop While,
é tipo como em C, certo?
Você não tem os parâmetros, mas é praticamente o mesmo.
O recuo aqui contagem, então x é igual a 1.
E então Enquanto x é menor do que 50-- este é um caso, este é um Else.
É muito parecido com o que viu.
>> E, em seguida, x + = 1 é apenas incrementando, tipo de como fazer a ++ que você pode
fazer em C. Mas é muito muito do que viu em C.
Não deve ser muito complicado.
Mas é mais poderoso.
Portanto, há alguns comandos aqui que são definitivamente um pouco mais recente.
>> Assim, por exemplo, "puts".
Você pode usar esta notação hashtag aqui apenas para imprimir something--
muito parecido com o que você faria se a% D ou% C ou um pouco parecido.
E você pode realmente colocar um Se logo após a declaração.
Então eu só quero fazer isso- Se x for maior do que 3.
Então, por que eu tenho que fazer uma inteira Se o bloco?
Eu não sei.
Eu só posso imprimir esta só se x é igual a superior a 3.
Portanto, esta é uma forma de uma linha de fazer isso em Ruby.
>> Uma lista em Ruby é algo muito versátil.
Então, você realmente não precisa ter apenas um tipo.
Você pode ter uma seqüência, e em seguida alguns números, e qualquer que seja.
E se você deseja anexar algo a uma lista,
você pode apenas usar esse notação aqui.
>> E se você quiser fazer uma iteração.
Praticamente o 4each em PHP, aqui, você tem uma lista e você faz "List.each fazer."
E este "elem," esta é como o nome de cada elemento
que eu vou ter na minha lista.
E então eu posso apenas "coloca elem."
E "coloca" Praticamente alças colocá-lo para você, imprimi-lo.
Não importa se é uma string ou um int.
Vai resolver isso para você.
Certo?
Com estilo.
>> E, assim como PHP, Ruby e HTML também integrar muito, muito bem.
E aqui, há alguns HTML com Ruby na mesma.
Portanto, temos uma tag corpo como em HTML.
E se queremos verificar que um utilizador é, por exemplo,
logado, podemos apenas dizer que, a partir de Ruby, se user.logged_in ?, final de Ruby.
Imprima esta coisa toda, que tem algum Ruby in-lo, o que é justo
tipo como de que a sintaxe para PHP que imprime uma variável.
Vamos imprimir o user.name.
>> Então, bem-vindo, Stephen, dentro de uma div HTML.
E, no final, temos um "fim" e Código Ruby, o que significa que esta é a minha
Se o bloco.
OK?
Então, é como uma perfeita integração entre Ruby e HTML.
Há também grande quantidade de recursos.
Mas, antes de seguir em frente, alguém tem dúvidas sobre Ruby, alguma coisa?
OK.
>> Há muitos recursos on-line para tryruby.org, Code Academy,
ruby-lang.org, onde você pode experimentá-lo para fora em seu navegador antes de você realmente
digo, oh, OK, eu vou usar Ruby para o meu projeto final.
E assim definitivamente dar aqueles tentar.
Todos esses slides são vai estar disponível on-line,
assim você pode simplesmente baixá-los.
E sim?
>> AUDIÊNCIA: [inaudível] o que você apenas mostrou
foi HTML eo código embutido em -lo para essa noção de Model View
Controlador?
>> GABRIEL GUIMARAES: Sim.
Faremos isso em um segundo quando mostramos nosso exemplo, OK?
Obrigado pela pergunta.
Portanto, a questão era, basicamente, se nós pode mostrar essa integração do Ruby
em HTML no Modelo Ver quadro Controller.
>> Assim, a idéia do Modelo Quadro View Controller
é que é, basicamente, uma filosofia, apenas como Stephen mostrou aqui.
E não é algo que você tem que fazer,
mas é algo que faz a sua vida muito mais simples.
E Ruby on Rails é construído em torno desta filosofia de código.
Então, nós estamos indo para mostrar um exemplo muito em breve.
>> Então Rails é o amor.
Um monte de pessoas estão usando-o, como eu disse.
E é muito divertido.
Vocês deveriam definitivamente dar-lhe uma tentativa.
MVC torna tudo mais simples.
Assim, o Model View Controller, as coisas que separam
e colocando uma pessoa, por si só, ou uma parte do seu aplicativo
para fazer cada um dos diferentes empregos que a aplicação tem de fazer.
E menos tempo gasto sobre os problemas de baixo nível.
E muito popular agora.
Temos Rails 4.0, que é uma nova versão.
E ele vem com um monte de coisas legais.
Outra pergunta.
>> AUDIÊNCIA: Outra pergunta.
Ruby on Rails contra Ruby on Rails Grails.
>> GABRIEL GUIMARAES: OK.
A pergunta era, Ruby on Rails contra Ruby--
AUDIÊNCIA: Grails.
Ruby?
>> GABRIEL GUIMARAES: Yeah.
Então Ruby é a linguagem.
>> AUDIÊNCIA: Não.
Eu estou pedindo para você comparar uma língua e um quadro, Ruby on Rails,
com outra linguagem popular framework-- Grails-- com Ruby
on Rails.
>> GABRIEL GUIMARAES: OK.
Desculpe.
A questão foi, compare Ruby e Ruby on Rails
para outro quadro e another--
>> AUDIÊNCIA: Ruby.
Está certo.
Se você não sabe sobre isso, tudo bem.
>> GABRIEL GUIMARAES: Como, o que eu entendo é isso--
>> AUDIÊNCIA: Não há outro framework chamado Grails.
>> GABRIEL GUIMARAES: Oh, Grails.
Eu nunca ouvi falar disso.
Desculpe.
Eu nunca ouvi falar de Groovy on Rails.
Desculpe.
>> AUDIÊNCIA: É muito melhor integrado com Java.
>> GABRIEL GUIMARAES: Entendo.
>> AUDIÊNCIA: Eu sou apenas um curioso sobre algumas pessoas que conheço como--
>> GABRIEL GUIMARAES: Não, eu nunca ouviu falar que um, infelizmente.
Grails.
>> AUDIÊNCIA: E algumas pessoas obviamente, como Ruby on Rails.
>> GABRIEL GUIMARAES: Eu tenho rubi usados ​​on Rails muito.
Eu usei alguns Django com Python, como eu disse.
Eu usei alguns Laravel.
Mas eu não tinha usado Groovy on Rails.
Desculpe.
E é muito popular agora com Rails 4.0.
Como, algumas das coisas que o Rails faz por você, por exemplo, é você
tem um monte de arquivos CSS e lotes de arquivos JavaScript.
E você pode tratá-los como separado e tudo.
>> Mas, então, quando automatically-- você envia o seu código para produção,
ele compila automaticamente los todos em um único arquivo
que é minified, sem qualquer espaços, de modo que ele ocupa
menos espaço em sua aplicação, de modo que você pode realmente escalar coisas muito.
É por isso que essas grandes empresas como Twitter e GitHub
estão usando Rails, porque ele faz tudo que, para você, o que é muito legal.
>> Uma coisa que é muito, muito, muito assustador
para as pessoas, inclusive eu, que estão tentando trabalhar
com um quadro no início, é que quando você começa uma aplicação,
você vai ver um monte de arquivos.
Como, quando você cria Rails Nova, o meu pedido,
você vai ver tudo isso folders-- app, bin, configuração, db, lib,
log, público.
Como, montes e montes de coisas.
>> E a primeira vez que eu vi aquilo, eu era como,
OK, eu não tenho idéia do que está acontecendo.
Eu só quero criar uma Web site com "Olá, mundo",
e isso está me dando, como, 100 bilhões de páginas diferentes.
Eu não sei o que está acontecendo.
Então, por favor, não ser muito assustados com isso.
>> A idéia é que ele realmente tem metade de uma casa lá para você já.
Tem um inteiro quadro para você já.
É por isso que há tantos arquivos.
Mas a coisa boa é que ele separa todos eles muito bem.
As probabilidades são de que você não precisa se preocupar sobre a maioria dessas pastas.
>> O mais importante, eu diria, é a pasta app,
onde seu app realmente vive.
Assim, a configuração, você vai tem de configurar algumas coisas,
como seu banco de dados e coisas assim que tipo de banco de dados que você está usando.
Mas além disso, como a maioria dos o seu trabalho vai ser feito em app.
Assim, em app, você tem ativos, controladores, ajudantes, malas diretas, modelos, pontos de vista.
Então, aqui, você começa a ver que controladores, modelos e pontos de vista vêm
em jogo.
>> Utentes são apenas se você deseja enviar e-mails.
Helpers se você quiser criar algumas funções
que você usa muito na vista.
Então você colocá-los em ajudantes.
E activos é basicamente todos suas imagens, todo o seu CSS,
todo o seu JavaScript, e como esses tipos
de coisas que são enviados para o cliente.
E tudo o que está no ativo, que eu disse antes, fica minified.
Ela é compilada.
E você realmente não precisa se preocupar com que, quando se vai para o código de produção.
Com estilo.
>> Agora Zack vai entrar, e ele é vamos fazer um exemplo de Twitter50.
>> AUDIÊNCIA: Woo-hoo!
>> ZACK CHAUVIN: Awesome.
Então eu tive a chance de trabalhar com Ruby on Rails neste verão.
É um quadro surpreendente.
Estou muito parcial a ele.
E eu vou mostrar-lhe um pouco de um exemplo do que pode parecer.
Ir até Chrome.
Portanto, este é um exemplo de uma forma muito simples Ruby on Rails application-- algo
como este é algo que Ruby realmente se destaca
isso-- apenas onde o seu modelos são muito bem definido.
>> Neste exemplo, você verá dois modelos diferentes, que
são de que temos usuários e temos tweets.
Portanto, este é Twitter50, Próprio Twitter de Harvard.
Como você pode ver, eu estou logado comozack.
E eu sou capaz de fazer novos tweets.
Então eu penso-- "Este é um" - desculpe?
AUDIÊNCIA: [inaudível].
ZACK CHAUVIN: Oh, OK.
Precisa parar o servidor.
Excelente.
Então aqui estamos nós.
Como você pode ver, temos a nossa Twitter aplicativo aqui.
E é super fácil de iniciar o servidor.
Nós vamos apenas fazer "servidor trilhos."
Ótimo.
OK.
Obrigado por isso.
Então, agora nós estamos correndo.
>> E nós vamos dizer: "Este é um seminário incrível. "
E vamos ver o que acontece.
Então, nós vamos twittar sobre isso.
Lá no fundo, você pode ver agora há mais de três tweets.
Então nós temos um pouco de paginação acontecendo.
E nós temos que tweet.
E eu também pode procurar através do meu Pesquisa tweets-- para este e os dois
aqueles que têm a palavra "This" neles aparecem.
Nós também pode apagar os tweets por clicando no pequeno botão Delete.
E, obviamente, eu só posso apagar o posto que pertencia a mim.
>> Já, nós quase ter a funcionalidade do Twitter.
Como, quando você pensa sobre isso, Twitter realmente não faz muito.
Tem os usuários, tem tweets.
Há algumas funcionalidades mais complexas.
Mas quando você realmente começar a ele, é bem um aplicativo simples Ruby on Rails.
E algo assim, com um bom entendimento do Ruby on Rails,
você poderia provavelmente fazer em uma ou duas horas.
>> E isso vem realmente de volta para o mantra Ruby,
que é convenção sobre configuração.
Então, de volta ao dia, as pessoas, a qualquer hora eles queriam fazer este site,
teria de começar do zero.
OK, eu quero fazer um site.
Vamos fazer este arquivo e este arquivo e este arquivo.
>> Com Ruby on Rails, não há nada disso.
Você diz: Eu quero um novo app.
E, assim como Gabe nos mostrou, ele cria toda a estrutura de arquivos para nós.
E acabamos de mudar o pequenas peças que precisamos.
Acabamos de personalizar o que é único sobre o nosso app.
Com estilo.
Então, voltando à nossa apresentação preview-- interessante.
Onde posso apresentar?
AUDIÊNCIA: tela cheia.
Top direita.
>> ZACK CHAUVIN: Excelente.
Com estilo.
OK.
Então, em primeiro lugar, o modelo.
Stephen fez um impressionante trabalho de delinear MVC.
E agora vamos relacionar que volta para Ruby on Rails.
Assim, o modelo que você pode tipo de pensar em como o banco de dados.
Você tem visto isso em CS50 Finanças, onde as lojas modelo
a informação sobre quantas ações que você tem,
ou todas as transações que você fez.
Este é um exemplo de uma linha de como você faria
ir sobre como fazer um novo modelo no Rails.
Então, eu quero um usuário.
Vai ter um e-mail, que é uma cadeia,
e uma senha, que é também a string.
Então, é como those-- Eu quero que cada fileira na minha tabela de usuários para se parecer com isso.
>> A parte realmente impressionante sobre Rails é que ele
torna desnecessária a escrever qualquer SQL muito bonito.
Quantos de vocês amado escrever SQL em PSET 7?
Exatamente.
SQL não é muito fácil de usar.
E Rails abstrai tudo o que fora com estes comandos realmente fáceis.
Assim, por exemplo, se temos um usuário, o usuário tem muitos tweets.
E cada um daqueles os tweets pertence a um usuário.
>> Então, se você olhar aqui, este é o nosso modelo para o nosso tweet.
E tudo o que temos a dizer é este único linha-- Estou um tweet
e eu pertenço a um usuário.
E com essa linha única e uma pouco de configuração de banco de dados,
Rails estabelece essa relação.
A qualquer momento, posso apenas dizer, zack.tweets, como, dar-me todo de tweets Zack.
No SQL.
Super fácil.
Mais uma vez, isso é convenção sobre configuração entrando em jogo.
>> Você pode ver um pouco de um exemplo de rubi aqui.
Como disse Gave, escrever Ruby é tipo de como escrever Inglês.
É uma linguagem muito alto nível, e torna-se muito fácil
para nós a dizer coisas como, eu quero certificar-se de que este tweet tem um corpo.
Sua presença é verdade.
E eu quero ter certeza de que esta tweet, como Twitter normal,
tem um comprimento máximo de 140.
É super-intuitivo, um realmente grande língua.
>> Em seguida temos a vista.
Então, trata-se de HTML e CSS.
E aqui está um exemplo de um ponto de vista.
Então Ruby on Rails tipo de perfeição integra tanto Ruby e HTML
a fim de gerar o que queremos na página.
Portanto, este é um exemplo de nosso layout.
Assim, você pode ver algumas marcas que você caras estão acostumados, como HTML, corpo,
todas essas coisas boas.
>> E bem aqui, no entanto, nós incorporar algumas Rubi, dizendo:
se há uma mensagem a ser exibida, em seguida, exibir a mensagem em uma div.
Então eu não vou ficar muito para isso.
Mas este é geralmente um página que é renderizado on--
e não importa em que página você está on, este é renderizado.
Então, isso é o que é incluído sempre.
Com estilo.
>> Outro exemplo de um view-- este é daquele em que escolheram todos os tweets.
E algumas dessas coisas pode parecer bastante familiar.
Assim, por exemplo, aqui, estamos loop através de cada um dos tweets
e estamos a imprimi-los.
Então, aqui é o lugar onde nós estamos imprimindo a corpo.
E se user-- do Tweet Aqui é um exemplo real de não SQL está envolvido.
Eu só estou pedindo, é este usuário do chilrear o usuário atual?
Em seguida, mostrar um link para excluí-lo.
É super simples.
>> O controlador.
Portanto, este é, de novo, a interface entre o modelo ea vista.
É o que faz o trabalho duro sendo de interacting-- o intermediário.
Ele carrega informações para a ver, o que vamos ver em um segundo.
E, a fim de interagir com o modelo, isto
chama métodos modelo, que são o que vocês estão familiarizados como funções.
>> Assim, por exemplo, esta é controlador do nosso tweet.
Pode parecer um pouco assustadora agora.
Mas na verdade é super intuitivo uma vez que você começar a mergulhar.
Assim, por exemplo, em nosso índice, que é onde queremos mostrar todos os tweets.
E assim esta linha, basicamente, apenas pede para todos os tweets.
E então nós inicializar ambos os novos tweet-- assim como
se eles querem criar um novo tweet nessa página.
>> E ele pergunta o que o usuário atual é.
E esta é muito semelhante ao renda que você viu na PSET 7,
onde é apenas uma espécie de contar o view-- é uma espécie de, como,
passando as variáveis ​​que você é vai precisar na vista para a vista.
E há um grupo inteiro métodos de diferentes
que o controlador deste Tweet pode manipular.
>> Mas, realmente, Rails faz um grande trabalho de tipo
de dividindo-os em diferentes ações que o controlador poderia fazer.
Existem dúvidas sobre qualquer das partes MVC de Rails?
Kind of apenas uma brisa.
Então vocês podem verificar -lo em seu próprio país.
Impressionante.
Nós vamos continuar.
>> Assim, a instalação Rails.
Instalando o Rails pode ser, como, uma das partes mais assustadores
dos trilhos inteiros processo, infelizmente.
Mas, obviamente, todos nós estão por perto para ajudar.
E uma vez que está lá, um monte de grandes recursos,
Gabe como mencionado, para começar a trabalhar.
Aqui estão os links que você vai precisar, a fim
para baixar Rails para obtê-lo instalado em sua máquina.
Obviamente, ele está disponível para Windows e Mac
e para o aparelho CS50.
Perguntas sobre qualquer coisa que eu disse?
>> AUDIÊNCIA: Eu seria interessado, actually--
então eu sei que o download software é a maior barreira.
Se há interesse suficiente para ter um download de mini-sessão ou algo assim.
ZACK CHAUVIN: Hum-hum.
Sim.
Isso pode ser realmente útil.
Se alguém é realmente entusiasta sobre usando isso para seu projeto
ou no futuro, então nós definitivamente o prazer em falar com você sobre isso.
Hum-hum.
>> AUDIÊNCIA: Uma questão relacionada para o que eu pedi antes.
Para aqueles de vocês que têm feito outras estruturas que ainda estão
tentando fazer o mesmo coisa, torná-lo mais fácil
para construir um site ou um funcionalidade, eu acho que qualquer sentido
de por que seria on Rails contra Zend ou alguns dos outros frameworks
e idiomas.
>> ZACK CHAUVIN: Eu só vou dizer que o meu $ 0,02 sobre isso.
Eu amo o Ruby on Rails.
Eu tive a chance de trabalhar tanto em PHP e Ruby on Rails.
Eu prefiro muito mais Ruby on Rails por causa de Ruby.
Definitivamente, isso é uma grande parte disso.
Como, quando você está escolher o seu enquadramento,
você também escolher o idioma.
>> Rubi é super accessible-- eu acho uma linguagem muito melhor do que PHP.
Mas esse é o tipo de preferência pessoal.
Como assim, uma outra consideração é a comunidade de trás do quadro
que você está trabalhando.
>> Agora Ruby on Rails é realmente quente.
Há toneladas de apoio por trás dele.
Você postar algo sobre Stack Overflow sobre um problema que você está
Tendo em Ruby on Rails, e é atendida.
Novamente, é open source, o que significa que está constantemente a ser alterado.
Há milhares de pessoas que são realmente dedicados
a fim de tornar este um quadro realmente incrível.
Então é por isso que eu faria escolher Ruby on Rails.
GABRIEL GUIMARAES: Yeah.
Eu diria que a idéia atrás a maioria dos frameworks você é
vai encontrar lá fora é muito, muito semelhante, certo?
Assim, o Model View Controller, o fato de que nosso controlador de
vai parecer algo como isto-- cada uma das funções
é como uma de suas páginas, e ele redireciona você,
e ele inicializa as variáveis.
Essa vai ser a mesma coisa para cada quadro que você vê por aí.
E aí, vai ser o modelo.
E você pode fazer coisas como, "pertence".
Então, ao invés de fazer a versão SQL, você apenas, como, fazer, user.tweets,
e você tem tudo.
Todo mundo tem isso.
Exceto em Ruby, você faz user.tweets, e, em seguida, alguns frameworks em PHP,
você faz user.getalltweets Onde meu PHP não é um problema.
Como, é uma grande linha.
É a mesma coisa, mas é uma grande linha.
>> Então essa é uma das principais razões das minhas preferências sobre Ruby.
É só eu faço exatamente o mesma coisa em outros frameworks,
ele só me leva duas vezes como longas linhas de código.
OK?
>> Alguma outra pergunta?
>> ZACK CHAUVIN: Algo Vou mencionar quickly-- Gabe
Conversamos um pouco sobre pedras preciosas.
E isso é realmente um great-- Quer dizer, isso é uma espécie de comum a todos os quadros,
que há uma espécie de conceito gema, que é como no meu pequeno exemplo,
Tenho login.
Tipo, você pode entrar, sair.
Como, que é, na verdade, tipo de um processo complexo.
Ele foi tratado um pouco bit para você em PSET 7.
Mas eu ainda não sei totalmente como para implementar sign-in, sign-out.
E isso é porque Ruby on Rails tem toneladas
de gemas que fazem esse tipo de coisa para você.
>> Mais uma vez, convenção sobre configuração.
Todo mundo vai estar fazendo este sign-in, passo assinar-out.
Então por que não fazer um pacote, chamado Conceber, neste caso, o que é uma jóia.
Você simplesmente incluí-lo.
E então há alguma ajuda em linha com a forma de usá-lo.
E você não precisa se preocupar sobre qualquer coisa assim.
>> Colocar imagens para estes coisas- uma jóia para isso.
Como, quando você está tentando fazer nada de novo, há uma jóia para isso.
E você tipo de apenas juntar essas jóias
e construir realmente um complexo aplicação muito rapidamente.
Com estilo.
Alguma outra pergunta?
>> STEPHEN TURBAN: Woo-hoo.
Eu não acho que [inaudível].
>> GABRIEL GUIMARAES: OK.
Muito obrigado, pessoal.
>> STEPHEN TURBAN: Buh-bye.
ZACK CHAUVIN: Buh-bye.
>> STEPHEN TURBAN: Woo-hoo.
[Aplausos]
>> Yay.