Palestra Desenvolvimento Ágil para Web com ROR UVA

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Palestra Desenvolvimento Ágil para Web com ROR UVA - Presentation Transcript

    1. Desenvolvimento Ágil para Web com Ruby on Rails
    2. Ruby Release público em 1995 Ruby is designed to make programmers happy
    3. PragDave 2000 – Ocidente
    4. Ruby ● Melhor amigo do desenvolvedor ● Legível e Humana ● Perl, Smalltalk, Ada e LISP ● Orientada a Objetos ● Extremamente Flexível
    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. Características do Ruby ● Classes abertas ● Garbage Collector ● Multi-plataforma ● Herança Simples
    7. Vantagens ● Memoria controlada automaticamente ● Linguagem humana ● Simplicidade ● Tipagem Dinâmica ● Extensibilidade ● simbolos
    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. Instalando Ruby ● Ubuntu - sudo apt-get install ruby irb ● Windows - http://rubyforge.org/projects/rubyinstaller/ ● easyrails
    10. Escopo Variáveis ● thiago – variavel local ● @thiago – variavel de instancia ● @@thiago – variavel de classe ● $thiago – variavel global
    11. Classes em Ruby class Personagem def initialize(tipo, nome) @tipo = tipo @nome = nome end end
    12. Classes em Ruby thiago = Personagem.new(:ator, "Thiago Cifani") marano = Personagem.new(:revisor, "Thiago Marano")
    13. Classes em Ruby def to_s "#{@nome} é um #{@tipo}" end
    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. Classes em Ruby attr_accessor :nome, :tipo
    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. Herança Simples class B < A end
    18. Livros OpenSource ● http://aprendaaprogramar.rubyonrails.pro.br/ ● http://why.nomedojogo.com/
    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. DEMO
    21. DHH 2004
    22. BaseCamp
    23. Rails: o que é ? Framework baseado em Ruby que facilita o desenvolvimento web, fazendo-o com agilidade e produtividade
    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. Rails instalação ● Sudo apt-get install rubygems ● Sudo gem update –system ● Sudo gem install rails
    26. Rails - Filosofia ● Convention over Configuration ● DRY - Don't repeat yourself ● KISS – Keep it simple stupid ● Diversão
    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. Convention over Configuration ● Nomes de Arquivos ● Nomes de Tabelas no BD ● Mapeamentos ● Chaves do BD ● Nome das Classes ● Ambientes
    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. 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. Don't Repeat Yourself ● Gems ● Plugins ● Generators ● Templates ● Partials
    32. Keep it Simple Stupid ● Simplicidade acima de tudo ● Refatoração ● Testes legíveis ● Código enxuto
    33. Comandos ● Scaffolding ● Migrations ● script/server ● script/generate model / controller / view ● rake
    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. 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. 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. 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. Facilidades ● Logs ● Ajax ● Javascript ● Jquery ● Prototype e Scriptaculous ● HTML ● Testes Automatizados
    39. Facilidades ● TDD e BDD ● Cucumber e Rspec ● XP
    40. Ferramentas Ágeis ● Github - Repositório ● Integração contínua – Cruise Control ● Deployment – Capistrano, Inploy (dcrec1)
    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. DEMO RAILS
    43. Comunidade
    44. Por akitaonrails or
    45. Dizem que rails é pouco usado!
    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. @egenial @danielvlopes @AkitaOnRails @tapajos @carlosbrando @thiagomarano @fredmp
    48. OBRIGADO!!
    49. Perguntas?
    50. @thiagocifani cifani.thiago@gmail.com github.com/thiagocifani slideshare.net/thiagocifani
    SlideShare Zeitgeist 2009

    + Thiago CifaniThiago Cifani Nominate

    custom

    179 views, 0 favs, 0 embeds more stats

    palestra sobre ruby on rails na veiga cabo frio dia more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 179
      • 179 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 3
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories