O conceito de design de pilha completa

Foi uma vez que a maioria das pessoas que trabalhava no desenvolvimento de sites tinha funções claramente definidas dentro de uma equipe de desenvolvimento, e raramente era esperado que elas se sobrepusessem a outras funções.

As coisas mudaram. Agora, espera-se que as pessoas realizem várias tarefas e, mesmo em grandes organizações, as funções podem ser intercambiáveis ​​entre os membros da equipe.

Cada vez mais, vemos anúncios de emprego exigindo “desenvolvedores full stack”, e o problema é que nem todos entendem totalmente o que esse termo significa. Também não é um requisito razoável em muitos casos. Muitas vezes pode-se ver que quem colocou o anúncio também não tinha ideia do que o termo significa, e apenas o usou porque todo mundo está fazendo isso.

O desenvolvimento de pilha completa não é, de fato, nada especial. O mais provável é que você já tenha todas as habilidades necessárias, mas você provavelmente se sobressairá mais em uma área específica da pilha do que em outras. No entanto, está ficando mais difícil ser contratado como especialista, portanto, ter certeza de um amplo entendimento das principais tecnologias de pilha é uma boa ideia.

imagem por

Por que a demanda por desenvolvedores full stack é contraproducente

Designers são bons em design. Codificadores são bons em codificação. Os engenheiros são bons em engenharia. Quando você precisa de um emdividual para ser competente em todas as partes do trabalho de design e desenvolvimento, você pode acabar com resultados menos do que perfeitos.

Isso é lógica simples. Alguém com uma paixão pelo design deveria estar projetando, da mesma forma que alguém com uma paixão por código deveria estar codificando. Se um codificador nascido for forçado a projetar algo, ele ou ela pode criar um design aceitável, mas provavelmente não será tão bom quanto algo projetado por um designer nato.

Embora possa ser útil para os membros da equipe entenderem os trabalhos uns dos outros, e até para serem capazes de preencher um ao outro, geralmente é melhor permitir que cada membro trabalhe com seus pontos fortes.

O que é um desenvolvedor de pilha completa?

Começaremos definindo o que “a pilha” realmente é. A ideia da pilha é um grupo de tecnologias interconectadas que tornam possível a existência de um site.

Um desenvolvedor de pilha completa, então, é alguém que pode manipular todas as camadas dessa pilha de tecnologias sem hesitar.

A primeira camada: UX Research

O processo de desenvolvimento de um site começa com a definição do objetivo que o site deve atingir e, em seguida, desenvolve um plano com base nesse objetivo.

A Experiência do Usuário (UX) é um conceito vagamente definido que é fundamental para o design e desenvolvimento de sites modernos. Ao planejar o site, você precisará considerar o UX que está criando. Isso requer algumas pesquisas para determinar quais atributos o site precisará para fornecer um UX positivo.

gif por

A segunda camada: Design da interface do usuário

Tendo determinado os fatores que fornecerão um UX positivo, você agora passa a projetar uma interface de usuário (UI) que abordará os fatores de UX que você identificou.

Isso significa pensar em coisas como carregar indicadores, o menu de navegação, navegação, layout do site, planos de fundo, imagens, fontes, cores e talvez coisas ainda mais avançadas, como áudio e vídeo.

O objetivo é tornar o acesso a todas essas coisas o mais simples possível e garantir que tenham uma boa aparência e funcionem bem. Garantindo a entradadivios componentes duplos são otimizados também é uma boa ideia planejar com antecedência.

A terceira camada: Desenvolvimento Front End

É aqui que a ação real começa. Até agora tudo tem sido planejado e projetado, mas neste estágio nós realmente executar o design. Usando HTML, CSS, JavaScript e talvez outras tecnologias, o protótipo do website toma forma e (eventualmente) vida.

A menos que seja um site muito simples, provavelmente não será totalmente funcional neste momento. Será, no entanto, um protótipo de trabalho que, pelo menos, tem a aparência e a sensação de como o site final deve ser.

gif por

A quarta camada: desenvolvimento de back-end

O back-end do site é onde tecnologias especiais de ativação são empregadas. Se o seu site precisar do qualquer coisa no lado do servidor com base nas ações do usuário (por exemplo, processar o conteúdo de um carrinho de compras antes de passar uma solicitação para o PayPal), então é aí que isso acontece.

Existem muitas tecnologias diferentes das quais você pode selecionar para cuidar dessas tarefas, e algumas são mais adequadas do que outras. As escolhas mais comuns no momento são PHP e Ruby, mas existem opções 1000 que podem ser igualmente selecionadas.

O PHP é a solução mais flexível e mais fácil, mas pode não ser necessariamente a mais eficiente. Para quem está começando a carreira, é a melhor linguagem do lado do servidor para aprender, porque é fácil de aprender e porque é muito usada de muitas maneiras.

Essa camada pode às vezes incluir itens como configuração e administração do servidor, engenharia de rede e assim por diante.

A quinta camada: Administração de banco de dados

Projetar e desenvolver bancos de dados para dar suporte às tarefas que seu site precisa manipular pode ser um trabalho importante. Para fazer isso bem, você precisa dominar a arquitetura de banco de dados e também se tornar um mestre do SQL.

Esta é uma daquelas coisas que parece realmente fácil e na verdade acaba sendo mais complexa do que o esperado. Tudo depende de quão sofisticadas serão as tarefas a serem tratadas.

ilustração por

Como um novo desenvolvedor deve obter as habilidades necessárias?

A melhor maneira é começar a aprender a partir da quinta camada e trabalhar até a primeira camada. Isso porque as camadas são ordenadas pela dificuldade de aprender. A tarefa mais difícil é criar excelentes bancos de dados e também será a tarefa menos interessante para a maioria das pessoas. Melhor sair do caminho rapidamente, então.

Você então passaria a aprender uma linguagem de programação como PHP, Ruby, Python, Java, etc. Você poderia aprender quantas ou quantas quiser, mas as oportunidades disponíveis para programadores PHP são muito mais abundantes do que para outras linguagens. quando se trata de desenvolvimento web. A exceção é JavaScript, mas isso ainda é considerado principalmente como uma linguagem do lado do cliente, portanto, tecnicamente pertence à terceira camada.

Depois de dominar uma linguagem de programação de backend, você passaria a aprender a tarefa mais fácil de criar sites com HTML, CSS e JavaScript (e / ou outras tecnologias).

Em seguida, você passaria para a tarefa ainda mais fácil do design da interface do usuário. Considerando como isso é fácil, é surpreendente que muitos sites tenham interfaces de usuário mal projetadas ou interfaces de usuário extremamente derivativas. Design de interface do usuário não é nem um pouco difícil.

Finalmente, você chega à coisa mais fácil de todas, que é a pesquisa sobre UX. A razão pela qual essa é tão fácil é porque você está envolvido nela desde o dia em que nasceu. Nós viemos ao mundo reagindo a coisas que nos trazem alegria ou aflição.

No momento em que você é um adulto, você deve ter uma boa compreensão dessas coisas, e o design de UX é simplesmente planejar uma experiência do usuário que inclui mais coisas que causam alegria e menos coisas que causam sofrimento.

imagem de cabeçalho cortesia de

Bogdan Rancea

Bogdan é um membro fundador da Inspired Mag, acumulando quase 6 anos de experiência neste período. Em seu tempo livre, ele gosta de estudar música clássica e explorar artes visuais. Ele é muito obcecado com fixies também. Ele é dono do 5 já.