• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Fun driven development com Ruby
 

Fun driven development com Ruby

on

  • 497 views

My presentation about Ruby at TDC2011 - The developers conference

My presentation about Ruby at TDC2011 - The developers conference

Statistics

Views

Total Views
497
Views on SlideShare
491
Embed Views
6

Actions

Likes
0
Downloads
6
Comments
0

3 Embeds 6

http://paper.li 4
https://twitter.com 1
http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Fun driven development com Ruby Fun driven development com Ruby Presentation Transcript

    • Fun Driven Development com Ruby @tomas_stefano https://github.com/tomas-stefano http://rubycasts.com.br/sábado, 9 de julho de 2011
    • Objetivo - VOCÊ IRÁ APRENDER UMA COISA NOVA DE RUBY. OU VOCÊ IRÁ APRENDER UMA COISA NOVA.sábado, 9 de julho de 2011
    • Era uma vez ... OBS.: Tirada de uma apresentação do Ryan Davissábado, 9 de julho de 2011
    • Mesa de trabalhosábado, 9 de julho de 2011
    • Lendo o Códigosábado, 9 de julho de 2011
    • Ninho de Ratosábado, 9 de julho de 2011
    • Ficou nervoso ...sábado, 9 de julho de 2011
    • Atirou em todo mundosábado, 9 de julho de 2011
    • Foi preso!sábado, 9 de julho de 2011
    • SEGUNDA VERSÃO! OU:sábado, 9 de julho de 2011
    • Novo trabalho!sábado, 9 de julho de 2011
    • Mesa de trabalhosábado, 9 de julho de 2011
    • Lendo o Códigosábado, 9 de julho de 2011
    • Ninho de Ratosábado, 9 de julho de 2011
    • Ficou nervoso ...sábado, 9 de julho de 2011
    • Seus conhecimentossábado, 9 de julho de 2011
    • Resolveu o problema (um por um)sábado, 9 de julho de 2011
    • Mostrou quem manda!sábado, 9 de julho de 2011
    • Moral da históriasábado, 9 de julho de 2011
    • Pessoas vão te incriminar se você machucá-las!sábado, 9 de julho de 2011
    • O código não! :)sábado, 9 de julho de 2011
    • O que é código legado? Muitos dizem: “Todo código, que você não escreveu, é legado”.sábado, 9 de julho de 2011
    • O que é código legado? Muitos dizem: “Todo código, que você não escreveu, é legado”. Outros dizem: “Todo código, que você não escreveu e não possui testes, é legado”.sábado, 9 de julho de 2011
    • O que é código legado? Muitos dizem: “Todo código, que você não escreveu, é legado”. Outros dizem: “Todo código, que você não escreveu e não possui testes, é legado”. Outros pensaram: “Mas até o meu próprio código que eu escrevo, que “apenas funciona” vira um legado depois de algumas semanas ...”.sábado, 9 de julho de 2011
    • Código Legadosábado, 9 de julho de 2011
    • O começo é díficil!sábado, 9 de julho de 2011
    • Lidando com a Complexidadesábado, 9 de julho de 2011
    • Alguma gem de Testessábado, 9 de julho de 2011
    • RSpec chunky_bacon.should be_awesomesábado, 9 de julho de 2011
    • Shoulda chunky_bacon_should_be :awesomesábado, 9 de julho de 2011
    • Test::Unit assert_equal(:awesome, chunky_bacon)sábado, 9 de julho de 2011
    • Fake Objectssábado, 9 de julho de 2011
    • Mocha bacon = stub(:awesome => true) bacon.expects(:taste).returns(good)sábado, 9 de julho de 2011
    • Flexmock bacon = flexmock(:awesome => true) bacon.should_receive(:taste).and_return(good)sábado, 9 de julho de 2011
    • RSpec Mocks e Stubs bacon.stub!(:awesome).and_return(true) bacon.should_receive(:taste).and_return(good)sábado, 9 de julho de 2011
    • RR stub(bacon).awesome{true} stub(bacon).taste{good}sábado, 9 de julho de 2011
    • Métricassábado, 9 de julho de 2011
    • Flog • 1 a 10: Parabéns! • 11 a 20: Não tão ruim assim ... • 21 a 40: Talvez precise refatorar • 41 a 60: Escreva de novo • 61 a 100: WTF are you trying to do?sábado, 9 de julho de 2011
    • Flog • 1 a 10: Parabéns! • 11 a 20: Não tão ruim assim ... • 21 a 40: Talvez precise refatorar • 41 a 60: Escreva de novo • 61 a 100: WTF are you trying to do?sábado, 9 de julho de 2011
    • Flog • 1 a 10: Parabéns! • 11 a 20: Não tão ruim assim ... • 21 a 40: Talvez precise refatorar • 41 a 60: Escreva de novo • 61 a 100: WTF are you trying to do?sábado, 9 de julho de 2011
    • Flog • 1 a 10: Parabéns! • 11 a 20: Não tão ruim assim ... • 21 a 40: Talvez precise refatorar • 41 a 60: Escreva de novo • 61 a 100: WTF are you trying to do?sábado, 9 de julho de 2011
    • Flog • 1 a 10: Parabéns! • 11 a 20: Não tão ruim assim ... • 21 a 40: Talvez precise refatorar • 41 a 60: Escreva de novo • 61 a 100: o.O - WTF are you trying to do?sábado, 9 de julho de 2011
    • Flogsábado, 9 de julho de 2011
    • Flaysábado, 9 de julho de 2011
    • SimpleCov Cobertura de Código: require simplecov SimpleCov.startsábado, 9 de julho de 2011
    • Simplecovsábado, 9 de julho de 2011
    • Simplecovsábado, 9 de julho de 2011
    • Roodi Problemas de design no seu códigosábado, 9 de julho de 2011
    • Repita Comigo • “Medir e analisar meu código, serve para conhecer o meu próprio código.” Brian Liles (TAFT - Test all the F* time)sábado, 9 de julho de 2011
    • Testes de Aceitação Steaksábado, 9 de julho de 2011
    • Cucumber Funcionalidade: Relatorio Completo Sendo cliente Quero o Relatório Completo com os dados dos meus clientes Para uma Analise de crédito de uma ou várias empresas Cenário: Identificação da Empresa Filial Dado que estou consultando um CNPJ de uma empresa "filial" Quando eu aperto "Consultar em uma Página" Então deverá trazer os dados da "matriz" vindos da receita federal E deverá trazer os dados da "filial" vindos da receita federalsábado, 9 de julho de 2011
    • Steak feature "Articles", %q{ In order to have an awesome blog As an author I want to create and manage articles } do scenario "Article index" do Article.create!(:title => One) Article.create!(:title => Two) visit article_index page.should have_content(One) page.should have_content(Two) end endsábado, 9 de julho de 2011
    • Benchmark class Integer def simple_prime? (2..Math.sqrt(self).floor).all? {|i| (self % i).nonzero? } end endsábado, 9 de julho de 2011
    • Benchmark require "benchmark" Benchmark.benchmark do |bench| bench.report("Simple Prime") do (2..10_000).each { |i| i.simple_prime? } end bench.report(Stdlib) do (2..10_000).each { |i| i.prime? } end endsábado, 9 de julho de 2011
    • Benchmark CPU Time SysCpu User+Sys ElapsedTimeSimple Prime 0.130000 0.000000 0.130000 ( 0.133931)Stdlib 0.230000 0.000000 0.230000 ( 0.230975)sábado, 9 de julho de 2011
    • Profiler require profile (2..10_000).each { |i| i.simple_prime? }sábado, 9 de julho de 2011
    • Benchmark e Profiler class Integer def fast_prime? return true if self.equal?(2) return false if self.even? 3.step(Math.sqrt(self).floor, 2).all? { |i| (self % i).nonzero? } end end CPU Time SysCpu User+Sys ElapsedTime Simple Prime 0.130000 0.000000 0.130000 ( 0.133931) Fast Prime 0.070000 0.000000 0.070000 ( 0.079083) Stdlib 0.230000 0.000000 0.230000 ( 0.230975)sábado, 9 de julho de 2011
    • Benchmark e Profiler require profile (2..10_000).each { |i| i.fast_prime? }sábado, 9 de julho de 2011
    • Extendendo Ruby com C 1) Ruby Inline 2) Normalsábado, 9 de julho de 2011
    • Ruby Inline class Factorial inline do |builder| builder.c " long factorial_c(int max) { int i=max, result=1; while (i >= 2) { result *= i--; } return result; }" end endsábado, 9 de julho de 2011
    • Extensão Nativa #ext/extconf.rb require mkmf dir_config(hello_world) create_makefile(hello_world)sábado, 9 de julho de 2011
    • Extensão Nativa /* hello_world.c */ #include <ruby.h> VALUE hello_world(VALUE self){ return rb_str_new2("Hello World!"); } VALUE class_Hello; void Init_hello_world(){ class_Hello = rb_define_class("HelloWorld", rb_cObject); rb_define_method(class_Hello, "hello_world", hello_world, 0); } # In Ruby hello = HelloWorld.new hello.hello_world # => “Hello World!”sábado, 9 de julho de 2011
    • Automatizando InfinityTest (To Infinity and beyond)sábado, 9 de julho de 2011
    • InfinityTest $ infinity_test --rspecsábado, 9 de julho de 2011
    • InfinityTest $ infinity_test --rspecsábado, 9 de julho de 2011
    • InfinityTest $ infinity_test --rspecsábado, 9 de julho de 2011
    • Ruby!sábado, 9 de julho de 2011
    • “Não Entendi nada!!”sábado, 9 de julho de 2011
    • RubyCastssábado, 9 de julho de 2011
    • Pra acabarsábado, 9 de julho de 2011
    • Você precisa se importar pelo código.sábado, 9 de julho de 2011
    • Ame-osábado, 9 de julho de 2011
    • Ou o odeiesábado, 9 de julho de 2011
    • Se você amar seu código:sábado, 9 de julho de 2011
    • Cuide!sábado, 9 de julho de 2011
    • Faça o crescersábado, 9 de julho de 2011
    • Se você o odiar:sábado, 9 de julho de 2011
    • Reescreva-o no seu tempo devido e da forma correta.sábado, 9 de julho de 2011
    • Seja apaixonado pelo que está trabalhando.sábado, 9 de julho de 2011
    • Caso contrário você está morto por dentro.sábado, 9 de julho de 2011
    • Assim como seu código.sábado, 9 de julho de 2011
    • Mas não esqueça antes de tudo:sábado, 9 de julho de 2011
    • Se divirta!sábado, 9 de julho de 2011
    • Obrigado! ;) @tomas_stefano https://github.com/tomas-stefano http://rubycasts.com.br/sábado, 9 de julho de 2011