Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby object model e metaprogramação

Ruby object model e metaprogramação

Brian Thomas Storti

December 08, 2011
Tweet

More Decks by Brian Thomas Storti

Other Decks in Programming

Transcript

  1. Dinâmica 100% orientada a objetos Fortemente tipada Open source Sintaxe

    elegante Menos verbosa do que Java (e a maioria das linguages estáticas)
  2. Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto

    Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto Objeto em ruby, tudo é um
  3. No ruby, não existe relação entre a classe de um

    objeto e as suas variáveis de instância
  4. Entendendo self self o self self self self self self

    self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self self (ou current object)
  5. Entendendo a ulos módulos inclusão de módulos módulos módulos módulos

    mó ulos módulos módulos módulos módulos mó ulos módulos módulos módulos módulos mó ulos módulos módulos módulos módulos mó dulos módulos módulos módulos módulos mó dulos módulos módulos módulos módulos mó
  6. Classes sses abertas Classes abertas são abertas Classes abert sses

    abertas Classes abertas Classes abert asses abertas Classes abertas Classes aber sses abertas Classes abertas Classes abert asses abertas Classes abertas Classes aber asses abertas
  7. Classes es singleton Classes singleton Singleton Classes sing es singleton

    Classes singleton Classes sing es singleton Classes singleton Classes sing ses singleton Classes singleton Classes sing ses singleton Classes singleton Classes sing ses singleton Classes singleton Classes sing
  8. Apenas uma instância de Class possui um determinado método (que,

    por acaso, é uma classe) (que, por conveniência, chamamos de método de classe)
  9. Class macros são métodos que parecem Keywords métodos como o

    my_attr_accessor são chamados de private public protected attr_accessor require
  10. Criação de DSLs Entender o object model Aplicar técnicas de

    metaprogramação Conhecer o domínio do problema Um pouco de criatividade