July 13, 2011
Construindo um sistema de autorização de usuário com herança

Que tal construir um sistema simples e funcional de autorização de usuários de forma rápida e bem elegante?

Lembrando: Quando falamos em autorização, estamos nos referindo as permissões dos usuários, o que cada tipo de usuário pode fazer ou não.

Acredito que a maioria das pessoas quando estudou orientação a objetos, teve como exemplo uma classe Cachorro que herda de uma classe Animal, certo? Vamos relembrar exemplo?

Relembrando

Classe Animal

class Animal
  def comer
    ...
  end
end

Aqui temos uma classe Animal que possui um método comer.

Classe Cachorro

class Cachorro < Animal
  def latir
    ...
  end
end

Já aqui, temos uma classe Cachorro que herda tudo de Animal, inclusive o método comer. Sendo que a classe Cachorro possui um método único que não esta disponível na classe Animal, o método o latir, pois não queremos que todos que herdarem de Animal tenham o método latir, certo? Imaginem um gato latindo… hmm seria meio estranho isso… enfim, continuando…

Read More


July 12, 2011
Sim! Os “caches” são mágicos!

O problema

O que fazer quando nossa aplicação começa a demorar a responder?

  1. Otimizar o código?
  2. Rever os índices do banco?
  3. Aumentar a memória? 
  4. Contratar um novo servidor?
  5. Escalar minha aplicação?

Logicamente todas as opções são válidas, porém existem uma que pode nos surpreender, o uso de caches! O rails possui nativamente esse recurso, porque não usa-lo?

Tipos de caches

Podemos trabalhar com três tipos de caches:

  1. Page cache
  2. Action cache
  3. Fragment cache

Porém hoje irei abordar somente o fragment cache, acredito ser o mais utilizado. Mas aconselho a conferirem os outros tipos também na documentação do rails.

Para quem não sabe, fragment cache nada mais é que guardar um pedaço de html, para que quando alguém acessar sua página, a aplicação não tenha que ir novamente ao banco de dados, coletar os dados e renderizar-lo em html. Funciona assim:

Read More


Liked posts on Tumblr: More liked posts »