O que faz um desenvolvedor FullStack?

O que faz um desenvolvedor FullStack

Nesse artigo, escrito pela Rita Cury, vamos esclarecer algumas dúvidas sobre o conceito e o que faz um desenvolvedor FullStack, seja no Front-End ou Back-End.

(Software, sistema, programa, aplicação ou aplicativo?)

Antes de adentrarmos no conceito de Fullstack, vamos trazer algumas definições básicas. Se considerarmos que software é um conjunto de instruções que controla o funcionamento de qualquer dispositivo, sejam computadores, celulares, tablets, consoles de videogame, televisores, entre outros, podemos concluir que software, sistema, programa, aplicação e aplicativo, é tudo a mesma coisa?

Uma aplicação desktop é todo programa que roda em um PC, seja  qual for seu objetivo. Muitas dessas aplicações ou softwares podem ser usados por múltiplos usuários em  ambientes de rede e/ou  podem funcionar sem o uso de internet. Na maioria dos casos, uma aplicação desktop precisa de um Sistema Operacional (como Windows, Linux, MacOS, entre outros) para rodar.

Os aplicativos ou apps, são programas ou softwares presentes em smartphones, tablets, tvs etc. Podem ser executados offline ou online e precisam de um Sistema Operacional Mobile para rodarem. Os mobiles mais conhecidos são o Android do Google, o iOS da Apple e o Windows Phone da Microsoft.

Aplicações web são acessadas por um browser (Google Chrome, Mozilla Firefox, Microsoft Edge, entre outros), ou seja, neste caso não “baixamos” nada em nossos PCs ou smartphones. Aqui os dados são trafegados na World Wide Web (WWW) e o processamento e armazenamento é feito “em nuvem”, ou seja, em servidores remotos.

Tecnologias, como as linguagens de programação, os frameworks, as APIs, entre outras, para desenvolver cada um destes tipos de software costumam ser diferentes. Portanto, a área de conhecimento dos desenvolvedores também é diferente. Ou seja, um programador ou desenvolvedor para aplicações web terá que ter conhecimentos diferentes de um desenvolvedor mobile ou desktop, embora haja muitos pontos em comum com relação a estes conhecimentos.

Então software, sistema, programa, aplicação e aplicativo, é tudo a mesma coisa, porém podem ter conotações diferentes. Por exemplo, o termo “aplicativo” é popularmente associado aos programas para smartphones enquanto “aplicação” é normalmente associado aos programas que rodam em browsers, também conhecidos como “aplicações web”.

 

Desenvolvedor Full Stack

O que é Front-end?

Também conhecido como client-side, front-end é tudo o que se refere ao “lado da frente” de uma aplicação. Ou seja, as telas ou páginas de um software com o qual o usuário interage. É importante que o desenvolvedor Fullstack tenha essa base em sua formação.

Um front-end bem elaborado é vital para a interação dos usuários e consequentemente para o bom funcionamento da aplicação, por isso, a aparência, o layout, a distribuição das páginas e a usabilidade são pontos importantes que estão dentre as responsabilidades do programador front-end.

 

Considerando que muitas vezes é possível ter mais de uma ferramenta ou biblioteca para alcançar o mesmo objetivo, sugerimos que um desenvolvedor front-end para web deve ter bons conhecimentos em:

  1. UX (User Experience) para estar apto a garantir o máximo de usabilidade, utilidade e acessibilidade na experiência do usuário na aplicação.
  2. Ambiente WEB: compreender os conceitos sobre o protocolo de transmissão de páginas WEB chamado HTTP  e seus estados, bem como as regras de segurança denominadas CORS.
  3. HTML5 (linguagem de marcação para a web).
  4. CSS3 (Cascading Style Sheets, ou folhas de estilo): usado para definição de estilos para um projeto web (design no layout da página).
  5. SASS: também são folhas de estilo; funcionam como um pré-processador, ou seja, um programa que permite gerar folhas de estilo adicionando mais poder e elegância ao CSS básico.
  6. JavaScript, a linguagem de programação mais usada em sistemas web, executada e exibida no navegador, não havendo a necessidade de instalar uma solução separada. Sua curva de aprendizagem é considerada relativamente fácil quando comparada às outras linguagens.
  7. JQuery, considerada a biblioteca mais popular do JavaScript, interage com o HTML, simplificando os scripts interpretados no navegador do cliente.
  8. React: biblioteca JavaScript de código aberto com foco em criar interfaces de usuário em páginas web.
  9. Vue.JS: framework JavaScript que ajuda a criar aplicações modernas chamadas de single page (página única) e também a desenvolver vários tipos de interfaces, que utilizam componentes criados em HTML, CSS e Javascript em um único arquivo.

Back-end e Front-end

 

O que é Back-end?

 

Também conhecido como server-side, o back-end trata do funcionamento interno de uma aplicação e faz a ponte entre o que o usuário acessa e o que o programa precisa para funcionar. É deste lado da aplicação que são implementadas as regras de negócios, que são feitas as validações para garantir um ambiente seguro de navegação e onde os dados são persistidos.

Linguagens de programação como JavaScript, TypeScript, Python, PHP, Ruby, Java, Clojure e C# podem ser usadas para o desenvolvimento back-end, cada uma com seus pontos fortes e fracos.

A escolha da linguagem para o desenvolvimento de um software é fundamental, devendo-se considerar, além do objetivo do projeto, o custo dos profissionais envolvidos, cuja habilidade em lidar com uma ou outra linguagem está diretamente relacionada à usabilidade da solução que se quer implementar.

JavaScript tem sido uma das linguagens mais usadas, porque:

  • Tem alta popularidade: por ser usada por muitos programadores, possui uma comunidade forte suportando a linguagem, oferecendo muitos artigos, fóruns etc.
  • Está entre as mais utilizadas da atualidade, sendo uma das favoritas para desenvolvimento web.
  • A curva de aprendizado é uma das menores, ou seja, é indicada, principalmente, para quem está começando.

A seguir, sugerimos alguns conhecimentos que um desenvolvedor back-end JavaScript deve ter:

  1. JavaScript: com Programação Orientada à Objetos
  2. MySQL: um banco de dados relacional (baseado em SQL), que modela e armazena os dados como tabelas que se relacionam, fornecendo dados íntegros e imutáveis e garantindo um controle transacional consistente. Bancos de dados relacionais são muito usados em ERPs e CRMs.
  3. MongoDB: um banco de dados não relacional (noSQL), pois não usa o esquema de tabela de linhas e colunas, permitindo que os dados sejam armazenados usando qualquer estrutura necessária. São flexíveis, escaláveis e com alto poder de desempenho. Normalmente usado quando se trabalha com Big Data, como por exemplo, as aplicações para redes sociais.
  4. Node.Js: plataforma de back-end que usa JavaScript para execução de aplicações usando a engine V8 (motor que interpreta o JS), permite a execução de códigos JavaScript fora de um navegador web. Usado por grandes empresas no mercado de tecnologia, como Netflix, Uber e LinkedIn.
  5. TypeScript: linguagem de programação desenvolvida pela Microsoft, considerada um superconjunto de JavaScript. O que significa que códigos JavaScript são válidos em TypeScript (mas não o contrário), e isto permite ao programador agregar uma série de recursos aos seus programas JavaScript, como a tipagem, por exemplo que é algo muito importante em desenvolvimento back-end.
  6. API Rest: usada para estruturar modelos de aplicações web proporcionando a comunicação entre aplicações para estabelecer o consumo de informações de forma rápida e segura.
  7. JSON (JavaScript Object Notation): formato aberto, que utiliza uma notação simples para transferir dados estruturados entre um servidor web e uma aplicação web.
  8. SSO – Single Sign: esquema de autenticação e autorização que permite que usuários acessem múltiplas aplicações com um único login. Este recurso está relacionado à segurança da aplicação.
  9. Visão geral sobre AWS (Amazon), GCP (Google) e Azure (Microsoft): que são plataformas de computação em nuvem, tecnologia que permite acesso remoto a softwares, armazenamento de arquivos e processamento de dados por meio da internet, permitindo o acesso de dados de qualquer computador, em qualquer lugar.

O que faz um Desenvolvedor FullStack?

É o profissional que tem perfil e conhecimentos para atuar na totalidade do desenvolvimento de uma aplicação web, capaz de atuar tanto no front-end quanto no back-end.

Glossário

Vocabulário para Full Stack

Abaixo, uma relação de alguns dos muitos termos técnicos usados por profissionais ligados ao desenvolvimento de software, seja fullstack, seja front-ends ou back-ends.

  • API (Application Programming Interface): conjunto de padrões definidos por um software para que suas funcionalidades sejam consumidas por outros softwares, funcionando como comunicação entre sistemas ou plataformas diferentes.
  • CORS – Cross-Origin Resource Sharing (compartilhamento de recursos com origens diferentes) é um mecanismo usado para controlar a recuperação, por outro domínio,  de recursos restritos em uma página web, informando aos navegadores se um determinado recurso pode ou não ser acessado, garantindo mais segurança ao internauta.
  • DOM (Document Object Model) é um esquema de programação para documentos HTML e XML que fornece uma representação estruturada do documento como uma árvore e define meios de como essa estrutura pode ser acessada.
  • Endpoints são pontos de comunicação de acesso a uma aplicação, no caso de  um web service é a URL, que é onde um serviço pode ser acessado por uma aplicação cliente.
  • Framework: estrutura feita para resolver um problema específico, que em desenvolvimento de software, normalmente oferece elementos para a criação de alguma aplicação.
  • IDE (Integrated Development Environment): são softwares usados por programadores para agilizar o trabalho de desenvolvimento de seus programas. Visual Studio Code, NetBeans, Eclipse, IntelliJ, PHPStorm são alguns exemplos de IDEs.
  • Microsserviços: são serviços segmentados de um software que funcionam de forma resiliente, capazes de suportar falhas parciais de outros serviços. É como pegar uma grande aplicação e desmembrá-la em partes individuais,  fazendo-as comunicarem-se entre si por meio de APIs. Isto proporciona maior agilidade no desenvolvimento e manutenção da aplicação.
  • Requisições HTTP são comunicações enviadas pelo cliente (browser) para iniciar uma ação em um servidor.
  • Stateful: é o tipo de transação de uma aplicação que guarda o estado dos objetos para ser usado em mais de uma requisição http, como o caso de aplicações e processos que podem ser usados mais de uma vez, como e-mails, por exemplo.
  • Stateless: é o tipo de transação de uma aplicação que considera cada requisição de forma independente, quando não está relacionada a qualquer requisição anterior.
  • Verbos HTTP GET, HEAD, POST, PUT, DELETE: são métodos que indicam a ação a ser executada em um recurso especificado em uma aplicação web .
  • Virtual DOM: é a representação virtual da interface do usuário, mantida em memória e sincronizada com o DOM por meio de bibliotecas do Vue.js, do React, entre outras.
  • XML (eXtensible Markup Language): linguagem de marcação para descrever dados,  que define regras para codificar diferentes documentos, utilizando uma estrutura de tags personalizadas para representar os objetos.

Aqui na T.EX  queremos que nossos alunos tenham uma visão completa dos temas que estão estudando. Vem com a gente, pois aqui você aprende, faz e acontece! Continuem acompanhando nossos artigos e interajam com a LinkedIn page da T.EX.

 

Compartilhar no facebook
Compartilhar no whatsapp
Compartilhar no twitter
Compartilhar no linkedin
Compartilhar no pinterest
Compartilhar no telegram
Compartilhar no email

Respostas

O seu endereço de e-mail não será publicado.

Leia também...

Bootcamp FullStack Java Developer 08/2023

Bootcamp FullStack Javascript Developer 08/2023