SlideShare uma empresa Scribd logo
7
coisas que todo
 desenvolvedor
 Ruby on Rails
  deveria fazer
Fernando Hamasaki
     @Prodis
7
coisas que todo
 desenvolvedor
 Ruby on Rails
  deveria fazer
1
Atualizações transacionais
   no banco de dados
update_attribute
      é o câncer das
atualizações transacionais


  Atualizações transacionais no banco de dados
Atualizações transacionais no banco de dados
Atualizações transacionais no banco de dados
2
 Trazer todos os dados
   necessários de uma
listagem (eager loading)
Trazer todos os dados necessários de uma listagem
Trazer todos os dados necessários de uma listagem
Trazer todos os dados necessários de uma listagem
Trazer todos os dados necessários de uma listagem
3
Não colocar tudo no
 model (fat is ugly)
Modelos deveriam ser
responsáveis somente por
  manipulação de dados


      Não colocar tudo no model
Não colocar tudo no model
Não colocar tudo no model
Não colocar tudo no model
Não colocar tudo no model
Não colocar tudo no model
4
  Cuidado ao incluir
módulos em controllers
     (filters hell)
Esses módulos podem
 possuir filtros que criam
complexidade e dificultam
      a manutenção

   Cuidado ao incluir módulos em controllers
Cuidado ao incluir módulos em controllers
Cuidado ao incluir módulos em controllers
5
Logar chamadas de
 serviços externos
Serviços externos podem
  ter comportamentos
       inesperados


    Logar chamadas de serviços externos
O que logar?
- URL (com parâmetros)
- HTTP method
- Body


      Logar chamadas de serviços externos
Correios-Frete Request:
GET http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?
sCepOrigem=05707001&sCepDestino=05707001&nVlPeso=0.099&nVlCom
primento=36,0&nVlLargura=43,0&nVlAltura=5,0&nVlDiametro=0,0&n
CdFormato=1&sCdMaoPropria=N&sCdAvisoRecebimento=N&nVlValorDec
larado=0,00&nCdServico=40010&nCdEmpresa=&sDsSenha=&StrRetorno
=xml

Correios-Frete Response:
HTTP/1.1 200 OK
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Servicos><cServico><Codigo>40010</Codigo><Valor>12,40</
Valor><PrazoEntrega>1</PrazoEntrega><ValorMaoPropria>0,00</
ValorMaoPropria><ValorAvisoRecebimento>0,00</
ValorAvisoRecebimento><ValorValorDeclarado>0,00</
ValorValorDeclarado><EntregaDomiciliar>S</
EntregaDomiciliar><EntregaSabado>S</EntregaSabado><Erro>0</
Erro><MsgErro></MsgErro></cServico></Servicos>



            Logar chamadas de serviços externos
Logar chamadas de serviços externos
6
   Fazer migrações em
  etapas quando houver
riscos de perda de dados
Fazer migrações em etapas
Fazer migrações em etapas
Fazer migrações em etapas
Fazer migrações em etapas
7
Compartilhar suas
  experiências
Idéias
    Soluções
   Problemas
    Macetes
     Dicas

Compartilhe suas experiências
Perguntas?
 Acho que não dá tempo
Vai, Corinthians!
Fernando Hamasaki
     @Prodis

Mais conteúdo relacionado

PDF
Palestra Ruby
PDF
Minicurso Ruby on Rails - Wake Up Systems
PDF
Ruby vs python
PDF
Rest API's with Ruby on Rails
PDF
Java VS Python
PPTX
Apache Storm 0.9 basic training - Verisign
PDF
Workshop Ruby on Rails dia 2 ruby-pt
PPT
DB2 Express-C
Palestra Ruby
Minicurso Ruby on Rails - Wake Up Systems
Ruby vs python
Rest API's with Ruby on Rails
Java VS Python
Apache Storm 0.9 basic training - Verisign
Workshop Ruby on Rails dia 2 ruby-pt
DB2 Express-C

Semelhante a 7 coisas que todo desenvolvedor Ruby on Rails deveria fazer (20)

PPTX
Matando web forms e modernizando um grande varejista
PPT
Katálysis - Webshow - Automação Laboratorial V
PPTX
PPTX
Introdução aos Testes de Desempenho
PPTX
Parallel Programming no .NET 4.0
PDF
Oracleplsql
PDF
Migrations com Entity Framework Core
ODP
Webinar Magento Commerce
PPTX
Workshop Magento
PDF
Spring MVC Framework
PPT
Desenvolvendo aplicações web com o framework cakephp
PDF
Magento: Mitos vs Vantagens
PDF
Introducao oracle-sqlplsql-vol2-pt
PDF
Curso de Ruby on Rails - Aula 01
PPTX
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
PDF
Monolith - An epic journey
PDF
Clean architecture frontend
PPT
Desenvolvimento Agil Com Doctrine Orm
ODP
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
PPTX
Treinamento road show_12102010
Matando web forms e modernizando um grande varejista
Katálysis - Webshow - Automação Laboratorial V
Introdução aos Testes de Desempenho
Parallel Programming no .NET 4.0
Oracleplsql
Migrations com Entity Framework Core
Webinar Magento Commerce
Workshop Magento
Spring MVC Framework
Desenvolvendo aplicações web com o framework cakephp
Magento: Mitos vs Vantagens
Introducao oracle-sqlplsql-vol2-pt
Curso de Ruby on Rails - Aula 01
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Monolith - An epic journey
Clean architecture frontend
Desenvolvimento Agil Com Doctrine Orm
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
Treinamento road show_12102010
Anúncio

Mais de Fernando Hamasaki de Amorim (7)

PDF
Ido Keido - ElixirConf EU 2019
PDF
Anotações da TDC Florianópolis 2016
PDF
Os piores códigos Ruby já vistos - TDC Florianópolis 2016
PDF
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
PDF
TDC 2015 - Torne-se um programador melhor
PDF
Locaweb + Spree: transformando código aberto em um projeto comercial
PPT
Apresentação de TDD na Fatec Jundiaí
Ido Keido - ElixirConf EU 2019
Anotações da TDC Florianópolis 2016
Os piores códigos Ruby já vistos - TDC Florianópolis 2016
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
TDC 2015 - Torne-se um programador melhor
Locaweb + Spree: transformando código aberto em um projeto comercial
Apresentação de TDD na Fatec Jundiaí
Anúncio

Último (19)

PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Apple Pippin Uma breve introdução. - David Glotz
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula04-Academia Heri- Tecnologia Geral 2025
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Processos na gestão de transportes, TM100 Col18
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula 18 - Manipulacao De Arquivos python
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Apple Pippin Uma breve introdução. - David Glotz

7 coisas que todo desenvolvedor Ruby on Rails deveria fazer

Notas do Editor