Imersão Ruby on Rails

Posted by Daniel Lopes on 30/08/2010

Este ano, na Egenial, foram abertos vários cursos voltados ao mundo Ruby.

Um destes cursos foi Imersão Ruby on Rails. Como já trabalho em parceria com a e-Genial a mais tempo, o Carlos Eduardo (proprietário da empresa) me convidou para ser o responsável por criar este novo curso e a partir de então ficar apenas com esta nova turma.

Depois de pensar bastante, cheguei a conclusão que a melhor opção seria eu ministrar tanto o curso do básico ao avançado como o imersão. Apenas desta forma eu teria controle total de tudo que é necessário para um interessado em Rails entrar com pé direito na tecnologia e em seguida entender com precisão as internas da linguagem Ruby

Como é um curso intensivo com apenas 4 dias com 4 horas por dia (nos sábados), depois que o material estivesse pronto, eu não ficaria sobre-carregado administrando duas turmas e os iniciantes de Rails poderiam seguir a mesma linha de aprendizado deste o início, com o primeiro curso, e se aprofundarem nas internas da linguagem com este segundo. Por estes motivos, atualmente, sou instrutor do curso do Básico ao Avançado e do Imersão.

Durante a preparação da grade e do material eu tentei agrupar todos os temas que considero essenciais para um Rubista. Mas temas que não são tão triviais de se aprender.

Tentei compilar o conhecimento que não aprendemos em blogs ou palestras de 50 minutos. Assuntos como Object Model da linguagem que não vemos em muitos livros mas que são fundamentais para aplicar da forma correta metaprogramação ou para entender, de verdade, técnicas simples como “class << self”.

Outros temas importantes que tentei abordar neste novo curso são por exemplo a influência de dsls no cotidiano (e como criar dsl’s), refactoring (na prática melhorando um pequeno projeto em Ruby puro coberto com MiniTest), boas práticas de Rails como arquitetura rest para organização ao invés de criar API’s, design SOLID e criação de Gems.


Grade com detalhes

É bem provável que esta seja a última turma deste curso para 2010 então corra e faça sua matrícula. A grade do curso detalhada você pode ver abaixo (ou no próprio site do curso):

  1. Ruby Object Model
    1. A verdade sobre programação orientada a objetos
    2. Os segredos para identificar o “self”
    3. Method Lookup
    4. Superclass e Metaclass
    5. Eigen Class ou Ghost Class
    6. A verdade sobre o que são classes
    7. Métodos de classe não existem
    8. A verdade sobre os módulos
    9. Usando módulos da forma correta
  2. Metaprogramação
    1. Mágica é para os fracos, entenda o que é metaprogramação
    2. Importância da reflexão
    3. Compreendendo o que são e as diferenças entre blocos, proc e lambda
    4. Entendendo corretamente o escopo e como alterar o self
    5. Família “eval”
    6. Classes Abertas
    7. Criando métodos em runtime
    8. Criando classes em runtime
    9. method_missing
    10. Hooks do Ruby
    11. Exemplos reais sobre metaprogramação
  3. Ruby DSL’s
    1. Entendendo o que são DSL’s
    2. DSL’s internas em Ruby
    3. Importância de DSL’s para melhor o design do software
    4. Técnicas mais comuns para criação de DSL’s
    5. Exemplos práticos de DSL’s (ex.: Whenever, rotas do Rails, delayed_job e etc)
  4. Ruby best pratices
    1. Como diferenciar um bom design e de um ruim
    2. Evitando erros comuns em manutenção
    3. Aprendendo conceitos de um design S.O.L.I.D
    4. Refactoring na prática (usando Ruby 1.9 e MiniTest)
    5. Forwardable
    6. Delegate
    7. Comparable
    8. Enumerable
    9. Parâmetros nomeados
    10. Expressões condicionais
    11. Convenções do Ruby
  5. Rails Best Pratices
    1. Boas práticas em desenvolvimento Rails
    2. Como organizar sua aplicação pensando no futuro
    3. Restful como ferramenta de design e não apenas para API’s
    4. Refatorando controllers
    5. Refatorando Views
    6. Refatorando Models
  6. Rails Best Pratices
    1. Controllers magros
    2. Models gordos
    3. Single Responsibility em Models
    4. Princípio do menor conhecimento
    5. R.E.S.T para arquitetura de software
    6. Rotas saudáveis
    7. DRY com metaprogramação
    8. Módulos para repetição
    9. Composição
    10. Callbacks em Observers
    11. Índices em Migrations
    12. Alimentação do banco com Seeds
    13. Sempre mantenha um rollback em Migrations
    14. Separação de lógica das views
    15. Técnicas avançadas com partials e layouts
    16. Refatorando forms com FormBuilders
  7. Gems
    1. O que são realmente Gems
    2. Erros graves ao escolher uma Gem
    3. Como ler uma Gem
    4. Importância de se criar Gems
    5. Criando uma Gem na prática
blog comments powered by Disqus