SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Conhecendo
Framework
Ruby on Rails
O que vamos aprender?
• Conhecer a história do Ruby e do Rails;
• Criar uma aplicação Rails do zero;
• Criar um cadastro completo;
• Criar uma database e uma tabela;
• Subir a aplicação;
• Inserir registros na tabela;
• Aprender comandos basicos;
• Alterar o layout com Materialize.
Wendreo Fernandes
• Graduando em Análise e Desenvolvimento de Sistemas (UNIFEOB);
• Técnico em Informática para Internet (IFSP);
• Membro do GDG São João da Boa Vista.
Contato: wendreo.fernandes@unifeob.edu.br
Quem Somos?
Douglas Junior
• Graduando em Análise e Desenvolvimento de Sistemas (UNIFEOB);
• Técnico em Informática (ETEC);
• Membro do GDG São João da Boa Vista.
Contato: douglas.junior@unifeob.edu.br
Ações do GDG
Timeline
1995 - Yukihiro Matsumoto
criou a linguagem Ruby (Japonês)
2000 - Dave Thomas e Andy Hunt
escreveram o livro Programming Ruby
(Inglês)
2004 - David Heinemeier Hansson
criou o framework Ruby on Rails
Características da linguagem Ruby
• Baseado em Perl, SmallTalk e Python;
• Multiplataforma: desktop, web e scripts;
• Interpretada: não há compilação de código;
• Tipagem dinâmica e forte: não é preciso
declarar as variáveis;
• Não é necessário “ponto e vírgula no final”.
Comparando...
• Hello World em PHP:
<?php
echo “Hello World!”;
?>
• Hello World em Ruby:
puts “Hello World!”
Características do Framework Rails
• Projeto de código aberto;
• Escrito em Ruby;
• Baseado em geradores;
• Cria aplicações na arquitetura MVC.
Ok... Mas quem usa?
Ok.. mas e
AGORA?
Gerando uma nova aplicação
$ rails new GDG –d mysql
• Usamos “-d” para determinar queremos utilizar
o MySQL como database do projeto.
Estrutura dos diretórios
• App: Contém 95% da aplicação e dos
códigos, inclusive o MVC;
• Config: Configurações de inicializadores,
ambientes, internacionalização entre outras;
• DB: Tudo relacionado ao banco de dados,
migrações e esquemas;
Ruby Gems
Ruby Gems
Sistema de empacotamento para o Ruby.
Similar ao apt-get para o Debian/Ubuntu
Sendo um sistema de gerenciamento de pacotes.
Distribui de forma padronizada as bibliotecas e
programas em Ruby.
• Para saber quais gems temos instaladas:
$ gem list
Geradores
$ rails g scaffold Register
registration:integer name:string
course:string module:integer
date_of_registration:date
• Scaffold gera o cadastro com os campos
informados;
• O nome do MODEL deve estar no singular.
Configurando a senha do MySQL
Integrando com database
$ rails db:create
• Criando as databases do projeto.
Integrando com database
$ rails db:migrate
• Envia todas as alterações para nossa
database (novas tabelas e novos campos).
Subindo nossa aplicação
$ rails s
• “s” é um atalho para server;
• O rails conta com um servidor embutido (Puma);
• A aplicação estará disponível em localhost:3000
Página de boas vindas
Acessando nosso cadastro
O cadastro gerado anteriormente estará
disponível em localhost:3000/registers
Inserindo dados
Para inserir um novo registro, basta clicar
no botão New Register
Agora é possível criar, visualizar, editar e
excluir os registros e tudo já integrado com
o banco de dados.
CRUD completo
Front-end?
Melhorando nosso layout...
O que é CDN?
É uma redes de entrega de conteúdo (em inglês:
Content Delivery Network ), ou seja todas as
informações necessárias para sua aplicação
disponível em nuvem.
Mas qual é o melhor ?
CDN ou CSS/Java Script nativo ?
CDN ou CSS/Java Script nativo ?
Prós :
• Fácil e rápido acesso via rede;
• Disponibilidade e Escalabilidade alta;
• Menor consumo de recursos de disco rígido na aplicação;
• Desempenho mais performático.
Contras:
• Dependência de acesso a rede;
• Manutenção mais técnica.
• Pequeno gasto com empresas que prestam este tipo de
serviço (EX: CLOUDFLARE)
Mãos na massa!
À titulo de exemplo utilizaremos o Front-End do
Google Materialize, para isso iremos necessitar dos
links fornecidos pela plataforma, que serão
consumidos via CDN.
• Endereço materializecss.com
• Todos os links devem ficar no arquivo localizado no
seguinte caminho:
/views/layouts/application.html.rb
Mãos na massa!
Links
:
Componentes e ícones
Extra
Abaixo um extra não fornecido na plataforma:
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1
/jquery.min.js">
</script>
FAB to Toolbar
Vá na aba de COMPONENTS/BUTTONS, selecione
o modelo FAB to Toolbar, para exemplificarmos o
poder da velocidade do CDN combinado com o
ferramentas bem estruturadas.
FAB to Toolbar
FAB to Toolbar
E para finalizarmos a demonstração copie o código
e cole na pagina de index para visualização rápida,
localizada a mesma em:
/views/register/index.html.rb
Cole da seguinte forma
Cole da seguinte forma
Dúvidas?
Dúvidas?
Obrigado!
Wendreo Luciano Fernandes
/gdgsaojao
/unifeob GDG São João
Douglas Domenciano
/wendreof/GDG-ETEC

Weitere ähnliche Inhalte

Was ist angesagt?

Desenvolvendo PHP nas nuvens
Desenvolvendo PHP nas nuvensDesenvolvendo PHP nas nuvens
Desenvolvendo PHP nas nuvensHussani Oliveira
 
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Introdução FireDACAcesso multi-banco para Delphi e C++ BuilderIntrodução FireDACAcesso multi-banco para Delphi e C++ Builder
Introdução FireDAC Acesso multi-banco para Delphi e C++ BuilderDiego Rosa
 
Descobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performanceDescobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performanceGustavo Ciello
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.Leonardo Quevedo
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webernaniaz
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheDell Technologies
 
FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015Guinther Pauli
 
Utilizando web services do google, yahoo! e twitter com php
Utilizando web services do google,       yahoo! e twitter com phpUtilizando web services do google,       yahoo! e twitter com php
Utilizando web services do google, yahoo! e twitter com phpHelton Ritter
 
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017Renato Groff
 
LAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivialLAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivialGabriela Ferrara
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Pablo Souza
 
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019CLEYSSON LIMA
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuningDell Technologies
 

Was ist angesagt? (20)

Desenvolvendo PHP nas nuvens
Desenvolvendo PHP nas nuvensDesenvolvendo PHP nas nuvens
Desenvolvendo PHP nas nuvens
 
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Introdução FireDACAcesso multi-banco para Delphi e C++ BuilderIntrodução FireDACAcesso multi-banco para Delphi e C++ Builder
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
OpenShift
OpenShiftOpenShift
OpenShift
 
Descobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performanceDescobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performance
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015
 
[Sass] Aula 01
[Sass] Aula 01[Sass] Aula 01
[Sass] Aula 01
 
Utilizando web services do google, yahoo! e twitter com php
Utilizando web services do google,       yahoo! e twitter com phpUtilizando web services do google,       yahoo! e twitter com php
Utilizando web services do google, yahoo! e twitter com php
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
 
Principais Tecnologias WEB
Principais Tecnologias WEBPrincipais Tecnologias WEB
Principais Tecnologias WEB
 
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
SQL Server 2016 e 2017 para Desenvolvedores - SQL4DEVS - Novembro-2017
 
Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
 
LAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivialLAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivial
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuning
 

Ähnlich wie Ruby on Rails for beginners 2.0

Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicaçõesRenato Groff
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2Maurício Linhares
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 

Ähnlich wie Ruby on Rails for beginners 2.0 (20)

Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 

Mehr von Wendreo L. Fernandes

Projeto Treinamento - Grupo Falcão Peregrino
Projeto Treinamento - Grupo Falcão PeregrinoProjeto Treinamento - Grupo Falcão Peregrino
Projeto Treinamento - Grupo Falcão PeregrinoWendreo L. Fernandes
 
Presentation GDG São João - ETEC VGS
Presentation GDG São João - ETEC VGSPresentation GDG São João - ETEC VGS
Presentation GDG São João - ETEC VGSWendreo L. Fernandes
 
Apresentação SPA - Sistema de Planejamento de Aulas
Apresentação SPA - Sistema de Planejamento de AulasApresentação SPA - Sistema de Planejamento de Aulas
Apresentação SPA - Sistema de Planejamento de AulasWendreo L. Fernandes
 

Mehr von Wendreo L. Fernandes (6)

How to Study: From Zero to Hero
How to Study:  From Zero to HeroHow to Study:  From Zero to Hero
How to Study: From Zero to Hero
 
Projeto Treinamento - Grupo Falcão Peregrino
Projeto Treinamento - Grupo Falcão PeregrinoProjeto Treinamento - Grupo Falcão Peregrino
Projeto Treinamento - Grupo Falcão Peregrino
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Presentation GDG São João - ETEC VGS
Presentation GDG São João - ETEC VGSPresentation GDG São João - ETEC VGS
Presentation GDG São João - ETEC VGS
 
Ruby on Rails for beginners
Ruby on Rails for beginnersRuby on Rails for beginners
Ruby on Rails for beginners
 
Apresentação SPA - Sistema de Planejamento de Aulas
Apresentação SPA - Sistema de Planejamento de AulasApresentação SPA - Sistema de Planejamento de Aulas
Apresentação SPA - Sistema de Planejamento de Aulas
 

Ruby on Rails for beginners 2.0

  • 2. O que vamos aprender? • Conhecer a história do Ruby e do Rails; • Criar uma aplicação Rails do zero; • Criar um cadastro completo; • Criar uma database e uma tabela; • Subir a aplicação; • Inserir registros na tabela; • Aprender comandos basicos; • Alterar o layout com Materialize.
  • 3. Wendreo Fernandes • Graduando em Análise e Desenvolvimento de Sistemas (UNIFEOB); • Técnico em Informática para Internet (IFSP); • Membro do GDG São João da Boa Vista. Contato: wendreo.fernandes@unifeob.edu.br Quem Somos? Douglas Junior • Graduando em Análise e Desenvolvimento de Sistemas (UNIFEOB); • Técnico em Informática (ETEC); • Membro do GDG São João da Boa Vista. Contato: douglas.junior@unifeob.edu.br
  • 5. Timeline 1995 - Yukihiro Matsumoto criou a linguagem Ruby (Japonês) 2000 - Dave Thomas e Andy Hunt escreveram o livro Programming Ruby (Inglês) 2004 - David Heinemeier Hansson criou o framework Ruby on Rails
  • 6. Características da linguagem Ruby • Baseado em Perl, SmallTalk e Python; • Multiplataforma: desktop, web e scripts; • Interpretada: não há compilação de código; • Tipagem dinâmica e forte: não é preciso declarar as variáveis; • Não é necessário “ponto e vírgula no final”.
  • 7. Comparando... • Hello World em PHP: <?php echo “Hello World!”; ?> • Hello World em Ruby: puts “Hello World!”
  • 8.
  • 9. Características do Framework Rails • Projeto de código aberto; • Escrito em Ruby; • Baseado em geradores; • Cria aplicações na arquitetura MVC.
  • 12. Gerando uma nova aplicação $ rails new GDG –d mysql • Usamos “-d” para determinar queremos utilizar o MySQL como database do projeto.
  • 13. Estrutura dos diretórios • App: Contém 95% da aplicação e dos códigos, inclusive o MVC; • Config: Configurações de inicializadores, ambientes, internacionalização entre outras; • DB: Tudo relacionado ao banco de dados, migrações e esquemas;
  • 15. Ruby Gems Sistema de empacotamento para o Ruby. Similar ao apt-get para o Debian/Ubuntu Sendo um sistema de gerenciamento de pacotes. Distribui de forma padronizada as bibliotecas e programas em Ruby. • Para saber quais gems temos instaladas: $ gem list
  • 16. Geradores $ rails g scaffold Register registration:integer name:string course:string module:integer date_of_registration:date • Scaffold gera o cadastro com os campos informados; • O nome do MODEL deve estar no singular.
  • 18. Integrando com database $ rails db:create • Criando as databases do projeto.
  • 19. Integrando com database $ rails db:migrate • Envia todas as alterações para nossa database (novas tabelas e novos campos).
  • 20. Subindo nossa aplicação $ rails s • “s” é um atalho para server; • O rails conta com um servidor embutido (Puma); • A aplicação estará disponível em localhost:3000
  • 21. Página de boas vindas
  • 22. Acessando nosso cadastro O cadastro gerado anteriormente estará disponível em localhost:3000/registers
  • 23. Inserindo dados Para inserir um novo registro, basta clicar no botão New Register
  • 24. Agora é possível criar, visualizar, editar e excluir os registros e tudo já integrado com o banco de dados. CRUD completo
  • 27. O que é CDN? É uma redes de entrega de conteúdo (em inglês: Content Delivery Network ), ou seja todas as informações necessárias para sua aplicação disponível em nuvem.
  • 28. Mas qual é o melhor ? CDN ou CSS/Java Script nativo ?
  • 29. CDN ou CSS/Java Script nativo ? Prós : • Fácil e rápido acesso via rede; • Disponibilidade e Escalabilidade alta; • Menor consumo de recursos de disco rígido na aplicação; • Desempenho mais performático. Contras: • Dependência de acesso a rede; • Manutenção mais técnica. • Pequeno gasto com empresas que prestam este tipo de serviço (EX: CLOUDFLARE)
  • 30. Mãos na massa! À titulo de exemplo utilizaremos o Front-End do Google Materialize, para isso iremos necessitar dos links fornecidos pela plataforma, que serão consumidos via CDN. • Endereço materializecss.com • Todos os links devem ficar no arquivo localizado no seguinte caminho: /views/layouts/application.html.rb
  • 34. Extra Abaixo um extra não fornecido na plataforma: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1 /jquery.min.js"> </script>
  • 35. FAB to Toolbar Vá na aba de COMPONENTS/BUTTONS, selecione o modelo FAB to Toolbar, para exemplificarmos o poder da velocidade do CDN combinado com o ferramentas bem estruturadas.
  • 37. FAB to Toolbar E para finalizarmos a demonstração copie o código e cole na pagina de index para visualização rápida, localizada a mesma em: /views/register/index.html.rb
  • 42. Obrigado! Wendreo Luciano Fernandes /gdgsaojao /unifeob GDG São João Douglas Domenciano /wendreof/GDG-ETEC