Por Silmara Ribeiro.
A área de tecnologia da informação avança com uma velocidade impressionante. Todos os dias surgem novos temas e termos que deixam qualquer profissional, mesmo o mais antenado, um pouco perdido às vezes. Atualmente, muito se fala em desenvolvedores backend, frontend, e a estrela do momento, o full stack. Mas o que esses profissionais fazem, afinal de contas? Quais são suas atribuições, suas responsabilidades? Este artigo discorrerá sobre essas diferentes profissões e apresentará as principais ferramentas de trabalho utilizadas em cada uma.
Aplicações web
O principal ramo de atuação dos profissionais tratados nesse artigo é o desenvolvimento de aplicações web, sejam elas para equipamentos desktop ou para mobile. Em resumo, as aplicações web são divididas em duas partes principais: o “server-side” e o “client-side”, ou seja, o “lado” do servidor e o “lado” do cliente.
O lado do servidor, também conhecido como “backend” é responsável por implementar as regras de negócio da aplicação e manter as bases de dados consistentes e funcionais. Já o lado do cliente, conhecido como “frontend”, é responsável por tratar e apresentar as informações de forma que façam sentido para seus usuários. Essas duas partes se comunicam através de rotinas de entrada e saída de dados, conhecidas como APIs.

O Backend
O desenvolvedor backend é aquele profissional capaz de desenvolver e manter sistemas no servidor, sendo responsável também por gerenciar a manipulação dos bancos de dados envolvidos. Entre suas atribuições, está uma das mais vitais de qualquer sistema: a implementação das regras de negócio da aplicação, ou seja, das regras que gerem toda a forma como essa aplicação deve se comportar diante de seus dados.

Além das linguagens relacionadas à bancos de dados, as linguagens de programação mais comuns utilizadas por esses profissionais incluem:
- JavaScript (através de interpretadores assíncronos como o Node.js, por exemplo)
- PHP
- Python
- Java
- C#
- C++
- Ruby on Rails
O Frontend
O desenvolvedor frontend é o profissional responsável por definir e implementar a melhor maneira de apresentar os dados enviados pelo servidor ao usuário final, considerando as características de cada usuário alvo e também de cada tipo de aplicação desenvolvida, seja para sites ou aplicativos mobile.

Para atuar como desenvolvedor frontend, é necessário dominar, pelo menos, as três tecnologias a seguir:
- HTML – responsável pela estrutura das páginas da aplicação
- CSS – responsável pela estilização dessas páginas
- Javascript – responsável pela interação do usuário com a aplicação
Existe ainda uma infinidade de bibliotecas e frameworks à disposição do desenvolvedor, com o intuito de simplificar e agilizar seu trabalho, que podem ser exemplificadas por:
- jQuery
- Angular
- React
- Bootstrap
- Ionic
- Cordova
- Flutter
A API
Uma API (Application Programming Interface) nada mais é que a interface responsável por gerenciar a forma como os dados do backend serão acessados, ou seja, controlar as entradas e saídas desses dados. São compostas por métodos que devem ser chamados por quem deseja utilizar aquelas informações.
Uma das vantagens da utilização de APIs, é a garantia de que não haverão alterações indevidas no banco de dados, o que poderia ocorrer se o acesso estivesse aberto a qualquer um que desejasse acessá-lo diretamente. Através do uso de APIs, o desenvolvedor mantém o controle do que deve ser exposto, e do que pode ou não ser alterado.
Além disso, o uso de APIs evita que seja necessário ao desenvolvedor que fará uso dos dados conhecer toda a estrutura do banco. Ele apenas precisa chamar a rotina de seu interesse, e essa será responsável por fazer a leitura e a manipulação dos dados solicitados, retornando apenas o que for necessário.
Por último, a disponibilização de APIs permite que determinadas funções possam ser reaproveitados em outros sistemas sem a necessidade de replicação de código.
O Full Stack
O desenvolvedor full stack é o profissional com conhecimentos técnicos suficientes para atuar nos dois lados da aplicação, ou seja, no lado do servidor e no lado do cliente. É um profissional versátil, com uma visão ampla da aplicação, e capaz de se comportar como analista de requisitos, gerente de projeto, arquiteto de software, UI/UX designer e analista de qualidade, conforme a necessidade.
Para ser um desenvolvedor full stack, ao contrário do que muitos pensam, não é necessário ser um especialista em todas dessas áreas, mas é imprescindível ter um bom domínio das principais tecnologias e boas práticas envolvidas em cada especialidade.

O exemplo no projeto Nasajon Pedidos Mobile
Com o intuito de oferecer o melhor a seus clientes, a Nasajon se mantém atenta às tecnologias que estão em alta no mercado, fazendo uso de novas ferramentas sempre em busca de eficiência em seus produtos e projetos. A título de ilustração, pode-se considerar a estrutura do Pedidos Mobile. Em resumo, é uma aplicação Android implementada por desenvolvedores full stack, utilizada por vendedores para registrar os pedidos de seus clientes e enviá-los para o Estoque SQL, onde serão processados. Como toda aplicação web, possui duas partes: o backend e o frontend.
O backend do Pedidos é composto por uma base de dados relacional desenvolvida no PostgreSQL e hospedada na nuvem através do Amazon RDS, além de uma API desenvolvida com a utilização do Symfony, um framework PHP que implementa a arquitetura MVC (model-view-controller).
Por sua vez, o frontend do Pedidos foi implementado com o Ionic, framework que utiliza HTML, CSS e Javascript para desenvolvimento tanto mobile quanto desktop, e Cordova, no caso de aplicações mobile, para a utilização de recursos nativos do dispositivo, como câmera e GPS. O Ionic trabalha integrado ao Angular, framework utilizado para a criação de aplicações single-page utilizando HTML e TypeScript, sendo este um superconjunto de JavaScript que implementa tipagem de dados e orientação a objetos.
É relevante citar ainda outras tecnologias envolvidas no desenvolvimento e manutenção do Pedidos, como o empacotador de módulos estáticos WebPack, o Docker, ferramenta para criação e administração de ambientes de desenvolvimento isolados, o Rancher, utilizado para a clusterização de tais ambientes, também conhecidos como contêineres, o Jenkins para a construção, ou seja, geração de pacotes instaladores, Git para versionamento e GitHub para hospedagem do código-fonte.

Conclusão
Os desenvolvedores frontend e backend são especializados em suas áreas de atuação, e trabalham em conjunto para o desenvolvimento completo de uma aplicação web. Em aplicações com alto grau de complexidade, é essencial a presença desses dois tipos de profissionais para que se possa usufruir de todo o potencial de cada lado da aplicação.
Já o desenvolvedor full stack é capaz de atuar em ambos os lados, tendo um bom domínio das tecnologias envolvidas em cada parte da aplicação. Esse profissional pode ser mais interessante nos casos de sistemas menos complexos, em que não seja necessário um nível de especialização tão alto em cada lado da aplicação, o que implica em uma grande economia de custos e de tempo de desenvolvimento, já que toda a aplicação é desenvolvida pelo mesmo profissional.
Com base nessas informações, cabe aos gestores decidir qual o profissional mais indicado para cada um de seus projetos, levando em conta os recursos disponíveis e as necessidades de seus clientes.
A tecnologia se desenvolve e os Sistemas da Nasajon a acompanham. Um exemplo, é o próprio Pedidos Mobile da Nasajon. Ele auxilia no acompanhamento das negociações, o desempenho dos representantes, dentre outras facilidades que contribuirão na integração de gestão e em vendas mais estratégicas.
Conheça agora mesmo o Pedidos Mobile da Nasajon Sistemas.