• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Palestra Desenvolvimento Ágil para Web com ROR UVA
 

Palestra Desenvolvimento Ágil para Web com ROR UVA

on

  • 1,187 views

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

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

Statistics

Views

Total Views
1,187
Views on SlideShare
1,154
Embed Views
33

Actions

Likes
0
Downloads
12
Comments
0

2 Embeds 33

http://thiagocifani.wordpress.com 30
http://www.slideshare.net 3

Accessibility

Categories

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

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

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