Curso Ruby Advanced
16 horasVisão Geral
Este Curso Ruby Advanced, levará os delegados a uma jornada para o uso mais avançado e as melhores práticas de codificação em Ruby. O curso é rico em exercícios práticos para dar vida às técnicas e à teoria.
Ruby é uma linguagem de código aberto e forma a espinha dorsal de uma série de estruturas de aplicativos da web,
Objetivo
Após realizar este Curso Ruby Advanced, você será capaz de:
- Reflexão e modelo de objeto de Ruby
- Métodos e variáveis de instância
- Usando Pry e depurando código Ruby
- Metaprogramação Ruby
- Métodos de chamada
- Serializando e desserializando
- Definindo métodos dinamicamente
- Captura de chamadas para métodos indefinidos
- Definindo classes dinamicamente
- Construindo uma biblioteca para interagir com serviços da web RESTful
- Quando usar a metaprogramação
Publico Alvo
- Usuários Ruby que desejam se aprofundar ainda mais no Ruby.
Pre-Requisitos
- É necessária experiência anterior de desenvolvimento Ruby e um bom domínio dos princípios de programação OO.
Materiais
Português/InglêsConteúdo Programatico
Ruby Reflection:
- Discussion: Ruby's object model
- How to: list the methods available to an object
- How to: see the values of an object's instance variables
- How to: show an object's class hierarchy
- How to: use pry to learn more about our code (including debugging)
Ruby Metaprogramming:
- How to: call methods dynamically with `send`
- example: serialising and deserialising an object to and from a hash
- How to: define methods dynamically with `define_method`
- example: implementing ActiveRecord's `find_by_xxx` methods
- How to: catch calls to undefined methods with `method_missing`
- example: implementing (in another way) ActiveRecord's `find_by_xxx` methods
- How to: define classes dynamically with `Class.new`
- example: reimplementing the standard library's `Struct` class
- Bringing it all together
- exercise: building simple library to interact with RESTful web service by generating code from an XML definition of the service
- Discussion: when to use metaprogramming