O lado do cliente em um aplicativo Web está sob o controle do usuário / cliente, o lado do servidor está sob o controle do desenvolvedor. Essa é uma das razões pelas quais se deve fazer a validação de dados no servidor.
Os termos front-end e back-end são frequentemente usados como sinônimos para o lado do cliente e o servidor e, em muitos casos, está ok. No entanto, também existem contra-exemplos importantes. Para mim , o front end é algo que mostra algo para o usuário.
Na imagem a seguir, é possível ver tecnologias / conceitos típicos e como eles se encaixam nos quadrantes (front end, back end) / (lado do cliente, lado do servidor).
Desenvolvedores Front-End e Back-End
O desenvolvedor de front-end e back-end são duas funções muito comuns. A linha fica um pouco confusa quando você tem coisas como React, que pode ser renderizada no servidor e Flask, que inclui o mecanismo de modelagem jinja .
E, embora eu coloque tecnologias como banco de dados Web SQL e API de banco de dados indexado no quadrante "back-end do lado do cliente", a função que normalmente sabe disso é a função de desenvolvedor front-end.
- Os desenvolvedores de front-end devem conhecer HTML, CSS, o DOM e os recursos gerais do navegador (por exemplo, caniuse ). Normalmente eles conhecem algum jQuery ou React. Embora seja back-end de acordo com minha definição, eu esperaria que os desenvolvedores de front-end soubessem sobre o armazenamento do lado do cliente
- Os desenvolvedores de back-end devem conhecer servidores da Web como nginx, gunicorn, Apache ou node.js. Eles devem conhecer pelo menos um banco de dados SQL (Postgres, MariaDB / MySQL, ...), armazenamentos de valores-chave (Redis), desenvolvimento de API (REST e GraphQL). LAMP era uma pilha típica há um tempo atrás. Eu NÃO esperaria que um desenvolvedor de back-end soubesse algo sobre navegadores!
UI Designer x Desenvolvedor Front-End
Duas outras funções são o designer da interface do usuário e o desenvolvedor front-end. Portanto, uma diferença é que um é designer e o outro é desenvolvedor.
Objetivo:
- Designers de interface do usuário esboçam a experiência do usuário
- O desenvolvedor Front-End garante a aparência esperada (criando a coisa real a partir do rascunho)
Ferramentas:
- Os designers de interface do usuário usam principalmente o Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision.
- Os desenvolvedores de front-end usam React, Vue, Angular
APIs: REST e GraphQL
As APIs são fornecidas pelas equipes de back-end e são usadas pelos front-ends para preencher o aplicativo com os dados. O back-end é o armazenamento persistente entre dispositivos, o front-end é a camada de apresentação. A API é o canal de comunicação para ambos.