domingo, 3 de maio de 2020

Coisas que Desenvolvedores deveriam Aprender

Segurança em Primeiro Lugar

Qualquer aplicativo com certeza deverá ter segurança implementada, nunca deixe o desenho da segurança para "depois". Quando não efetuamos o mapeamento correto da estrutura de segurança no inicio do projeto, com certeza ela aumentará o tempo de desenvolvimento, com certeza será necessário reescrever código, adaptar conceitos para resolver as questões de segurança não mapeadas.

Cada Aplicativo é Diferente

Pode parecer redundante falar que cada aplicação é diferente de outra, porém muitas vezes acreditamos que todo aplicativo deve seguir um conjunto padrão de regras. Para cada aplicação é importante verificar o que realmente é preciso para que ela atinja o objetivo, e as vezes são necessários "exceções" para que se tenha o melhor caminho, não existe literamente, o certo e errado, e sim o que é melhor para que aplicação obtenha o melhor resultado no final.

Microsserviços não são Obrigatórios

É cativante falar que trabalhamos com microsserviços em nosso dia a dia, surfando na onda da alta tecnologia, transformando todos os nossos monólitos em microsserviços. Um exemplo clássico de quando não é recomendado utilizar, é quando o principal objetivo do projeto é cortar custos, a utilização de microsserviços com certeza não irá ajudá-lo a alcança esse resultado, pois lhe obrigará a criar mais instâncias do que realmente necessitaria. A utilização de microsserviços devem ser levadas em consideração analisando o contexto como um todo e não simplesmente a adoção da tecnologia por si só.

Padronize seu Ambiente de Desenvolvimento

Essa com certeza é uma das maiores dores de cabeças para um equipe durante um desenvolvimento, quando temos vários desenvolvedores que não estejam com os seus ambientes equalizados. Incidem inconsistências que levam a grande perda de tempo para solucioná-las, é importantíssimo coordenar as atualizações de versões, ferramentas, addons, enfim tudo que se relaciona com o projeto para sejam iguais, com isso fazemos com que todos estejam na mesma "página".

Use Pacotes quando Necessários

Ter pacotes para as aplicações se torno algo muito popular e principalmente fácil e rápido de executar. Entretanto cada pacote que é instalado, acoplado ou referenciado em seu projeto irá criar uma nova dependência, isso com certeza irá acarretar primeiramente o acréscimo na maioria das vezes de código de terceiros, além pequenas caixas pretas em seu projeto. Outro fator é que os pacotes sempre acabam importando mais referências, logo um simples, formatador de campo, pode se tornar uma extensão cadeia de bibliotecas que precisaram ser entregues e estarem disponíveis. É importantíssimo termos a analise do que realmente deve fazer parte do projeto, uma regra simples que pode ajudá-lo na decisão de importar ou fazer é, se puder escrevê-la em cerca de 10 a 15 minutos, e então o faço.

Não Abstraia o Universo

A abstração é uma outra grande armadilha que é fácil de cair. É muito comum pensarmos "talvez eu possa reutilizá-lo depois" e acabarmos por abstrair para que esteja "pronto" para ser reutilizado. O conceito de reutilização é amplamente mencionado como uma boa prática para ganharmos velocidade e qualidade no projeto, porém gastasse muito mais tempo para criar lógica de abstração, do que simplesmente escrever um método. Outra regra que pode ajudá-lo é, escreva a função, se no próximo passo, você escrever outra função semelhante, você poderá voltar e abstraí-la.

Você não é um Google

Muitas vezes iniciamos nossos projetos imaginando o envolvimento de todas tecnologias de ponta para o escalonamento e alta disponibilidade de nossa aplicação. Sabemos que a escala do projeto é determinante para definir nossa plataforma operacional, logo quanto mais imaginamos nosso projeto "gigante" maior será a plataforma. Ou seja, estamos fazendo isso porque a aplicação precisa estar num padrão de escala "Google" ou porque queremos adicionar essa tecnologia em nosso currículo? Procure se ater ao que realmente a aplicação precisa atender para o público e não o que é moda no mercado.

Não crie uma "filosofia" baseado em Estranhos

Seja você um desenvolvedor iniciante ou não, é importante que você decida sobre quais regras se aplicam ao seu aplicativo e ao seu estilo de desenvolvimento. Estude, pesquise, absorva novos conhecimentos na Internet, mas não crie uma forma de pensar em algo dos outros, faça seus testes, implementações, erre, aprenda, erre de novo, aprenda mais...

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
//marcelogoberto.com.br