O que significa ser um desenvolvedor front-end em 2020 (e além)

Publicados: 2023-04-21

Você já pensou sobre o que realmente significa a parte front-end do desenvolvedor front-end ? Certa vez, perguntei a Eric Meyer (que vem construindo sites há quase tanto tempo quanto existem sites) se ele sabia o que o termo significava nos primeiros dias, e ele disse que sim. Portanto, não é um título ou posição totalmente novo, mas certamente mudou de escopo ao longo dos anos.

"Front-end" significa essencialmente navegador da web. Eu me considero um desenvolvedor front-end e, honestamente, não odiaria se você me chamasse de desenvolvedor de navegadores da web. Mas isso provavelmente não vai pegar (e parece que você constrói navegadores da web). Como desenvolvedor front-end, você trabalha em estreita colaboração com navegadores da Web e escreve o código executado neles, especificamente HTML, CSS, JavaScript e um punhado de outras linguagens que os navegadores da Web falam (por exemplo, formatos de mídia como SVG). Ou, talvez ainda mais comumente explicado, código que é processado nas linguagens que os navegadores entendem. Esse é o seu território como desenvolvedor front-end!

Os navegadores não existem sozinhos, eles rodam em uma ampla variedade de dispositivos. Aprendemos isso na era do design responsivo. E o mais importante: os usuários usam esses navegadores nesses dispositivos. Ninguém está mais próximo do usuário do que os desenvolvedores front-end. Assim, os desenvolvedores front-end escrevem código para pessoas que usam navegadores executados em uma ampla variedade de dispositivos.

Imagem de 7 mãos segurando diferentes dispositivos móveis, como telefones, laptops e tablets.
Imagem do Shuttershock

Lidar com esse enorme cenário de usuários, dispositivos e navegadores é um trabalho em si! Eu acho que não é todo dia que você pensa filosoficamente sobre seu cargo, e tudo bem; estamos apenas refletindo um pouco aqui com seu velho avô Chris.

Se você acabou de se formar em um bootcamp de codificação e sua experiência na construção de sites é um tanto estreita e nova, você pode ser perdoado se pensar no desenvolvimento front-end como “o material React” e no desenvolvimento back-end como “o Node stuff” ou “the Python stuff”, como são os sabores mais quentes atualmente. Você também não está errado. React é geralmente usado como um framework front-end (é literalmente JavaScript que roda em navegadores). Node e Python são exemplos de linguagens que realmente não rodam em navegadores web; eles são construídos para rodar em servidores web (uhh, computadores).

Permaneça neste campo por um tempo e você verá essas bibliotecas, linguagens, processos de construção e até mesmo filosofias inteiras sobre a melhor forma de construir sites ir e vir como uma maré lenta.

Você pode testemunhar algum veterano agitando o punho de vez em quando, gritando que devemos aprender com os erros do passado. Você também pode testemunhar alguns jovens particularmente turbulentos agitando os punhos tão alto quanto, declarando que o passado é um contexto irrelevante e não é mais um ponto de conversa útil.

Imagem de uma criança sendo boba e a outra parece muito zangada e está balançando o punho.
Imagem do Shuttershock

Ambos estão certos, provavelmente. Desde que ninguém seja desagradável, tudo faz parte do fluxo.

As coisas mudam. Acho que é verdade que muitos sites de hoje são mais complexos do que os sites do passado. Principalmente os grandes. As redes sociais e players de mídia. Os sites de reservas de viagens. As vitrines de comércio eletrônico. As ferramentas de engenharia. Esses sites começaram grandes e só ficaram maiores. Eles são economias para si mesmos com grandes equipes apoiando-os. Essa complexidade é uma causa de mudança na tecnologia da web e uma causa de atrito entre as novas e velhas escolas (se é que podemos pintar isso de forma simples).

Muitas pessoas que trabalham com tecnologia trabalham, essencialmente, para um grande site. E assim ouvimos essas pessoas com mais frequência. Essas pessoas constroem ferramentas. Eles escrevem postagens em blogs, vão a podcasts, fazem palestras. Eles ajudam a mudar a própria tecnologia, para atender às suas necessidades.

Enquanto isso, o “front-end” ainda é apenas o navegador. As linguagens dos navegadores, HTML, CSS e JavaScript ainda são as principais tecnologias em jogo. Essas linguagens evoluem, assim como os próprios navegadores, mas mais lentamente. Eles fazem exatamente o oposto do slogan favorito do Vale do Silício: mova-se rápido e quebre as coisas . Eles se movem lentamente e muito raramente quebram alguma coisa.

​​Ser um desenvolvedor front-end ainda é se preocupar com os usuários que usam esses navegadores nesses dispositivos. A experiência deles é o nosso trabalho. O ferramental apenas nos ajuda a fazer isso, espero.

​​Então, o que você está fazendo como desenvolvedor front-end?

  • ​​Você está executando o design de forma que fique bem em qualquer tela
  • Você está aplicando semântica ao conteúdo
  • Você está construindo a interface do usuário de forma abstrata, de modo que possa reutilizar peças e estilos com eficiência
  • Você está considerando a acessibilidade do que renderiza no navegador
  • ​​Você está preocupado com o desempenho do site, o que significa que está lidando com o tamanho e quantos recursos estão sendo usados ​​pelo navegador.

​​Essas coisas sempre foram verdadeiras e sempre serão, pois são preocupações fundamentalmente no nível do navegador e é isso que o front-end é.

O que está mudando é que o navegador é capaz de trabalhar cada vez mais. Existem vários motivos para isso, como APIs de navegador cada vez mais capazes, bibliotecas cada vez mais sofisticadas e computadores cada vez melhores, em geral. Descarregar o trabalho do servidor para o navegador tem feito cada vez mais sentido ao longo dos anos (aplicativos de página única!). Embora seja interessante observar o pêndulo voltar (sites pré-renderizados!) e encontrar um meio-termo (JAMstack!).

Atualmente, o desenvolvimento front-end também pode incluir:

  • ​​Arquitetando todo o site, desde o menor componente até páginas inteiras até o nível do URL
  • Obtendo seus próprios dados de APIs e manipulando os dados conforme necessário para exibição
  • Lidando com o estado do site por conta própria
  • Mutação/alteração de dados por meio da interação e entrada do usuário e persistência desses dados no estado e de volta aos servidores por meio de APIs

​​Essas são todas as coisas que podem ser feitas no navegador agora, para os olhos arregalados desse antigo desenvolvedor. Isso é um monte de responsabilidade quando você considera que está no topo de todas as coisas que você já tem que fazer.

Uma imagem de algumas pessoas diferentes olhando para um grande palheiro.
Imagem do Shuttershock

Enquanto esse monte de trabalhos tende a crescer ao longo dos anos, a luz que temos como desenvolvedores front-end não mudou muito. Nossa principal responsabilidade ainda é cuidar dos usuários que usam navegadores da Web em dispositivos. Então, temos que buscar alguns dados. Que legal, estamos fazendo isso para construir uma página rápida, semântica e acessível para atender às necessidades de nossos usuários. Portanto, precisamos construir um sistema de design. Legal, estamos fazendo isso para construir uma interface compreensível para nossos usuários, capaz de evoluir sem criar uma bagunça inconsistente. Portanto, temos que aprender alguma nova tecnologia desconhecida. Bem, é nosso trabalho manter um olhar atento e garantir que algo novo esteja lá para melhorar nosso site para os usuários.

Boa sorte!