Objetivo

O intuito do curso é desenvolver uma aplicação Web completa, que vá desde o banco de dados até o uso de AJAX em toda sua camada de visualização. O foco é o pragmatismo, com riqueza de detalhes para entendimento da mágica por trás do Ruby on Rails.

Ao final do curso, você estará apto a desenvolver uma aplicação completa com Ruby on Rails 4, entendendo todas as facilidades que o framework provê (nada de mágica!), gastando um tempo muito menor que com outras linguagens e frameworks. Tudo isso com recursos de metaprogramação, AJAX, validação, de forma simples, sem XMLs, com testes e entregando software de qualidade!

Público-alvo

Este curso é indicado para Desenvolvedores Java, Arquitetos de Software, Estudantes.

Metodologia

O curso será ministrado no ambiente de aprendizagem virtual na modalidade à distância(Plataforma Moodle) sem previsão de encontros presenciais ou síncronos entre alunos e equipe pedagógica.

A estruturação do curso foi projetada de tal forma, para que todo seu conteúdo seja auto-contido e desta forma, possibilita a execução do curso sem a necessidade de tutor para atendimento ao aluno. Além disso, os alunos poderão utilizar os próprios materiais didáticos para sanar suas dúvidas.

A metodologia de ensino adotada para o curso é a interacionista em que a aquisição do conhecimento é promovida mais efetivamente através das interações quer sejam entre participantes, entre participantes e o material do curso, ou entre participantes e o meio. Sugerimos ao aluno que disponha em média de 1h por dia para cumprimento das atividades propostas no curso e para seu aprendizado.

O curso tem como eixo central a realização de atividades baseadas nos recursos didáticos disponibilizados pela coordenação do curso que podem ser videoaulas gravadas, apostilas, guias, tutoriais, apresentações em PowerPoint, animações, código fonte, etc. E ainda pela participação em tarefas e questionários. Cada unidade terá uma seleção de um ou mais tipos destes recursos didáticos em que serão abordados os conceitos e assuntos pertinentes ao curso.

As videoaulas poderão ser assistidas a qualquer momento durante o período em que o curso estiver sendo realizado. Isso permitirá que o aluno possa organizar seus estudos nos horários mais convenientes.

Após a inscrição o participante receberá em seu e-mail cadastrado os dados de acesso à plataforma de ensino assim como o endereço eletrônico para acesso ao conteúdo do curso.

Ao fim do curso, após cumprir as exigências pedagógicas, o aluno terá direito a um certificado de participação do referente curso.

Carga Horária

40h

Programa

Agilidade na Web

  1. A agilidade
  2. A comunidade Rails
  3. Bibliografia
  4. Tirando dúvidas
  5. Para onde ir depois?

A linguagem Ruby

  1. A história do Ruby e suas características
  2. Instalação do interpretador
  3. RubyGems
  4. Bundler
  5. Outras implementações de interpretadores Ruby

Ruby básico

  1. Aprender Ruby?
  2. Executando código Ruby no Terminal: IRB e arquivos .rb
  3. Variáveis, Strings e Comentários
  4. Variáveis e atribuições
  5. Tipagem
  6. String
  7. Exercícios - Strings
  8. Tipos e operações básicas
  9. Estruturas de controle
  10. Desafios

Mais Ruby: classes, objetos e métodos

  1. Mundo orientado a objetos
  2. Métodos comuns
  3. Definição de métodos
  4. Discussão: Enviando mensagens aos objetos
  5. Classes
  6. Desafio: Classes abertas
  7. self
  8. Desafio: self e o método puts
  9. Atributos e propriedades: acessores e modificadores
  10. Syntax Sugar: facilitando a sintaxe
  11. Coleções
  12. Hashes
  13. Blocos e Programação Funcional
  14. Para saber mais: Mais sobre blocos
  15. Desafio: Usando blocos
  16. Manipulando erros e exceptions
  17. Arquivos com código fonte ruby
  18. Para saber mais: um pouco de IO

Metaprogramação

  1. Métodos de Classe
  2. Para saber mais: Singleton Classes
  3. Convenções
  4. Polimorfismo
  5. Modulos
  6. Metaprogramação

Ruby on Rails

  1. Ruby On Rails
  2. MVC
  3. Ambiente de Desenvolvimento
  4. Criando um novo projeto Rails
  5. Estrutura dos diretórios
  6. O Banco de dados
  7. A base da construção: Scaffold
  8. Gerar as tabelas
  9. Server
  10. Documentação do Rails

Active Record

  1. Motivação
  2. Exercícios: Controle de Restaurantes
  3. Modelo - O "M" do MVC
  4. ActiveRecord
  5. Rake
  6. Criando Modelos
  7. Migrations
  8. Manipulando nossos modelos pelo console
  9. Exercícios: Manipulando registros
  10. Finders
  11. Validações
  12. Pluralização com inflections
  13. Relacionamentos
  14. Para Saber Mais: Auto-relacionamento
  15. Para Saber Mais: Cache
  16. Para Saber Mais - Eager Loading
  17. Para Saber Mais - Named Scopes
  18. Para Saber Mais - Modules

Rotas

  1. routes.rb
  2. Pretty URLs
  3. Named Routes
  4. REST - resources
  5. Actions extras em Resources
  6. Para Saber Mais - Nested Resources

Controllers e Views

  1. O "V" e o "C" do MVC
  2. Hello World
  3. Exercícios: Criando o controlador
  4. Trabalhando com a View: O ERB
  5. Entendendo melhor o CRUD
  6. A action index
  7. Helper
  8. A action show
  9. A action destroy
  10. Redirecionamento de Action
  11. Helpers para formulários
  12. A action new
  13. Recebendo um parâmetro por um formulário
  14. A action create
  15. A action edit
  16. A action update
  17. Atualizando um restaurante
  18. Mostrando erros ao usuário
  19. Mensagens de erro na atualização
  20. Partial
  21. Respondendo em outros formatos como XML ou JSON
  22. Para saber mais: Outros handlers
  23. Filtros

Completando o Sistema

  1. Um pouco mais sobre o Scaffold
  2. Exercícios: Completando nosso domínio
  3. Selecionando Clientes e Restaurante no form de Qualificações
  4. Mais sobre os controllers

Calculations

  1. Métodos
  2. Média
  3. Exercícios

Associações Polimórficas

  1. Nosso problema
  2. Alterando o banco de dados

Mais sobre views

  1. Helpers customizados
  2. Partials e a opção locals
  3. Partials de coleções
  4. Layouts
  5. Aplicar CSS em apenas algumas views

Ajax com Rails

  1. Utilizando AJAX para remoção de comentários
  2. Adicionando comentários dinamicamente

Algumas Gems Importantes

  1. Engines
  2. File Uploads: Paperclip
  3. Nokogiri
Comentários