Skip to content

Ramon Silva Posts

FCM: Firebase Cloud Message para Android

Firebase

Recentemente o Firebase se uniu ao google criando um grande serviço de BaaS (Backend as a Service), e os frutos de dessa união já podem ser vistos.

Com o anúncio do fim do serviço do Parse (Facebook), muitos desenvolvedores de Apps se sentiram órfãos, mas o Firebase veio para resolver isso.

Mas o pessoal do Firebase anunciou um novo leque de serviços, incluindo Host, Autenticação de Usuários, Envio de Mensagens Push, Analise de Comportamento de usuários e muito mais. O melhor de tudo, a maioria é grátis e ilimitado, os serviços que não são ilimitados, possuem uma quota de uso no Plano Spark (Grátis).

Creator – Padrões GRASP

Creator

O segundo padrão do catalogo GRASP, é o Creator, este padrão é responsável por atribuir a responsabilidade de criação de objetos.

Atribuições do Creator

O paradigma da orientação a objetos trata-se de uma coleção de objetos que interagem entre si, mas a quem cabe a atribuição de criar esses objetos? Afinal se qualquer  classe sair criando objetos, podemos ter graves violações de encapsulamento, responsabilidades e  alto acoplamento.

Controller – Padrões GRASP

Padrão Controller

O primeiro padrão do catalogo GRASP, é o Controller, este padrão é responsável por atribuir eventos do sistema a classes que que não estão relacionadas com interface com o usuário.

Atribuições da Controller

  • Determina quais objetos são responsáveis por tratar eventos gerados na camada de interface com o usuário.
  • Delega responsabilidades a outras classes e coordena a interação dos principais objetos.
  • Funciona como uma fachada para interação com o sistema
  • Determina quais operações o sistema e capaz de realizar.
  • Determinar quais mensagens são enviadas ao usuário.

Armadilhas do Comando Switch

O comando switchRecentemente enquanto fazia manutenção em um antigo código, me deparei com uma duplicação sem sentido.  Tratava-se de um comando switch para retornar o dia da semana apropriado.

Esta duplicação estava em 3 locais diferentes e fazia sentido estar em cada um daqueles locais, mas não 3 ao mesmo tempo. Foi uma escolha difícil, saber onde manter e onde remover, no fim criei um nova classe para abstrair o problema e tudo foi resolvido.

Depois desse episódio, fiquei curioso e comecei a procurar switchs perdidos em outros projetos, e em quase todos eu encontrei algum tipo de problema.