Controlando a sequência dos eventos em Javascript

Uma das maiores causas de bugs em códigos Javascript são eventos e como eles são executados. Uma má gestão da sequência em que eventos são disparados leva não só a mais bugs como aumenta a dificuldade da correção deles e da inserção de novas features no mesmo componente ou página.

Primeiramente, o que são eventos?

O nome já dá uma pequena ideia do que é. Eventos é a forma como lidamos com efeitos externos que podem acontecer a qualquer momento. O exemplo mais simples é o clique do mouse. Você não sabe quando vai acontecer, mas quando acontecer, o código estará preparado para executar uma ou mais funções específicas para este evento.

Outros eventos podem não ter intervenção direta do usuário. Por exemplo, o event onLoad do documento. Ele será disparado quando a página terminar de carregar.

Continue lendo »
Author's profile picture Klayton Cavalcante em: Programação, Javascript, and Boas práticas

Uma dica simples para entender o princípio da responsabilidade única

Existe o seguinte ditado: “o papel aceita tudo”. Isso é quase totalmente adaptável para os conceitos de programação. Eu poderia dizer: “o código aceita quase tudo”. Linguagens de programação de escopo aberto possuem a característica de não restringir muito o que o programador pode fazer. Isso lhe dá a liberdade de escrever códigos dos mais diversificados, o que inclui escrever código ruim.

Para evitar que isso ocorra, existem vários padrões e princípios que podem ser seguidos para dar ao programador um trilho sobre o qual ele pode caminhar. Um dos conjuntos de princípios mais conhecidos é o SOLID. A sigla está em inglês e consiste de 5 princípios básicos:

  • Single responsibility principle (princípio da responsabilidade única)
  • Open/closed principle (princípio de aberto/fechado)
  • Liskov substitution principle (princípio da substituição de Liskov)
  • Interface segregation principle (princípio da segregação de interface)
  • Dependency inversion principle (princípio da inversão de dependência.

Neste artigo falaremos sobre o primeiro deles e como atingi-lo de forma relativamente simples.

Continue lendo »
Author's profile picture Klayton Cavalcante em: Código limpo, Boas práticas, and Programação

Backlog refinement: um passo importante para uma sprint de sucesso

O Scrum é uma metodologia interessante para se aplicar no trabalho em equipe ao desenvolver software. As regras são simples de entender, mas como dito no próprio scrum guide:

Scrum é simples de entender e difícil de dominar. (Scrum Guide, em inglês.)

Em um caso recente, uma equipe scrum com a qual trabalho começou a demonstrar uma queda de produtividade. A cada sprint, menos stories eram finalizadas e muita coisa passava para a próxima sprint, o que é muito longe do ideal.

Continue lendo »
Author's profile picture Klayton Cavalcante em: Projetos, Planejamento, and Intermediário

Sobre a dificuldade de começar a escrever

Eu decidi começar a escrever.

Não está sendo fácil iniciar.

Como todo e qualquer início de projeto, eu estou me sentindo bem perdido. O que escrever? Sobre o quê? Quando? Isso é relevante?

Mas bora lá, vou tentar escrever mais um texto sobre exatamente isso: iniciar um projeto, que neste caso é escrever.

Continue lendo »
Author's profile picture Klayton Cavalcante em: Projetos, Planejamento, and Iniciante

Hello World: Quem é Klayton?

Olá, pessoal.

Essa é uma das minhas primeiras tentativas em muito tempo de escrever algo e contribuir um pouco mais com a comunidade, ao mesmo tempo que aprendo mais.

Para me apresentar um pouco, meu nome é Klayton Cavalcante. Sou programador há um bom tempo já, mas não saberia dizer desde quando. Por volta de 2003 ou 2004, não lembro bem, meu irmão mais velho me mostrou que dava pra colocar coisas online no Kit.Net, que é um falecido serviço de hospedagens que a Globo.com tinha. Nada muito complexo. Mas tinha ao menos um FTP que permitia que eu colocasse um ou outro arquivo HTML lá dentro. Foi aí que eu comecei a me interessar em colocar alguma coisa online.

Continue lendo »
Author's profile picture Klayton Cavalcante em: Carreira, Sobre mim, and Dia a dia