SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Ruby on rails
   EDTED 2010
  Bruno Andrade Alves
  bruno@dito.com.br
Apresentação
• Bacharel em ciência da computação na
  PUCMINAS
• Sócio-fundador da Dito Internet
• Empresa fundada há 3 anos sendo todos os
  seus projetos desenvolvidos em ruby on
  rails
• Professor da Pós-Graduação
  “Desenvolvimento de Sistemas para web”
Cases

        •   1 milhão de visitantes
            únicos e 22 milhões de
            pageviews por mês

        •   800.000 usuários
            cadastrados


        •   Mais de 8 milhões de
            apostas realizadas
Cases
        •   Mais de 940.000
            usuários cadastrados
            em menos de 3 meses


        •   Elevado número de
            requisições
            simultâneas
Ruby
• Linguagem de programação lançada ao
  público em 1995.


• Popularizou-se em 2006, depois do
  surgimento do Ruby on Rails.


• Ruby é totalmente gratuita. Para usar,
  copiar, modificar e distribuir
Ruby

• Foco na simplicidade e produtividade
• Influências: Perl, Smalltalk, Eiffel, Ada e Lisp
• Não necessita compilação
• Orientada a objetos, tudo é um objeto
• Flexibilidade
Ruby foi feito para deixar os programadores felizes!
O início
Porque não
reaproveitar o código?
Porque compartilhar?


“Por razões puramente egoístas” DHH
Porque compartilhar?


• Deixar que os outros façam o trabalho
• Ganhar reputação por ser um doador
O que é o Rails?

“Um monte de coisas que
fazem os desenvolvedores
      web felizes”
     David Heinemeier Hansson
O que é o Rails?

“Um monte de coisas que fazem os
desenvolvedores web
             felizes”

      David Heinemeier Hansson
O que é o Rails?


Um framework para desenvolvimento web
Rails
• “Tornar o desenvolvimento web mais
  rápido, simples e mais eficiente.”


• Lançado em julho de 2004.

• Extraída da ferramenta para gestão de
  projetos Basecamp.
Aprendendo Rails
Java X Rails


   Scaffold
Propostas do Rails
Don’t Repeat Yourself
       (DRY)
“As pessoas preferem
 muito mais escolhas do
que terem que escolher”
   David Heinemeier Hansson, RailsConf’08
Convention over
      Configuration
• Usamos convenções para facilitar o
  entendimento e manutenção


• Rails sugere assumir valores padrão onde
  existe uma convenção.


• Se o desenvolvedor quiser, pode-se
  sobrescrever essa convenção com o valor
Model-View-Controller
       (MVC)
Model-View-Controller
           (MVC)
• Model: Contém as regras de negócio e faz o controle
  da persistência dos dados


• View: Responsável por gerar a interface com o usuário

• Controller: Recebem eventos do mundo externo,
  interagem com o model e disponibilizam a view
  correta para o usuário
Model-View-Controller
       (MVC)
ActiveRecord
 • Camada de mapeamento objeto-relacional,
   responsável pela tradução do banco de
   dados relacional em objetos. Ex:

  Cliente.find_by_nome(“Bruno”)


SELECT * FROM “clientes”
WHERE (“clientes”.“nome” = ‘Bruno’)
LIMIT 1
Migrations
• Modo conveniente para alterar a base de
  dados de um modo estruturado e
  organizado


• Mantém o controle das alterações feitas

• Todos os desenvolvedores possuem a
  mesma estrutra da base
Scaffold

Gerador de código Create Read Update Delete
                 (CRUD)
Scaffold

Gerador de código Create Read Update Delete
                 (CRUD)
Console

Interação direta com a aplicação para experimentos e
                       testes
Test Driven
 Development (TDD)
• Desenvolvimento orientado a testes
• Teste antes do código
Behaviour driven
  development (BDD)
• Implementa os testes unitários
  considerando um comportamento

  Ex.: Describe Teacher do
   It “should have a good knowledge”
   (...)
  end
Testes

• Rails já possui uma estrutura para o
  desenvolvimento de testes automatizados
  (TDD).


• O Rspec é um framework para o BDD
Partes comuns dos
     sistemas
       • Autenticação


       • Paginação

       • TagCloud
Plugins

• Fácil extensão do código

• Agilidade

• Melhoramento contínuo
Deploy

• Capistrano é utilizado para automatizar o
  deploy


• Executa todas as etapas do deploy
Cases
Quer começar?
rubyonrails.org
railscasts.com
Dúvidas?
Obrigado!

  Bruno Andrade
 bruno@dito.com.br
http://www.dito.com.br

Contenu connexe

Tendances

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilRenato Groff
 
Rails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoRails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoJohn Carneiro
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkJosemar Davi Luedke
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Renato Groff
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Renato Groff
 
Curso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano SantosCurso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano Santosaluni_ead
 
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018Renato Groff
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
Curso de WordPress para não programadores - Aula 002 - Cristiano Santos
Curso de WordPress para não programadores - Aula 002 - Cristiano SantosCurso de WordPress para não programadores - Aula 002 - Cristiano Santos
Curso de WordPress para não programadores - Aula 002 - Cristiano Santosaluni_ead
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao phpMiguel Pinto
 
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...Renato Groff
 
Arian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSCArian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSCJoão Zaratine
 
O front-end moderno e sua lib mais popular: React
O front-end moderno e sua lib mais popular: ReactO front-end moderno e sua lib mais popular: React
O front-end moderno e sua lib mais popular: ReactFernando Henriques
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Renato Groff
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Renato Groff
 

Tendances (20)

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Rails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoRails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de caso
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o Zeanwork
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
 
Curso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano SantosCurso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano Santos
 
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018
 
Sass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style SheetsSass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style Sheets
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
Curso de WordPress para não programadores - Aula 002 - Cristiano Santos
Curso de WordPress para não programadores - Aula 002 - Cristiano SantosCurso de WordPress para não programadores - Aula 002 - Cristiano Santos
Curso de WordPress para não programadores - Aula 002 - Cristiano Santos
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Orb - Chat by location
Orb - Chat by locationOrb - Chat by location
Orb - Chat by location
 
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
 
Arian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSCArian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSC
 
Redis
RedisRedis
Redis
 
O front-end moderno e sua lib mais popular: React
O front-end moderno e sua lib mais popular: ReactO front-end moderno e sua lib mais popular: React
O front-end moderno e sua lib mais popular: React
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
 
Software gratuito
Software gratuitoSoftware gratuito
Software gratuito
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 

En vedette

RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails brunoaalves
 
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...brunoaalves
 
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESADoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESARenan Souza Daniel
 
TCC - Certificação Digital
TCC - Certificação DigitalTCC - Certificação Digital
TCC - Certificação DigitalMarcos Bezerra
 
TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebVagner Santana
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

En vedette (7)

RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
 
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai...
 
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESADoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA
 
TCC - Certificação Digital
TCC - Certificação DigitalTCC - Certificação Digital
TCC - Certificação Digital
 
Palestra iv-ensol-nosql
Palestra iv-ensol-nosqlPalestra iv-ensol-nosql
Palestra iv-ensol-nosql
 
TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações Web
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similaire à Palestra ror edted

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
 
Desvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucessoDesvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucessoUbiratan Z. do Nascimento
 
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
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
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
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Renato Groff
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato 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
 
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Renato Groff
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
.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
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 

Similaire à Palestra ror edted (20)

Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
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 for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Desvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucessoDesvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucesso
 
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...
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
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
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
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.
 
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
.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
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 

Dernier

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Dernier (8)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Palestra ror edted

  • 1. Ruby on rails EDTED 2010 Bruno Andrade Alves bruno@dito.com.br
  • 2. Apresentação • Bacharel em ciência da computação na PUCMINAS • Sócio-fundador da Dito Internet • Empresa fundada há 3 anos sendo todos os seus projetos desenvolvidos em ruby on rails • Professor da Pós-Graduação “Desenvolvimento de Sistemas para web”
  • 3. Cases • 1 milhão de visitantes únicos e 22 milhões de pageviews por mês • 800.000 usuários cadastrados • Mais de 8 milhões de apostas realizadas
  • 4. Cases • Mais de 940.000 usuários cadastrados em menos de 3 meses • Elevado número de requisições simultâneas
  • 5.
  • 6. Ruby • Linguagem de programação lançada ao público em 1995. • Popularizou-se em 2006, depois do surgimento do Ruby on Rails. • Ruby é totalmente gratuita. Para usar, copiar, modificar e distribuir
  • 7. Ruby • Foco na simplicidade e produtividade • Influências: Perl, Smalltalk, Eiffel, Ada e Lisp • Não necessita compilação • Orientada a objetos, tudo é um objeto • Flexibilidade
  • 8.
  • 9. Ruby foi feito para deixar os programadores felizes!
  • 11.
  • 13.
  • 14. Porque compartilhar? “Por razões puramente egoístas” DHH
  • 15. Porque compartilhar? • Deixar que os outros façam o trabalho • Ganhar reputação por ser um doador
  • 16. O que é o Rails? “Um monte de coisas que fazem os desenvolvedores web felizes” David Heinemeier Hansson
  • 17. O que é o Rails? “Um monte de coisas que fazem os desenvolvedores web felizes” David Heinemeier Hansson
  • 18. O que é o Rails? Um framework para desenvolvimento web
  • 19. Rails • “Tornar o desenvolvimento web mais rápido, simples e mais eficiente.” • Lançado em julho de 2004. • Extraída da ferramenta para gestão de projetos Basecamp.
  • 21. Java X Rails Scaffold
  • 23.
  • 25.
  • 26. “As pessoas preferem muito mais escolhas do que terem que escolher” David Heinemeier Hansson, RailsConf’08
  • 27. Convention over Configuration • Usamos convenções para facilitar o entendimento e manutenção • Rails sugere assumir valores padrão onde existe uma convenção. • Se o desenvolvedor quiser, pode-se sobrescrever essa convenção com o valor
  • 28.
  • 30. Model-View-Controller (MVC) • Model: Contém as regras de negócio e faz o controle da persistência dos dados • View: Responsável por gerar a interface com o usuário • Controller: Recebem eventos do mundo externo, interagem com o model e disponibilizam a view correta para o usuário
  • 32.
  • 33. ActiveRecord • Camada de mapeamento objeto-relacional, responsável pela tradução do banco de dados relacional em objetos. Ex: Cliente.find_by_nome(“Bruno”) SELECT * FROM “clientes” WHERE (“clientes”.“nome” = ‘Bruno’) LIMIT 1
  • 34. Migrations • Modo conveniente para alterar a base de dados de um modo estruturado e organizado • Mantém o controle das alterações feitas • Todos os desenvolvedores possuem a mesma estrutra da base
  • 35.
  • 36. Scaffold Gerador de código Create Read Update Delete (CRUD)
  • 37. Scaffold Gerador de código Create Read Update Delete (CRUD)
  • 38. Console Interação direta com a aplicação para experimentos e testes
  • 39. Test Driven Development (TDD) • Desenvolvimento orientado a testes • Teste antes do código
  • 40. Behaviour driven development (BDD) • Implementa os testes unitários considerando um comportamento Ex.: Describe Teacher do It “should have a good knowledge” (...) end
  • 41. Testes • Rails já possui uma estrutura para o desenvolvimento de testes automatizados (TDD). • O Rspec é um framework para o BDD
  • 42. Partes comuns dos sistemas • Autenticação • Paginação • TagCloud
  • 43. Plugins • Fácil extensão do código • Agilidade • Melhoramento contínuo
  • 44. Deploy • Capistrano é utilizado para automatizar o deploy • Executa todas as etapas do deploy
  • 45. Cases
  • 50. Obrigado! Bruno Andrade bruno@dito.com.br http://www.dito.com.br