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