O que aprendi nos primeiros três meses de empresa (muita coisa)

Meu nome é Allan e trabalho há cerca de 6 meses aqui na App Masters. Desde que entrei na empresa passei por diversos desafios, mas o principal deles foi aprender as tecnologias para que estivesse no nível das aplicações que desenvolvemos. Apesar programar há bastante tempo, vim de um background de pesquisa e desenvolvimento na área de computação gráfica e só fui começar com desenvolvimento web de verdade há cerca de um ano, tudo ainda parece muito novo.

Recentemente listamos quantas coisas aprendemos nos últimos três meses e, caramba, foi muita coisa! Minha lista tinha mais ou menos vinte itens.

Padrões

Uma das coisas mais importantes que aprendi foram os padrões de projeto, uma coisa é você ter uma aula na faculdade onde o professor fala e você aprende pra usar no trabalho ou na prova, outra coisa é ver eles sendo usado em prática em um produto.

Desses padrões, acho que o mais importante foi o de Container e Apresentação. Quando está trabalhando no front-end de um projeto é fácil ir juntar toda a lógica e código de interface em um único lugar, mas conforme o projeto cresce se torna inviável. Para resolver isso separamos a interface em componentes de Apresentação e a lógica em componentes Containers, com isso, além de facilitar a manutenção do código, nossas interfaces se tornam modulares e mais fáceis de serem reaproveitadas.

Poder isolar o componente de apresentação, facilita o uso de uma ferramenta super interessante; o Storybook. Sabe aquela interface que você só consegue acessar e testar o visual tendo que passar dados bem específicos? Com o Storybook nós conseguimos desenvolver e testar os componentes visuais sem nem precisar estar com o projeto rodando, ele permite que a gente defina os dados que o componente vai receber e nós podemos desenvolver cada elemento de forma isolada. Assim nós podemos prototipar as interfaces de forma muito mais rápida e sem ficar dependendo de um dado específico!

Falando em rodar de forma isolada, você já ouviu falar do Docker?

Docker

Enquanto estudando ou trabalhando com desenvolvimento, em algum momento você provavelmente já teve que instalar algum tipo de servidor ou banco de dados. E quando tinha que trabalhar com vários projetos? Ter um projeto rodando dependendo das configurações locais podia dar conflito com configurações de outros projetos. Se estivesse mexendo em mais de um ambiente ou trabalhando com mais de uma pessoa, tinha que ter certeza de que os ambiente locais estavam configurados do mesmo jeito para não ter aquele problema de “mas na minha máquina roda”.

Alguém segurando uma Bíblia do Docker

Para resolver esses problemas (e muitos outros) surge o Docker! Ao invés de ter que configurar ambiente por ambiente, usamos uma das muitas imagens já definidas e configuradas de acordo com as necessidades do nosso projeto usando apenas um ou dois arquivos e, com apenas um comando, temos nosso servidor rodando de forma isolada e com as mesmas configurações em qualquer ambiente ou máquina. Chega a parecer mágico.

Além dos próprios bancos de dados, nossos próprios projetos podem ser rodados no Docker, não precisamos mais nos preocupar se vai rodar no sistema operacional X ou Y, ou qual provedor, se a sua imagem roda dentro do docker ela vai funcionar em qualquer lugar!

TypeScript e GraphQL

Parando para ver a lista do que aprendi, acredito que o mais importante tenha sido as novas linguagens, TypeScript e GraphQL foram umas primeiras coisas que conheci aqui, mas acho que foram as que mais me ajudaram.

Quando tive os primeiros contatos com tecnologias web, aprendi o padrão REST quase como se ele a única opção para o desenvolvimento moderno separando front-end e backend. Era normal ter que criar uma rota no backend para cada tipo de dado que ia precisava pagar ou ter que alterar uma rota existente para passar algum outro dado necessário por uma nova feature, até eu aprender o GraphQL.

O GraphQL é uma linguagem de query que permite abstrair a comunicação entre ofrontende obackendda aplicação, ele permite que o cliente consulte todos os dados necessários de uma só vez sem precisar fazer requisições para diferentesendpoints. De repente não preciso mais alterar minhas rotas cada vez que preciso de um novo dado do backend, não preciso mais me preocupar em enviar apenas o dados necessários em uma determinada rota para não gerar requisições maiores do que o necessário. Com o GraphQL o front-end se torna, de certa forma, mais independente do backed, o que tornam muito mais fácil iterar sobre a interfaces e o que é exibido sem ter que parar para alterar o backed.

Do C++ para o JavaScript

Vindo de uma área onde usávamos praticamente só C++, começar a trabalhar com uma stack só com JavaScript foi desafio. Mudar de uma linguagem fortemente tipada para uma linguagem onde quase qualquer coisa é válida foi um pouco frustrante. Acostumado a ver a maior parte dos erros durante a compilação, ter que testar parte por parte do código para ver se não tinha algum problema parecia um retrabalho enorme.

Com JavaScript sempre tive a sensação de que tinha que programar, rodar, achar erros, programar de novo até funcionar, usando o TypeScript a maior parte do código parece que simplesmente funciona.

Pra mim, a experiência de trabalhar com TypeScript é incrível; melhores sugestões de código no editor, marcações de erro quando o tipo não é válido ou o valor pode não existir, e a exibição dos erros durante a compilação.

Para finalizar, espero que eu tenha conseguido passar pelo menos uma idéia da quantidade de tecnologias que usamos e aprendemos por aqui. Esses últimos meses têm sido uma experiência incrível, muitas coisas novas para aprender e experimentar, junto com novos desafios que têm me ajudado cada vez mais crescer como desenvolvedor.

Allan Amaral

Bacharel em Ciência da Computação, apaixonado por programação, computação gráfica e RPGs. Sempre aprendendo coisas novas!

Posts relacionados

Redes sociais

Endereço

Av. Barão do Rio Branco 3480
5º andar, Sala 6
Bairro Alto dos Passos, Juiz de Fora - MG
CEP 36025-020