Glossário Back-End: conceitos e fundamentos básicos
5 min5 minutos de leitura
5 min5 minutos de leitura
Autor(a)
Adriana Oliveira
Scuba Back-End, estudante de Sistemas para Internet, mergulhada em tecnologias. Busco desenvolver habilidades que me permitam contribuir para o alcance de mais acessos e servir a comunidade. Apaixonada pela natureza, música, artes e esportes.
Inscreva-se em nossa Newsletter
Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.
Antes de tudo, é importante desmistificar de vez o que é Back-end. Este termo traduz uma especialização na programação e como o próprio nome sugere, traz a ideia de “bastidores” de uma requisição da aplicação.
Devido a complexidade dos sistemas, foram direcionadas partes específicas de uma aplicação. De um lado, o front-end atua com os elementos gráficos de um site ou aplicativo para a interação do usuário (lado cliente).
Do outro lado, o desenvolvimento Back-end, orientado por dados, opera na camada de dados do lado do servidor com funcionalidades da solução de software que os usuários não veem.
Pessoas desenvolvedoras back-end manobram estruturas e algoritmos para implementação e exibição de dados. De forma simplista, atuam como uma ponte entre o navegador e o banco de dados.
Elas recebem os dados do front, processam, aplicam as regras de negócios e persistem para o banco de dados, ou uma outra API - serviços externos, além de garantir um bom desempenho da aplicação.
Na área de desenvolvimento, sobretudo quando estamos iniciando na programação, é comum nos depararmos com diversos conceitos interligados, mas que ainda causam desordem.
Algumas vezes confundimos linguagens, frameworks, bibliotecas, entre outras. Nesse sentido, para uma melhor compreensão básica dos processos, segue um rol dos principais conceitos utilizados no mundo back-end:
Principais conceitos
MVC
Padrão de arquitetura de software que sugere uma divisão de responsabilidades dentro de uma aplicação. Model ou Modelo: objeto de modelo de negócio responsável pelo gerenciamento dos dados por meio das funções, lógica e regras de negócios estabelecidas. View ou Visão: responsável pela comunicação com o usuário, mostra na interface as informações do modelo. Controller ou Controlador: camada que intermedia as requisições enviadas pela view com as respostas providas pelo modelo.
API
Application Programming Interface ou Interface de Programação de Aplicação. As APIs são mecanismos que permitem a comunicação (cliente - servidor) entre dois componentes de software por meio de um conjunto de definições e protocolos. Sua classificação varia de acordo com sua arquitetura e escopo de uso: APIs privadas, APIs públicas, APIs de parceiros e APIs compostas. Existem quatro formas de funcionamento: APIs SOAP, APIs RPC, APIs WebSocket e APIs REST.
Banco de Dados Relacional
Armazenamento de dados baseado em tabelas com linhas na horizontal e colunas na vertical. Sua principal característica é a necessidade de estruturação de esquemas para a inserção de dados. Atua com a linguagem de programação padronizada - Structured Query Language (SQL) para manipulação e execução de consultas analíticas dos dados.
Banco de Dados Não-Relacional
Armazenamento de dados representados por coleções de pares de valores-chave (key-values). Também conhecidos como arrays associativos formatados em filas. Trata-se de um esquema dinâmico de banco de dados NoSQL otimizado para os requisitos específicos do tipo de dados que está sendo armazenado.
Frameworks
Estrutura que envolve um conjunto de bibliotecas ou componentes usados para criar uma base onde a aplicação será construída. Proporciona reusabilidade e conexões de linhas de código e provê funcionalidades que se adequa a diversas aplicações.
Bibliotecas
Coleção de subprogramas com diversas finalidades para redução do uso de código no desenvolvimento de software. Permite o compartilhamento e a alteração de código e dados de forma modular.
Desde 2000 surgiram inúmeras linguagens de programação novas - é interessante conhecer, comparar cada tecnologia. Para uma visão geral, segue as principais linguagens de codificação de back-end e suas características:
Características: compatibilidade entre plataformas, relatórios de erros e exceções, monitoramento de acesso em tempo real. Ferramentas adicionais: Laravel, Cake PHP, Symfony, CodeIgniter. Aplicativos famosos:WordPress, Yahoo, MailChimp, Wikipedia.
Características: Orientado a objetos, sintaxe simples, variedade de bibliotecas, alto nível de segurança. Ferramentas adicionais: Django, Pyramid e Flask. Aplicativos famosos: Google, Instagram, Dropbox.
Ruby
Características: orientado a objetos, flexibilidade, recurso expressivo, digitação dinâmica, digitação de pato (Duck Typing). Ferramentas adicionais: Ruby on Rails, Sinatra, Grape, Padrino. Aplicativos famosos: Airbnb, Shopify, GitHub, Basecamp.
Características: orientado a objetos, independente de plataforma e máquina, baseado em compilador, alocação de memória dinâmica. Ferramentas adicionais: Boost, Qt. Aplicativos famosos: YouTube, Adobe, Windows OS, Mozilla.
GoLang
Características: orientado a objetos, compilada de código aberto, estaticamente tipada, possui coleta de lixo e suporte a testes. Ferramentas adicionais: Gin, Beego, Eco, Kit. Aplicativos famosos: Twitter, Google, Netflix, Microsoft, Riot Games.
Características: gerenciamento e segurança de memória, integrada de compilação e gerenciamento de pacotes, sistemas embarcados. Ferramentas adicionais: Azul, Biela, Actix, Foguete, Níquel. Aplicativos famosos: Firefox, Dropbox, Cloudflare.
Dart
Características: orientado a objetos e multi-paradigma, de código aberto fortemente tipada, comporta análises estáticas.Ferramentas adicionais:FlutterAplicativos famosos: Nubank
As tecnologias de programação back-end e suas estruturas são equivalentes à diversos projetos como:
Ferramentas interativas online
Sites
Rede
Recursos de segurança
Aplicativos móveis
Aplicativos para computador
Jogos online
Servidores da web
Protótipos de software
Coleção de dados
Conexões de banco de dados
Este artigo conceitua alguns termos mais comuns da programação back-end. Para mergulhar neste mundo, conheça a Escola de Programação da Alura Latam e sua sequência de cursos e conteúdos pensado para facilitar seus estudos.