O documento apresenta uma introdução ao framework Ruby on Rails. Ele discute como instalar o Ruby e o Rails, algumas características das linguagens como classes, herança e loops. Também mostra como gerar um projeto Rails inicial, implementar um CRUD básico com scaffold e examinar os principais componentes do framework como models, views e controllers.
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ em Novembro de 2011.
Palestra ministrada por mim e pelo Marcelo Akira no VI Forum Goiano de Software Livre. Aborda o que é ORM e como utilizar Doctrine para abstrair a camada de dados da sua aplicação.
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ em Novembro de 2011.
Palestra ministrada por mim e pelo Marcelo Akira no VI Forum Goiano de Software Livre. Aborda o que é ORM e como utilizar Doctrine para abstrair a camada de dados da sua aplicação.
A versão do Java 9 trouxe muitas novidades e melhorias para a plataforma e estrutura da linguagem. Novos recursos foram incorporados, como suporte à modularidade (Jigsaw), JShell, Stream API, Collection factories, dentre outros. A versão 10 também acabou de ser lançada com alguns recursos bem importantes. Venha conhecer e acompanhar demonstrações destes recursos em ação e também discutir sobre as futuras modificações da próxima versão 11 planejada para setembro deste ano.
Nesta palestra, veremos como o NewsMonitor, uma ferramenta de monitoração de notícias e clipping digital, começou a usar Scala em 2012. Desde então, temos usado a linguagem como diferencial técnico. A linguagem permitiu que uma pequena equipe criasse uma grande base de código em pouco tempo, mantendo o custo de infraestrutura baixo. Foram desenvolvidos desde sistemas de recomendação até um avançado coletor de notícias em tempo real.
Serão discutidos os pontos positivos da escolha da linguagem Scala, especialmente as funcionalidades que fizeram diferença no desenvolvimento: case classes, imutabilidade, implícitos e biblioteca de coleções. Além disso, serão mostrados os desafios enfrentados pelo grupo: falta de padrões de estilo, complexidade de código, "fanatismo funcional" e perda de performance.
Por fim, veremos a arquitetura que foi implementada no back-end do NewsMonitor, em especial como é organizado o coletor distribuído de notícias.
Doctrine 2 camada de persistência para phpFabio B. Silva
Palestra apresentada na sfcon 2012, conferência brasileira sobre Symfony.
Doctrine é o ORM que está se tornando um padrão para aplicações php de meio e grande porte. Conheça as vantagens e desvantagens em usá-lo, componentes e melhores práticas para o desenvolvimento de uma aplicação ágil, usufruindo de todo o poder do doctrine de forma escalável e mantendo um código de qualidade.
Introdução á linguagem Ruby com aplicativo em Railsoverduka
Apresentação sobre a linguagem de programação Ruby, introdução á linguagem suas vantagens e principais características.
A apresentação inclui casos de uso de sucesso e exemplos de código com a criação de um aplicativo usando o framework Ruby on Rails e Twitter Bootstrap.
Um pouco sobre a história e funcionalidades do Ruby e como juntou-se com o Rails. Um pouco também dos projetos na PTInovação que se utilizam dessas tecnologias.
A versão do Java 9 trouxe muitas novidades e melhorias para a plataforma e estrutura da linguagem. Novos recursos foram incorporados, como suporte à modularidade (Jigsaw), JShell, Stream API, Collection factories, dentre outros. A versão 10 também acabou de ser lançada com alguns recursos bem importantes. Venha conhecer e acompanhar demonstrações destes recursos em ação e também discutir sobre as futuras modificações da próxima versão 11 planejada para setembro deste ano.
Nesta palestra, veremos como o NewsMonitor, uma ferramenta de monitoração de notícias e clipping digital, começou a usar Scala em 2012. Desde então, temos usado a linguagem como diferencial técnico. A linguagem permitiu que uma pequena equipe criasse uma grande base de código em pouco tempo, mantendo o custo de infraestrutura baixo. Foram desenvolvidos desde sistemas de recomendação até um avançado coletor de notícias em tempo real.
Serão discutidos os pontos positivos da escolha da linguagem Scala, especialmente as funcionalidades que fizeram diferença no desenvolvimento: case classes, imutabilidade, implícitos e biblioteca de coleções. Além disso, serão mostrados os desafios enfrentados pelo grupo: falta de padrões de estilo, complexidade de código, "fanatismo funcional" e perda de performance.
Por fim, veremos a arquitetura que foi implementada no back-end do NewsMonitor, em especial como é organizado o coletor distribuído de notícias.
Doctrine 2 camada de persistência para phpFabio B. Silva
Palestra apresentada na sfcon 2012, conferência brasileira sobre Symfony.
Doctrine é o ORM que está se tornando um padrão para aplicações php de meio e grande porte. Conheça as vantagens e desvantagens em usá-lo, componentes e melhores práticas para o desenvolvimento de uma aplicação ágil, usufruindo de todo o poder do doctrine de forma escalável e mantendo um código de qualidade.
Introdução á linguagem Ruby com aplicativo em Railsoverduka
Apresentação sobre a linguagem de programação Ruby, introdução á linguagem suas vantagens e principais características.
A apresentação inclui casos de uso de sucesso e exemplos de código com a criação de um aplicativo usando o framework Ruby on Rails e Twitter Bootstrap.
Um pouco sobre a história e funcionalidades do Ruby e como juntou-se com o Rails. Um pouco também dos projetos na PTInovação que se utilizam dessas tecnologias.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
3. Agenda
• Sobre o Ruby
• Como instalar
• Algumas estruturas da linguagem
• Sobre o Rails
• Como instalar
• Algumas Características do framework
• Primeiro CRUD
• Associações
• Segundo CRUD
3
4. Um pouco sobre Ruby
• Criada em 1993 por Yukihiro Matz
• Linguagem interpretada
• “Tipagem” dinâmica
• Orientada a objetos
• Livre
• http://www.ruby-lang.org/
4
5. Um pouco sobre Ruby
• Instalando
- Linux: sudo apt-get install ruby
- Windows: One-Click-Installer
• http://rubyinstaller.org/download.html
- Mac OS X: sudo port install ruby
• Testando a instalação
- ruby -v [tulios] ~ ruby -v
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
- irb -v irb 0.9.5(05/04/13)
[tulios] ~ irb -v
5
6. Um pouco sobre Ruby
• Interpretando um comando
- Interactive Ruby Shell (IRB)
[tulios] ~ irb
>> puts "Oi"
Oi
• Interpretando um arquivo
- <nome>.rb
[tulios] ~ ruby file.rb
6
7. Um pouco sobre Ruby
• Em Ruby tudo é OO
[tulios] ~ irb
>> 12.class
=> Fixnum
>> true.class
=> TrueClass
>> nil.class
=> NilClass
>> "Tulio".class
=> String
7
8. Um pouco sobre Ruby
• Booleans
- As únicas coisas falsas são nil e false
[tulios] ~ irb >> if 0
>> if 12 >> puts
>> puts "verdadeiro!" "verdadeiro!"
>> end >> end
verdadeiro! verdadeiro!
>> if nil >> if false
>> puts "falso!" >> puts "falso!"
>> end >> end
8
9. Um pouco sobre Ruby
• Variáveis
- Local user
- De instância @user
- De classe @@user
- Globais $user
• Variáveis de classe são comparadas a
atributos estáticos (static) em Java.
9
10. Um pouco sobre Ruby
• Criando uma classe
- Em Ruby Em Java
10
11. Um pouco sobre Ruby
• Criando um objeto
- Ruby
- Java
• Note a sintaxe simplificada, não é
necessário declarar o tipo da
variável.
11
12. Um pouco sobre Ruby
• Criando uma classe com método
- Ruby Java
12
13. Um pouco sobre Ruby
• Utilizando a classe no IRB
- Importar a classe: require
[tulios] ~ irb
>> require 'user'
=> true
>> user = User.new
=> #<User:0x1011cae60>
>> user.ola
=> "oi!"
13
14. Um pouco sobre Ruby
• Utilizando construtores
- Ruby Java
14
15. Um pouco sobre Ruby
• Analisando
- Não é necessário
definir o tipo de retorno
- Não é necessário
utilizar parênteses ().
15
16. Um pouco sobre Ruby
• Construtor e “sobrecarga” do
construtor
16
17. Um pouco sobre Ruby
• Métodos
- De instância
- Da classe
17
18. Um pouco sobre Ruby
• Vamos praticar!
[tulios] ~ irb
>> require 'user'
=> true
>> user = User.new "Tulio"
=> #<User:0x101238410 @nome="Tulio">
>> user.equals? "Karina"
=> false
>> User.compare "Tulio", "Renan"
=> false
18
19. Um pouco sobre Ruby
• Todo atributo em Ruby é privado!
?> user.nome
NoMethodError: undefined method `nome' for #<User:0x101238410 @nome="Tulio">
from (irb):6
19
21. Um pouco sobre Ruby
• Vamos testar!
[tulios] ~ irb
>> require 'user'
=> true
>> user = User.new
=> #<User:0x1012394a0 @nome="">
>> user.nome = "Tulio"
=> "Tulio"
>> user.nome
=> "Tulio"
21
22. Um pouco sobre Ruby
• Como criar o get e o set “na mão”?
[tulios] ~ irb
>> require 'user'
=> true
>> user = User.new
=> #<User:0x1012394a0 @nome="">
>> user.nome = "Tulio"
=> "Tulio"
>> user.nome
=> "Tulio"
22
23. Um pouco sobre Ruby
• Modificadores de acesso
- Privados e protegidos
- Públicos
• Modificador padrão, não é necessário explicitar
(Também podemos utilizar a palavra public)
23
24. Um pouco sobre Ruby
• Utilizando a classe em outro .rb
- Importar a classe: require
24
38. O que é o Rails?
• Meta-framework MVC
• Desenvolvido em linguagem Ruby
• Baseado em convenções
• http://guias.rubyonrails.pro.br/
38
39. Rails
• Lançado em julho de 2004
• Criado por David Heinemeir
Hansson
• Conceitos
- DRY (Don’t Repeat Yourself)
- Convention over Configuration
39
40. Rails - composição
• O Rails é a junção de 5 frameworks
- Active Record (ORM)
- Action Pack (MVC)
- Action Mailer
- Active Support
- Active Resource
- Action WebServices (1.2.6)
40
41. Rails - instalando
• O Rails é uma RubyGem
• Uma gem é código ruby
empacotado
[tulios] ~ gem -v
1.3.6
41
44. Rails - criando o projeto
• Abra o terminal e utilize o comando:
- rails <nome do projeto>
[tulios] ~ rails bug_tracking
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
...
• O Rails irá gerar o arcabouço de um
projeto MVC
44
45. Rails - criando o projeto
• Vamos subir o servidor
- ruby script/server
[tulios] ~/exemplo/bug_tracking ruby script/server
=> Booting Mongrel
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
- Acessar a URL http://localhost:3000
45
47. Rails - o projeto
• Analisaremos apenas o diretório
APP, por enquanto
Controllers
- Controladores da aplicação
Models
- Os modelos do seu domínio
Views
- As telas
Helpers
- Classes de ajuda
47
48. Rails - scripts
• Generate
- Cria uma estrutura básica para o modelo
• Server
- Inicia o servidor da aplicação
• Modo de usar:
- ruby script/generate <parâmetros>
- ruby script/server <parâmetros>
48
49. Rake
• Semelhante ao make do C/C++ ou
Ant do Java
• “A simple ruby build program with capabilities
similar to make.”
[tulios] ~ rake --version
rake, version 0.8.7
49
50. Rails - o projeto
• Configuração padrão do banco
- O banco padrão é o SQLite3, que é um
banco de dados embarcado
50
51. Rails - o projeto
• Configuração padrão do banco
51
52. Rails - 1º CRUD
• Vamos utilizar o gerador scaffold
(andaime)
- ruby script/generate scaffold project
name:string description:text owner:string
- Os atributos do modelo são passados no
script
52
54. Rails - 1º CRUD
• Vamos terminar a criação do
modelo
• Execute os comandos:
- rake db:create:all
- rake db:migrate
54
55. Rails - 1º CRUD
• Saída do db:migrate
[tulios] ~ exemplo/bug_tracking rake db:migrate
(in /Users/tulios/Documents/SEA/Palestras/Rails/exemplo/bug_tracking)
== CreateProjects: migrating ==============================
-- create_table(:projects)
-> 0.0016s
== CreateProjects: migrated (0.0017s) =======================
Migrations (migrações) são uma forma de
evoluir o schema do banco de dados
55
66. Rails - 1º CRUD
• Index no formato xml
• http://localhost:3000/projects.xml
66
67. Rails - 1º CRUD
• Código do controlador (show)
Params é um hash do Rails que possui
todos os atributos do request. :id é o
identificador do atributo id
67
74. Rails - 1º CRUD
• Views
Nesse caso temos um
layout para o
controlador projects,
mas poderiamos ter
apenas um layout para
aplicação toda.
application.html.erb
74
76. Rails - 1º CRUD
• Onde ficam os css e javascripts?
stylesheet_link_tag facilita
o acesso aos arquivos css
:defaults carrega todos os arquivos
javascript padrão do Rails
76
77. Rails - 1º CRUD
• index.html.erb
<% para executar algum comando e <%= para
escapar algum valor
77
78. Rails - 1º CRUD
• Método helper H
Não permite a execução do html armazenado
• Caso contrário
78
80. Rails - 1º CRUD
• Vamos incrementar o modelo
• Vamos utilizar:
- validates_
• O que vamos validar:
- nome será obrigatório, maior que 5 e
menor que 50
- responsável será obrigatório
80