SlideShare une entreprise Scribd logo
1  sur  31
Lapidando Ruby A Work in Progress Maurício Eduardo Szabo [email_address] @mauricio_szabo http://mauricioszabo.wordpress.com
Nesta Apresentação... ,[object Object]
knowledges.should include(RSpec)
should be_open_to_new_ideas
Por quê? Aquela jovem é uma das menos ignorantemente aparvalhadas formas de vida orgânica que eu já tive a profunda falta de prazer de não ser capaz de evitar encontrar
Não Teremos...
Boas práticas ,[object Object]
Entenda Ruby
Seja claro ,[object Object],[object Object]
TESTES!
Ruby não é... ,[object Object]
save_person(a)
Rescue Me! (Estes códigos são equivalentes!)
Não Abuse da Linguagem ,[object Object]
Evite depender de comportamentos não-documentados ,[object Object]
Evite Efeitos Colaterais Se você puder chamar um método duas vezes e ele retornar o MESMO  valor, melhor!
DEFina Direito! Código deve ser escrito como um “jornal”
Não Seja Menos Claro
Flags?
Idente Tudo... ...MAS...
...Evite Identar
Floats? ,[object Object]
SPECs vão falhar ,[object Object]
Melhor ainda, use BigDecimal
Não Modifique os Parâmetros
OCP e MonkeyPatch ,[object Object]
TDD e BDD ,[object Object]
Como testar, e o quê testar?
Como manter a clareza?
Como evitar testes frágeis?
Como facilitar os testes?

Contenu connexe

Tendances

Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
Renato Oliveira
 
TDC Florianópolis 2013 - Refatorar! porque ninguém gosta de código que cheir...
TDC Florianópolis 2013  - Refatorar! porque ninguém gosta de código que cheir...TDC Florianópolis 2013  - Refatorar! porque ninguém gosta de código que cheir...
TDC Florianópolis 2013 - Refatorar! porque ninguém gosta de código que cheir...
Elias Souza
 
Depurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP IIDepurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP II
Jefferson Girão
 

Tendances (20)

Clean code
Clean codeClean code
Clean code
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
 
Sábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScriptSábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScript
 
Clean Code
Clean CodeClean Code
Clean Code
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Pep 8
Pep 8Pep 8
Pep 8
 
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)
 
TDC Florianópolis 2013 - Refatorar! porque ninguém gosta de código que cheir...
TDC Florianópolis 2013  - Refatorar! porque ninguém gosta de código que cheir...TDC Florianópolis 2013  - Refatorar! porque ninguém gosta de código que cheir...
TDC Florianópolis 2013 - Refatorar! porque ninguém gosta de código que cheir...
 
Refinamento e boas práticas de programação
Refinamento e boas práticas de programaçãoRefinamento e boas práticas de programação
Refinamento e boas práticas de programação
 
TDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPTDD - Workshop Pyladies SP
TDD - Workshop Pyladies SP
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Testes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETTestes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NET
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Depurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP IIDepurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicacoes PHP com XDebug e FirePHP II
 
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Design de Interação - SECOMP 2011 - Segundo dia
Design de Interação - SECOMP 2011 - Segundo diaDesign de Interação - SECOMP 2011 - Segundo dia
Design de Interação - SECOMP 2011 - Segundo dia
 
Desmistificando Design Patterns
Desmistificando Design PatternsDesmistificando Design Patterns
Desmistificando Design Patterns
 

Similaire à Lapidando ruby

Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticas
Lucas Caton
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
Alexandre Andrade
 

Similaire à Lapidando ruby (20)

#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Clean code
Clean codeClean code
Clean code
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do código
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
 
Clean Code
Clean CodeClean Code
Clean Code
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticas
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On Rails
 
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticas
 
TDC 2015 - Torne-se um programador melhor
TDC 2015 - Torne-se um  programador melhorTDC 2015 - Torne-se um  programador melhor
TDC 2015 - Torne-se um programador melhor
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 

Lapidando ruby