Palestra Desenvolvimento Ágil para Web com ROR UVA

869 visualizações

Publicada em

palestra sobre ruby on rails na veiga cabo frio dia 5 de novembro de 2009.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
869
No SlideShare
0
A partir de incorporações
0
Número de incorporações
40
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Palestra Desenvolvimento Ágil para Web com ROR UVA

  1. 1. Desenvolvimento Ágil para Web com Ruby on Rails
  2. 2. Ruby Release público em 1995 Ruby is designed to make programmers happy
  3. 3. PragDave 2000 – Ocidente
  4. 4. Ruby ● Melhor amigo do desenvolvedor ● Legível e Humana ● Perl, Smalltalk, Ada e LISP ● Orientada a Objetos ● Extremamente Flexível
  5. 5. Características do Ruby ● A sintaxe é enxuta ● Tudo é objeto ● Geração de código em tempo real ● Fortemente Tipada ● Tipagem dinâmica ● Closures Reais
  6. 6. Características do Ruby ● Classes abertas ● Garbage Collector ● Multi-plataforma ● Herança Simples
  7. 7. Vantagens ● Memoria controlada automaticamente ● Linguagem humana ● Simplicidade ● Tipagem Dinâmica ● Extensibilidade ● simbolos
  8. 8. Desvantagens ● Maquina Virtual Lenta (1.8) ● Matemática Intensa – Estatísticas e fins cientificos ● Threading – Green Threading/ melhora no ruby 1.9 (jruby)
  9. 9. Instalando Ruby ● Ubuntu - sudo apt-get install ruby irb ● Windows - http://rubyforge.org/projects/rubyinstaller/ ● easyrails
  10. 10. Escopo Variáveis ● thiago – variavel local ● @thiago – variavel de instancia ● @@thiago – variavel de classe ● $thiago – variavel global
  11. 11. Classes em Ruby class Personagem def initialize(tipo, nome) @tipo = tipo @nome = nome end end
  12. 12. Classes em Ruby thiago = Personagem.new(:ator, "Thiago Cifani") marano = Personagem.new(:revisor, "Thiago Marano")
  13. 13. Classes em Ruby def to_s "#{@nome} é um #{@tipo}" end
  14. 14. Classes em Ruby def nome @nome end def tipo @tipo end def nome=(value) @nome = value end def tipo=(value) @tipo = value end
  15. 15. Classes em Ruby attr_accessor :nome, :tipo
  16. 16. Controle de Acesso class Test class Test public def method1 def method1 end end def method2 protected end def method2 def method3 end end private public :method1 def method3 end protected :method2 private :method2 end end
  17. 17. Herança Simples class B < A end
  18. 18. Livros OpenSource ● http://aprendaaprogramar.rubyonrails.pro.br/ ● http://why.nomedojogo.com/
  19. 19. try { BufferedReader in = new BufferedReader(new FileReader("nome do arquivo")); String str; while (in.ready()) { str = in.readLine(); process(str); } in.close(); } catch (IOException e) { } teste = File.readlines("/home/thiagocifani/Documentos/txt.txt") puts teste
  20. 20. DEMO
  21. 21. DHH 2004
  22. 22. BaseCamp
  23. 23. Rails: o que é ? Framework baseado em Ruby que facilita o desenvolvimento web, fazendo-o com agilidade e produtividade
  24. 24. “Eles servem mais de 23 milhões de visitantes por mês. A conversão resultou em 20 mil linhas de Ruby ao invés de 120 mil linhas de Java, e mais importante, Facilitou a dificuldade que tinham com manutenção. Eles também finalizaram a escrita do programa com apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado o site deles é mais rapido do que antes.”
  25. 25. Rails instalação ● Sudo apt-get install rubygems ● Sudo gem update –system ● Sudo gem install rails
  26. 26. Rails - Filosofia ● Convention over Configuration ● DRY - Don't repeat yourself ● KISS – Keep it simple stupid ● Diversão
  27. 27. Convention over Configuration ● Grande parte do desenvolvimento segue padrões de convenção. ● Ex.: Para o model venda, temos uma tabela no banco de dados chamada vendas. ● Resume-se em menos código e menos repetição.
  28. 28. Convention over Configuration ● Nomes de Arquivos ● Nomes de Tabelas no BD ● Mapeamentos ● Chaves do BD ● Nome das Classes ● Ambientes
  29. 29. Don't Repeat Yourself ● Todo código gerado deve ficar apenas em um local, não deve haver repetição de código em outras áreas da aplicação. ● Ex.: Active Record – Não é necessário colocar os códigos de CRUD no modelo, nome das colunas, etc.
  30. 30. Don't Repeat Yourself development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 test: adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000
  31. 31. Don't Repeat Yourself ● Gems ● Plugins ● Generators ● Templates ● Partials
  32. 32. Keep it Simple Stupid ● Simplicidade acima de tudo ● Refatoração ● Testes legíveis ● Código enxuto
  33. 33. Comandos ● Scaffolding ● Migrations ● script/server ● script/generate model / controller / view ● rake
  34. 34. MVC ● Model - Parte da aplicação que faz ligação com o banco de dados. ● View – Interface com o usuário. ● Controller – Responsável por receber as requisições feitas pela aplicação e executar as ações necessárias para atender essas requisições. É onde definimos a lógica do funcionamento da aplicação.
  35. 35. REST ● Consiste em utilizar os métodos HTTP no lugar do nome das ações para rotear a ação correta dentro do Controller. ● Dependendo do método HTTP o Rails encaminha automaticamente para a ação correspondente dentro do Controller.
  36. 36. REST ● Solicitações com o método: ● GET são encaminhadas para as ações “index” e “show” ● POST são encaminhadas para a ação “create” ● PUT são encaminhadas para a ação “update” ● DELETE são encaminhadas para a ação “destroy”
  37. 37. Rotas ● Rails não trabalha com URLs bagunçadas e sim Rotas. ● Facilitação na leitura por engines de busca http://www.torrentleech.org/details.php?id=188684
  38. 38. Facilidades ● Logs ● Ajax ● Javascript ● Jquery ● Prototype e Scriptaculous ● HTML ● Testes Automatizados
  39. 39. Facilidades ● TDD e BDD ● Cucumber e Rspec ● XP
  40. 40. Ferramentas Ágeis ● Github - Repositório ● Integração contínua – Cruise Control ● Deployment – Capistrano, Inploy (dcrec1)
  41. 41. Código PHP <? $email = $_POST['email']; $opcao = $_POST['opcoes']; $db = mysql_connect("localhost","root", ""); $banco = mysql_select_db("teste",$db); if($opcao == "cadastrar"){ $sql = mysql_query("INSERT INTO email (email) value ('$email')"); }else{ $sql = mysql_query("DELETE FROM email where email = '$email'"); } ?>
  42. 42. DEMO RAILS
  43. 43. Comunidade
  44. 44. Por akitaonrails or
  45. 45. Dizem que rails é pouco usado!
  46. 46. Links ● http://www.nomedojogo.com/ ● http://akitaonrails.com/ ● http://blog.areacriacoes.com.br/ ● http://guides.rubyonrails.org/ ● http://ruby-doc.org/core/ ● http://aprendaaprogramar.rubyonrails.pro.br/ ●
  47. 47. @egenial @danielvlopes @AkitaOnRails @tapajos @carlosbrando @thiagomarano @fredmp
  48. 48. OBRIGADO!!
  49. 49. Perguntas?
  50. 50. @thiagocifani cifani.thiago@gmail.com github.com/thiagocifani slideshare.net/thiagocifani

×