A diferença entre Frontend e Backend Web Development

o Bootcamp JavaScript de 2021 está agora aberto para inscrições!

neste post eu quero ajudá-lo conceitualmente a fazer a mudança de frontend para backend, no contexto do desenvolvimento da Web.

vamos primeiro definir o que é interface. Frontend é o termo que usamos para identificar programação dentro do navegador. Também lhe chamamos desenvolvimento web do lado do cliente.

no lado da interface você se preocupa em criar e distribuir uma aplicação que roda na máquina de seus clientes, que pode ser um laptop, um computador de mesa ou um dispositivo móvel. Você constrói algo que você distribui e então corre dentro de cada navegador cliente.

no lado da infra-estrutura, você arquitecta e constrói uma aplicação que funciona num único servidor (no início), e todos os clientes acedem a essa aplicação. O aplicativo é executado no servidor, um ambiente de controle e, em seguida, enviar para o navegador de um aplicativo usando o processamento do lado do servidor do aplicativo, ou você criar uma API que apenas distribui dados JSON para os clientes (algo muito comum ultimamente, especialmente emparelhado com o frontend frameworks/bibliotecas como Reagir, Vue e outras).

Você já pode ver que há uma sobreposição aqui. A infra-estrutura pode ser usada para servir a aplicação frontend-facing que será executada no navegador.

HTML, CSS, JavaScript, images, animations, React, Vue, Svelte, CSS-in-JS, state management in the frontend, performance optimization, all of those topics (and many more!) estão ligados à programação frontend.

alguns tipos de aplicações só precisam da parte da interface. O meu site, por exemplo, não tem uma infra-estrutura. É um site estático gerado usando Hugo, e todo o trabalho que faço nele é considerado programação frontend: o CSS, a marcação, o JavaScript que eu uso para a busca de energia, por exemplo.a programação Frontend tem o seu próprio conjunto único de desafios: o suporte do navegador de recursos, por exemplo. Ou o desempenho de uma aplicação num dispositivo de extremidade baixa. A construir aplicações de uma só página.

desenvolvimento da infra-estrutura é completamente diferente da infra-estrutura. Primeiro, você sai do ambiente do navegador, que é libertador por um lado, mas também pode ser esmagador.porquê? Bem, tens mais opções.

no navegador, a escolha da linguagem de programação é sempre JavaScript. Ou uma linguagem que compila para JavaScript, como TypeScript, Elm e outros.

na infra-estrutura pode usar o que quiser. A minha escolha habitual é o nó.js, porque sendo JavaScript baseado eu posso ser um especialista em uma única linguagem, e trabalhar tanto na interface como na infra-estrutura com JavaScript.

Mas você pode usar frameworks como:

  • Django, que é baseado em Python
  • Laravel que é baseado em PHP
  • Rails, que é baseado em Ruby
  • Phoenix, que é baseado no Elixir
  • Deno que é baseado no TypeScript

e muitos outros, incluindo mais de empresa orientada para os ecossistemas, como Java e .LÍQUIDA.

E eu não estou nem mencionando Ir e Ferrugem, duas grandes escolhas.

esta é provavelmente a maior força da programação de infra-estruturas: você tem muitas escolhas na linguagem que você pode usar, então você pode usar a que você preferir. Mas também pode levar a” paralisia de análise”, se você não tem certeza do que você prefere, ainda.

na infra-estrutura não temos os problemas que precisamos enfrentar na infra-estrutura. Uma coisa que ouço muitas vezes é que o desenvolvimento do frontend vai muito rápido. Novas coisas surgem todos os dias e a melhor ferramenta muda de mês para mês. O que não é uma afirmação falsa. O back-end em comparação parece mais um baixo ritmo de ecossistema, especialmente na bem-conhecida e maduro ambientes e ferramentas, e um back-end pode se sentir modernas, por anos, enquanto não podemos dizer a mesma coisa no frontend.

na infra-estrutura temos o seu próprio conjunto de questões, é claro. Por exemplo, como armazenar dados em uma base de dados. Como escolher a base de dados certa. SQL vs NoSQL. Micro-serviços vs monólitos. Como implantar a nossa aplicação, e onde. Como lidar com mais tráfego. Como lidar com dados e solicitações de forma segura. Como testar e manipular o manuseio de erros. Como escolher a arquitetura certa.

então temos tópicos que se sobrepõem com DevOps como usar o Docker e Kubernetes, como configurar uma integração contínua e fluxo de trabalho de entrega contínua, como lidar com Linux, infra-estrutura e rede de nível servidor. Precisamos enfrentar escolhas como usar nossos próprios servidores VPS ou usar um PAAS como Heroku, ou ficar sem Server com AWS Lambda. Dependendo da empresa e equipe em que você trabalha, você pode precisar estar pronto para lidar com esses tópicos, também.

E precisamos de descobrir como ligar a infra-estrutura à infra-estrutura, claro. Como construir uma API. GraphQL vs REST. Como lidar com a autenticação. Como fazer a API rápido em escala. Esses são tópicos que envolvem frontend e backend na busca para fazê-los falar uns com os outros.

é um monte de coisas e você pode encontrar livros inteiros sobre esses tópicos, e é por isso que temos a separação entre os desenvolvedores frontend e backend, e por que ser um desenvolvedor full-stack que pode navegar por todos esses problemas é uma habilidade valiosa a ter.

e é claro que você não precisa saber todas essas coisas para ser qualificado como um desenvolvedor de Interface ou infra-estrutura. Você precisa saber essas coisas em um alto nível, para ter uma idéia do que você não sabe (ainda). Mas é uma ótima idéia também para se especializar em um nicho particular e se tornar grande nisso.

Por exemplo, você pode ser um desenvolvedor de infra-estruturas que não sabe lidar com a configuração avançada do Linux, e confiar em um PAAS como Heroku para fazer isso por você. Ou usar a AWS Lambda para evitar isso.

a coisa importante que eu acho é saber quando é melhor aprender e fazer-você mesmo versus usar ferramentas que suportam o seu trabalho.

the 2021 JavaScript Full-Stack Bootcamp IS NOW OPEN FOR SIGNUPS UNTIL NEXT TUESDAY! Não perca esta oportunidade, Inscreva-se hoje!

Deixe uma resposta

O seu endereço de email não será publicado.