Executando verificação de segurança...
1

Princípios para Desenvolver uma Feature

Esse coteúdo foi compartilhado primeiramente no Medium, no link https://medium.com/@ricksonthompson/princ%C3%ADpios-para-desenvolver-uma-feature-c2066d89f2e6.
Vim compartilhar esse conteúdo aqui também como eu primeiro conteúdo. Espero que gostem!:D

"Feature" é o termo usado para descrever funcionalidades a serem desenvolvidas e incrementadas no sistema. De início vamos ter muitas dificuldades em planejar, arquitetar e escrever a solução do início ao fim.

O que eu quero destacar pra você são princípios que me fizeram crescer tecnicamente, melhorar a minha lógica e entregar funcionalidades que geram valor atemporal pro time, produto e pro cliente.

Como desenvolvedores, nossos principais aliados sempre serão planejar bem antes de codificar a solução e ter uma boa lógica de programação.
Para que uma feature seja desenvolvida e atenda aos seus requisitos, pelo menos 5 princípios precisam ser seguidos. Abaixo você pode ver cada um deles:

1. Funcional
A coisa mais simples e essencial a ser feita é resolver o problema. Mesmo que o código não esteja tão limpo, compreensível e performático. Precisa atender ao seu principal objetivo: resolver o problema.

Aqui é muito baseado no princípio K.I.S.S ("Keep It Simple, Stupid"). Ou seja, não torne seus processos mais complicados do que o necessário

💡 Vamos para um exemplo prático: Realizar o parser de um arquivo.

No primeiro momento, sua preocupação deve ser: 
1. Configurar um endpoint para enviar o arquivo;
2. Conseguir processar as linhas e campos do arquivo que deseja manipular;
3. Se necessário, salvar os dados no banco de dados ou enviar para outro lugar.

Agora que funcionou, não está pronto. Tem que seguir os demais passos abaixo👇🏻

2. Manutenível
Qualquer pessoa deve ser capaz de dar manutenção no código. Para que isso ocorra é necessário que haja um conjunto de boas práticas:

  • Variáveis descritivas;
  • Funções descritivas;
  • Classes e funções com responsabilidades únicas;
  • Dados tipados;
  • Desacomplamento (utilizar interfaces, abstrair classes, injetar dependências).

3. Escalável
A feature precisa ser fácil de crescer, alterar e diminuir. Caso seja pedido uma alteração, não irá quebrar todo o restante da aplicação.
Imagine a construção de uma feature como blocos. Nada deve ser entrelaçado, tudo deve ser capaz de ser plugado e desplugado.

4. Usável
Nessa fase, se aplica mais ao front-end ou client responsável pela parte visual da funcionalidade. Aqui pode se dividir em dois pontos:
Ser atrativo: O usuário gosta da interface e transmite profissionalismo pra ele (sem erros de ortografia, alinhamento, paleta de cores).
Ser fácil de utilizar: É objetiva e intuitiva.

5. Atender aos requisitos e testes
Para chegar até aqui precisa atender etapas anteriores e funcionar sem erros/bugs.
Uma feature só é entregue quando a mesma funciona 100% e é validada.

💡 A refletir: Niguém deseja ter uma carro que, mesmo que seja capaz de transportá-lo, é preciso empurrar para ligar, não é capaz de medir a gasolina, o motor superaquece etc. Seria cansativo e insatisfatório.

Para alcançar esse objetivo, é preciso fazer a tratativa dos erros (imaginando os casos mais prováveis aos improváveis). Nessa fase, é muito importante escrever os testes, passar pelo teste do qa/tester e, por último, um code review.

Carregando publicação patrocinada...