| description | Pilha cheia de coisas |
|---|
Em tradução literal, Full Stack quer dizer Pilha Cheia, mas qual a relação deste nova categoria de profissionais Desenvolvedor Full Stack na área de tecnologia?
Até pouco tempo atrás as empresas classificavam os profissionais de tecnologia em:
- Programador Front-End
- Programador Back-End
- Analista de Banco de Dados
- Analista de Infraestrutura (DevOps)
Com o tempo as empresas perceberam uma enorme dificuldade em gerenciar estes times individualmente com a proposta de construção de produto como um software.
O maior dilema para as empresas com times distribuídos por habilidades, é o fato da dificuldade de compreensão dos requisitos e a proposta de funcionalidades do projeto.
É por esta razão que hoje o mercado de TI tem exigido e recrutado profissionais em desenvolvimento que sejam capazes de dominar as quatro habilidades citadas acima, sendo denominado como um Desenvolvedor Full Stack.
Back-end representa a parte por trás de toda interação de usuários em um software, seja um site, um sistema desktop, uma aplicação web e até mesmo os aplicativos.
Também demoninado como Server Side (do lado do servidor), a camada de back-end é responsável por disponibilizar os recursos abaixo:
- Regra de negócio
- Acesso a dados
- Segurança
- Integração via APIs
Para nos tornarmos um programador back-end, precisamos conhecer uma ou algumas das linguagens de programação e bancos de dados disponíveis e utilizados pelas empresas.
- JavaScript
- Java
- C#
- PHP
- Kotlin
- Scala
- Perl
- C++
- Python
- Ruby
{% hint style="info" %} Conheça mais sobre as características de cada linguagem pelo link ewally {% endhint %}
Front-end está diretamente relacionado ao desenvolvimento dos recursos disponíveis para que haja a interação dos usuários em nosso software ou aplicativo. Todos os componentes gráficos e compartamentos que acontecem devido ao uso do aplicação é de desenvolvida por um profissional denominado de Dev Front End.
Um profissional Dev Front End deve pensar em requisitos de suma importância para o desenvolvimento de qualquer aplicação que necessite de interação com o usuário.
- Aparência
- Usabilidade
- Objetivo
- Segurança
Diferentemente da camada de back-end, o front-end é composto por uma linguagem de programação a Java Script e tecnologias complementares que são conhecidas como: Hypertextos, Gerador de estilos, Bibliotecas ou Frameworks nos quais vamos listar abaixo:
| Tecnologia | Definição |
|---|---|
| HTML | Linguagem de marcação de hypertexto |
| CSS | Linguagem de estilização de conteúdo HTML |
| Bootstrap | Biblioteca de estilos CSS pré-definidos criado pelo Twitter |
| JQuery | Biblioteca Javascript muito utilizada antes da era das aplicações SPA. |
| NodeJS* | Plataforma capaz de executar códigos JavaScript fora de um navegador web. |
| VueJS | Framework JavaScript de código-aberto, focado no desenvolvimento de interfaces de usuário e aplicativos de página única. |
| React | O React é uma biblioteca JavaScript de código aberto com foco em criar interfaces de usuário em páginas web. É mantido pelo Facebook, Instagram, outras empresas e uma comunidade de desenvolvedores individuais. |
| Angular | Angular é uma plataforma de aplicações web de código-fonte aberto e front-end baseado em TypeScript liderado pela Equipe Angular do Google e por uma comunidade de indivíduos e corporações |
| TypeScript | TypeScript é uma linguagem de programação de código aberto desenvolvida pela Microsoft. É um superconjunto sintático estrito de JavaScript e adiciona tipagem estática opcional à linguagem. |
Um desenvolvedor web full stack é uma pessoa que pode desenvolver software cliente e servidor .
Além de dominar HTML e CSS, ele também sabe:
- Programe em um navegador (como usar JavaScript, jQuery, Angular ou Vue)
- Programar um servidor (como usar PHP, Java, Python ou Node)
- Programar um banco de dados (como usar SQL, SQLite ou MongoDB)
Para se tornar um excelente Desenvolvedor Web Full Stack você jamais deverá esquecer que as empresas também buscam e valorizam profissionais especialistas capazes de dominar com excelência algum ou alguns dos requisitos essenciais no desenvolvimento de softwares.
Gleyson Sampaio
****
{% embed url="https://www.botreetechnologies.com/blog/7-reasons-full-stack-development-is-right-for-your-company" %}
{% embed url="https://inscricaoficr.catolica.edu.br/blog/formacao-full-stack-desafios-do-mercado" %}
{% embed url="https://www.jetbrains.com/pt-br/teamcity/ci-cd-guide/continuous-integration" %}
{% embed url="https://mundodevops.com/blog/times-distribuidos-e-devops" %}

.png)