2º Encontro do Grupo de Usuários de Métodos Ágeis da Sucesu-Pará: GUMA nas Organizações

Nosso amigo Sanches não estava falando bobagem no seu post recente sobre o assunto. O Tá Safo! realmente está com tudo e mandou bem demais no 2º Encontro do Grupo de Usuários de Métodos Ágeis da Sucesu-Pará.

O evento ocorreu em 09/07 na Regional Belém do SERPRO e a idéia foi levar o papo sobre métodos ágeis para dentro das organizações locais, o que resolvemos chamar de GUMA nas Organizações.

Continuar lendo

#PapoSafo com Marcelo Andrade

Tá safo want you!

We want you!

Ei, você!  Você que não tirou férias e ficou em Belém no mês de veraneio e está cansado de ir de casa para o trabalho todo dia…  Está a fim de trocar conhecimentos e bater um papo legal sobre tecnologia, eventos, mercado de trabalho e coisas do tipo?

Vem com a gente pra um #PapoSafo na próxima terça-feira 21, a partir das 19h00, na Domino’s Pizza.

Além de experimentar uma das melhores pizzas de Belém pela metade do preço O.o, Marcelo Andrade convida você a vir exercitar seu networking e trocar ideias sobre qualquer assunto, pra todo mundo poder conversar e fazer amigos.  Quem sabe daí não surgem as novidades que vão bombar o cenário de TI por aqui, logo, logo?

Todos os interessados convidados.  Até lá!

Falando sobre Node.js: Mas que diabos é isso?

Salve pessoal, bem… esse é meu primeiro post aqui no blog então por favor deixem suas opiniões e críticas sobre essa publicação no espaço de comentários lá embaixo. Vou tentar esclarecer algumas dúvidas sobre a tecnologia e ao mesmo tempo explicar seu funcionamento em algumas que permeiam a tecnologia em posts curtos e periódicos.

Um dos primeiros pontos a ser abordado é que Node.js não é uma linguagem de programação, então o que é isso? Node.js é uma plataforma baseada na Google V8 Engine ( mesma engine utilizada no Google Chrome ) que roda do lado do servidor escrito por uma equipe liderada por Ryan Dahl em 2009. Tal plataforma disponibiliza uma serie de ferramentas que variam desde um interpretador de linguagem javascript à uma forte API que permite o desenvolvedor trabalhar de forma fácil para criar aplicações em rede altamente escaláveis.

Ok… mas qual a grande diferença entre a infraestrutura fornecida pelo Node.js comparada a servidores como Apache, Tomcat, JBoss dentre outros? Para responder essa pergunta vamos observar o passo-a-passo o funcionamento de ambos.

Outros servidores:

  • Cliente faz a requisição;
  • Servidor atende e processa a requisição;
  • Servidor responde a requisição ao cliente;
  • Servidor está pronto para atender uma nova requisição.

 

servidor normal

retirada de “IIS is how to handle ASP.NET requests”

Node.js:

  • Cliente faz a requisição;
  • Servidor passa a requisição para processamento e se disponibiliza para atender a próxima requisição;
  • Servidor continua atendendo requisições a medida que elas vão acontecendo;
  • Servidor responde as solicitações a medida que seus processamentos vão sendo concluídos.

 

funcinoamento_node

retirada de “Node.js Performance Tip of the Week: Event Loop Monitoring”

Como foi descrito, diferente de outros servidores, o Node não trata a requisição como um todo para que ele possa estar disponível para tratar uma nova requisição do cliente, ele simplesmente a recebe, repassa para threadpool do servidor e já está disponível novamente para atender outra requisição do cliente.

Esse tipo de abordagem é o que tem atraído as atenções para a tecnologia, pois assim podem se criar aplicações que atendem uma grande quantidade de requisições (o que muito vantajoso quando se fala de aplicações pra internet) sem que hajam gargalos ou deadlocks em seus processos.

Referências:

IIS is how to handle ASP.NET requests

Node.js Performance Tip of the Week: Event Loop Monitoring

 

Como foi o Google I/O 2015

Moscone Center West, local do Google I/O 2015

Participar do Google I/O – o maior evento onde a empresa de Palo Alto apresenta as novidades relacionadas aos seus produtos – é o desejo que qualquer geek ou entusiasta de TI, principalmente aqueles que acompanham a plataforma Android desde o início, assim como eu. Esse ano, nos dia 28 e 29 de Maio tive o privilégio de participar do evento representando o GDG Belém e a Comunidade Tá Safo. Irei tentar resumir neste post as experiências vividas e minhas impressões. Mas antes, assista esse breve vídeo e sinta como foi o #io15.

Continuar lendo

Diga, não pergunte

Diga, não pergunte – mais popularmente conhecido como tell, don’t ask – é um princípio da orientação a objetos que nos lembra de que, ao invés de pedir dados a um objeto, devemos dizer a ele o que fazer.

Dados e operações devem pertencer ao objeto, logo, você não precisa consultá-lo para depois agir em seu nome. Ou seja, você deve dizer ao objeto o que você quer que ele faça, e não perguntar sobre seu estado para depois tomar uma decisão. Por exemplo:

def street_name(user)
  if user.address
    user.address.street_name
  else
    'No street name on file'
  end
end

O método street_name está perguntando o estado de user para tomar uma decisão e retornar algo. De acordo com o tell, don’t ask, a implementação dessa lógica deveria ser responsabilidade de user e não do chamador, pois o tipo de implementação visto acima, viola o encapsulamento de user.

Uma solução bem melhor seria:

 def street_name(user)
   user.address.street_name
 end

 class User
   def address
     @address || NullAddress.new
   end
 end

 class NullAddress
   def street_name
     'No street name on file'
   end
 end

Agora, stree_name apenas diz o que quer e o objeto user se encarrega da lógica. Também fazemos uso do pattern NullObject, para deixarmos a solução orientada a objetos de fato.

Deste modo, passamos a pensar declarativamente ao invés de proceduralmente.

Referências
http://martinfowler.com/bliki/TellDontAsk.html
https://pragprog.com/articles/tell-dont-ask

O fracasso da Seleção Brasileira sob a ótica de métodos ágeis

Neste último sábado, o Chile bateu a Argentina nos pênaltis (chupa, Messi!) e conquistou o título da Copa América em casa.  Mas gostaríamos de falar um pouco sobre outro jogo também decidido nos pênaltis e em que a Seleção Brasileira foi eliminada da competição, e tentar fazer uma análise do que aconteceu desde então.

Jogadores da Seleção após derrota nos pênaltis para o Paraguai

As práticas ágeis na sua equipe poderiam ser aplicadas na Seleção? (Foto: Leo Correa/Mowa Press, em Carta Capital)

Claro que aqui não somos comentaristas esportivos nem temos a pretensão de ser.  Mas, usando um termo comum do jargão da área de tecnologia, é certo que vários de nós somos stakeholders do futebol brasileiro e, como quase todo brasileiro, também temos o direito de dar pitaco no que tem acontecido com nosso futebol, especialmente últimos anos.

Ainda que não sejamos especialistas em futebol, tal como os atuais jogadores da Seleção, muitos de nós já participamos de projetos que foram sucesso e que já fracassaram.  E como todos desenvolvedores com alguma experiência participando de retrospectivas, podemos ter algumas opiniões formadas ao longo do tempo sobre coisas que funcionam e coisas que não funcionam em nossas equipes.

E é sob essa ótica que queremos analisar os erros que muitos especialistas comentam que têm ocorrido no futebol brasileiro, às vésperas do aniversário do fatídico 7 a 1.  Vamos lá!? Continuar lendo

Como foi o primeiro semestre no blog do Tá Safo!

Nosso primeiro semestre foi de grande sucesso, tivemos assuntos novos, novos editores e alguns recordes.

No total tivemos 24 posts, sendo os meses de março e abril com o maior número, segunda-feira às 15hs é o dia e horário que recebemos mais visitas.

Queremos agradecer ao Paulo Moura, pois foi o “cara” que mais postou nesse primeiro semestre, com seus posts sempre polêmicos, mas com bastante respeito com o que se trata.

Mais postaram:

Como a comunidade se renova, né? Tivemos 6 novos editores para compor o super time, agradecemos imensamente à vocês que fazem o sucesso que é nosso blog.

Nossos novos editores:

Continuar lendo