Palestra ror edted

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
Palestra ror edted
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
Palestra ror edted
Ruby foi feito para deixar os programadores felizes!
O início
Palestra ror edted
Porque não
reaproveitar o código?
Palestra ror edted
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
Palestra ror edted
Don’t Repeat Yourself
       (DRY)
Palestra ror edted
“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
Palestra ror edted
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)
Palestra ror edted
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
Palestra ror edted
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
1 de 50

Recomendados

Desenvolvimento Ágil com Ruby on Rails por
Desenvolvimento Ágil com Ruby on RailsDesenvolvimento Ágil com Ruby on Rails
Desenvolvimento Ágil com Ruby on RailsRogerio Chaves
848 visualizações31 slides
Rails por
RailsRails
RailsRenato Sousa
367 visualizações12 slides
Desenvolvendo sua primeira aplicação Web com Rails 5 por
Desenvolvendo sua primeira aplicação Web com Rails 5Desenvolvendo sua primeira aplicação Web com Rails 5
Desenvolvendo sua primeira aplicação Web com Rails 5Lorena Caldas
175 visualizações47 slides
Ruby on Rails - Introdução ao Framework por
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
737 visualizações22 slides
TDC2016SP - Trilha Frameworks JavaScript por
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScripttdc-globalcode
166 visualizações45 slides
Drupal 7 - Nova Versão para Novos Desafios por
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosPaulino Michelazzo
443 visualizações25 slides

Mais conteúdo relacionado

Mais procurados

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil por
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
4.2K visualizações32 slides
Rails e Rails, introdução e estudo de caso por
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
44 visualizações22 slides
Palestra na Faccat sobre o Zeanwork por
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkJosemar Davi Luedke
186 visualizações21 slides
Mini-curso RoR - Aula 01 por
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Agence Educacional
429 visualizações20 slides
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018 por
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
19.4K visualizações30 slides
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L... por
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
6.4K visualizações20 slides

Mais procurados(20)

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil por Renato Groff
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
Renato Groff4.2K visualizações
Rails e Rails, introdução e estudo de caso por John Carneiro
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
John Carneiro44 visualizações
Palestra na Faccat sobre o Zeanwork por Josemar Davi Luedke
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o Zeanwork
Josemar Davi Luedke186 visualizações
Mini-curso RoR - Aula 01 por Agence Educacional
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
Agence Educacional429 visualizações
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018 por Renato Groff
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
Renato Groff19.4K visualizações
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L... por Renato 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...
Renato Groff6.4K visualizações
Curso de WordPress - Não Sei Programar - Cristiano Santos por aluni_ead
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
aluni_ead155 visualizações
Dicas para uma maior performance em APIs REST - DEVPIRA Festival - Dezembro-2018 por Renato Groff
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
Renato Groff1.3K visualizações
Desenvolvendo Sistema Cloud e Web Full-stack Developer por Cesar Romero
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Cesar Romero511 visualizações
Curso de WordPress para não programadores - Aula 002 - Cristiano Santos por aluni_ead
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
aluni_ead145 visualizações
Introdução ao php por Miguel Pinto
Introdução ao phpIntrodução ao php
Introdução ao php
Miguel Pinto629 visualizações
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F... por Renato Groff
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 Groff2K visualizações
Arian Pasquali - Introdução ao Flex @ FUGSC por João Zaratine
Arian Pasquali - Introdução ao Flex @ FUGSCArian Pasquali - Introdução ao Flex @ FUGSC
Arian Pasquali - Introdução ao Flex @ FUGSC
João Zaratine704 visualizações
O front-end moderno e sua lib mais popular: React por Fernando Henriques
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
Fernando Henriques94 visualizações
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ... por Renato Groff
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 Groff41 visualizações
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei... por 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...
Renato Groff8.5K visualizações

Destaque

RubyMastersConf - Escalabilidade do S.O. ao Rails por
RubyMastersConf - Escalabilidade do S.O. ao Rails RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails brunoaalves
542 visualizações79 slides
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai... por
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
505 visualizações50 slides
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA por
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
3.8K visualizações7 slides
TCC - Certificação Digital por
TCC - Certificação DigitalTCC - Certificação Digital
TCC - Certificação DigitalMarcos Bezerra
2.5K visualizações21 slides
Palestra iv-ensol-nosql por
Palestra iv-ensol-nosqlPalestra iv-ensol-nosql
Palestra iv-ensol-nosqlAllisson Azevedo
589 visualizações55 slides
TCC - Escalabilidade em Aplicações Web por
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebVagner Santana
2.4K visualizações47 slides

Destaque(7)

RubyMastersConf - Escalabilidade do S.O. ao Rails por brunoaalves
RubyMastersConf - Escalabilidade do S.O. ao Rails RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
brunoaalves542 visualizações
Erros que cometemos na arquitetura de micro-serviços e a evolução para Contai... por 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...
brunoaalves505 visualizações
DoS: FORMAS DE ATAQUE E ESTRATÉGIAS DE DEFESA por Renan Souza Daniel
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
Renan Souza Daniel3.8K visualizações
TCC - Certificação Digital por Marcos Bezerra
TCC - Certificação DigitalTCC - Certificação Digital
TCC - Certificação Digital
Marcos Bezerra2.5K visualizações
Palestra iv-ensol-nosql por Allisson Azevedo
Palestra iv-ensol-nosqlPalestra iv-ensol-nosql
Palestra iv-ensol-nosql
Allisson Azevedo589 visualizações
TCC - Escalabilidade em Aplicações Web por Vagner Santana
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações Web
Vagner Santana2.4K visualizações
Study: The Future of VR, AR and Self-Driving Cars por LinkedIn
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
LinkedIn870.6K visualizações

Similar a Palestra ror edted

Ruby on Rails por
Ruby on RailsRuby on Rails
Ruby on RailsRenato Sousa
213 visualizações15 slides
Plataforma Android: Produtividade Além do SDK por
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
660 visualizações24 slides
Ruby on Rails for beginners 2.0 por
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Wendreo L. Fernandes
157 visualizações42 slides
Desvendando padrões para desenvolvimento web, base para o sucesso por
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
1.2K visualizações45 slides
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019 por
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
1.3K visualizações25 slides
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand... por
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
1.7K visualizações25 slides

Similar a Palestra ror edted(20)

Ruby on Rails por Renato Sousa
Ruby on RailsRuby on Rails
Ruby on Rails
Renato Sousa213 visualizações
Plataforma Android: Produtividade Além do SDK por Ryan Padilha
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
Ryan Padilha660 visualizações
Ruby on Rails for beginners 2.0 por Wendreo L. Fernandes
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
Wendreo L. Fernandes157 visualizações
Desvendando padrões para desenvolvimento web, base para o sucesso por Ubiratan Z. do Nascimento
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
Ubiratan Z. do Nascimento1.2K visualizações
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019 por Renato Groff
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Renato Groff1.3K visualizações
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand... por Renato 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...
Renato Groff1.7K visualizações
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019 por Renato Groff
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
Renato Groff236 visualizações
NodeJS - Tutorial de forma simples e pratica. por Filipe Morelli
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli407 visualizações
Desenvolvimento Web por Claudio Barbosa
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
Claudio Barbosa550 visualizações
Ruby on Rails: um estudo de viabilidade em ambientes empresariais por Rodrigo Recio
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
Rodrigo Recio1.7K visualizações
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack... por Renato Groff
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 Groff956 visualizações
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ... por 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çõ...
Renato Groff5.4K visualizações
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se... por 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...
Renato Groff2.6K visualizações
Desenvolvimento web - conceitos, tecnologia e tendências. por Valmir Justo
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo4.1K visualizações
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere... por Renato Groff
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 Groff2.5K visualizações
Introdução sobre desenvolvimento web por Rodrigo Rodrigues
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues3.6K visualizações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações por Renato Groff
.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
Renato Groff747 visualizações
Introdução ao desenvolvimento da web.pptx por MarceloRosenbrock1
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
MarceloRosenbrock148 visualizações
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020 por Renato Groff
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
Renato Groff440 visualizações

Último

Skills e Squads, como trabalhar? por
Skills e Squads, como trabalhar?Skills e Squads, como trabalhar?
Skills e Squads, como trabalhar?Annelise Gripp
32 visualizações13 slides
certificado excel.pdf por
certificado excel.pdfcertificado excel.pdf
certificado excel.pdfjuniorcarvalho136
5 visualizações1 slide
Conheça agora o UiPath Autopilot™ para o Studio.pdf por
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdfBrunaCavalcanti29
14 visualizações8 slides
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023 por
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023AcademicaDlaUnicesum
6 visualizações3 slides
VIRTUS 1.6 MSI.pdf por
VIRTUS 1.6 MSI.pdfVIRTUS 1.6 MSI.pdf
VIRTUS 1.6 MSI.pdfFbioVieira85
5 visualizações13 slides
ProxySQL no MySQL: Apenas um load balancer? por
ProxySQL no MySQL: Apenas um load balancer?ProxySQL no MySQL: Apenas um load balancer?
ProxySQL no MySQL: Apenas um load balancer?Roberto Garcia de Bem
6 visualizações62 slides

Último(9)

Skills e Squads, como trabalhar? por Annelise Gripp
Skills e Squads, como trabalhar?Skills e Squads, como trabalhar?
Skills e Squads, como trabalhar?
Annelise Gripp32 visualizações
certificado excel.pdf por juniorcarvalho136
certificado excel.pdfcertificado excel.pdf
certificado excel.pdf
juniorcarvalho1365 visualizações
Conheça agora o UiPath Autopilot™ para o Studio.pdf por BrunaCavalcanti29
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdf
BrunaCavalcanti2914 visualizações
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023 por AcademicaDlaUnicesum
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023
AcademicaDlaUnicesum6 visualizações
VIRTUS 1.6 MSI.pdf por FbioVieira85
VIRTUS 1.6 MSI.pdfVIRTUS 1.6 MSI.pdf
VIRTUS 1.6 MSI.pdf
FbioVieira855 visualizações
ProxySQL no MySQL: Apenas um load balancer? por Roberto Garcia de Bem
ProxySQL no MySQL: Apenas um load balancer?ProxySQL no MySQL: Apenas um load balancer?
ProxySQL no MySQL: Apenas um load balancer?
Roberto Garcia de Bem6 visualizações
DevFest2023-Pragmatismo da Internet das Coisas por Walter Coan
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das Coisas
Walter Coan25 visualizações
TechConnection 2023 Floripa Azure Container Apps por Walter Coan
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container Apps
Walter Coan6 visualizações
Shift left DevOps Experience por Walter Coan
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps Experience
Walter Coan5 visualizações

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
  • 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
  • 9. Ruby foi feito para deixar os programadores felizes!
  • 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
  • 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
  • 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
  • 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
  • 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