Introducing G2.ai, the future of software buying.Try now

O que são Tech Stacks? Escolhendo o certo para o desenvolvimento

25 de Março de 2019
por John Thomas Lang

Seja você um iniciante ou um veterano digital experiente, decidir a pilha de tecnologia certa — também conhecida como tech stack — é crucial para o sucesso no desenvolvimento de aplicativos.

Um momento fugaz de brilhantismo... Eu tenho uma ideia para um aplicativo. Mas o que vem a seguir?

Depois de decidir entre um aplicativo web ou um aplicativo móvel, é hora de determinar sua pilha de tecnologia. Vamos começar com o básico:

O que é uma pilha de tecnologia?

Criar um aplicativo revolucionário requer uma combinação de ferramentas de hardware e software combinadas com uma proposta de valor clara.

Cada elemento crucial se sobrepõe ao outro, fornecendo tudo o que é necessário para desenvolver e manter um aplicativo eficaz.

what is a tech stack

Tecnologias do lado do cliente (ou front-end)

Isso fornece tudo o que é necessário para alimentar a experiência do usuário do aplicativo; em outras palavras, toda interação que um usuário tem com um aplicativo vem através do lado do cliente.

Por exemplo, se considerarmos um carro, o front-end seriam todos os botões, botões de controle e interruptores com os quais um usuário interage. Se o usuário quiser ligar o ar-condicionado, ele não precisa entender como funciona o subsistema elétrico do carro; ele apenas sabe que girar um botão liga o ar-condicionado. Da mesma forma, o front-end normaliza sistemas complexos em interações de usuário discretas e simples.

Tecnologias comuns do lado do cliente incluem:

  • Linguagens de marcação (HTML, XML, XHTML)
  • Folhas de estilo (CSS interno, externo e embutido)
  • Linguagens de programação específicas (JavaScript, Xamarin)
  • Frameworks de UI construídos sobre uma linguagem de programação (ReactJS, AngularJS, ambos construídos em JavaScript)

Tecnologias do lado do servidor (ou back-end)

Isso conecta a interação do usuário com subsistemas que executam lógica, conversam com bancos de dados, coordenam com serviços web e mais.

Continuando com a analogia do carro, o back-end pode ser o computador de bordo do carro: seu subsistema elétrico, seu subsistema hidráulico, etc. Todos esses fazem o carro "andar".

Tecnologias comuns do lado do servidor incluem:

  • Linguagens de programação específicas (C#, Java, PHP, Python)
  • Vários frameworks de aplicação construídos sobre uma linguagem de programação (Node.js construído sobre JavaScript, .NET construído sobre C#, Django construído sobre Python)
  • Bancos de dados (Microsoft SQL Server, MySQL, PostgreSQL)
  • Infraestruturas e serviços em nuvem (AWS, Microsoft Azure, Google Cloud)

Quer aprender mais sobre Desenvolvimento de Aplicações Software? Explore os produtos de Desenvolvimento de Aplicações.

Pilhas de tecnologia comuns

Embora as pilhas de tecnologia sejam um cenário em constante mudança, as pilhas de tecnologia mais comuns são LAMP, MEAN e MERN. Vamos detalhar.

LAMP (Linux, Apache, MySQL, PHP)

LAMP é amplamente considerada uma das pilhas de tecnologia mais confiáveis e acessíveis. Construída para rodar em um sistema operacional Linux, a pilha foca no Apache como o servidor web principal (ou seja, o meio pelo qual os usuários acessam o aplicativo), MySQL como o provedor de banco de dados e PHP (mais frameworks complementares, como Laravel) como a tecnologia de back-end.

LAMP não impõe uma tecnologia de front-end específica; os desenvolvedores podem escolher a que melhor atende às suas necessidades. Os componentes que compõem uma pilha LAMP são quase sempre suportados por provedores de hospedagem e garantem estabilidade e facilidade de uso para os desenvolvedores.

Embora LAMP seja uma das pilhas mais antigas e confiáveis, suas deficiências, como dificuldade para escalar e não ser bem adaptada para aplicativos de página única, tendem a direcionar desenvolvedores web e de aplicativos para uma solução diferente.

MEAN (Mongo, Express, AngularJS, Node.js)

Um dos "novatos" (ainda que poderosos) no mercado, MEAN combina um framework moderno com capacidades distintas que funcionam em conjunto ao longo da pilha, provando ser uma solução de ponta para muitos desenvolvedores.

MEAN usa MongoDB como o provedor de banco de dados principal, AngularJS como a tecnologia de front-end e uma combinação de Node.js e Express.js como a tecnologia de back-end.

MEAN oferece o melhor dos dois mundos, permitindo facilidade de uso enquanto permite que os desenvolvedores escalem de um produto mínimo viável para tecnologia empresarial com facilidade.

MERN

MERN é uma das pilhas de tecnologia mais comumente usadas para construir aplicativos de alta qualidade. Embora muito semelhante ao MEAN, a principal distinção entre os dois está no uso do React em vez do Angular.

React é como um balde de peças de LEGO. Ele oferece liberdade ilimitada, mas requer alguma engenhosidade para ser usado corretamente. Angular é mais parecido com um conjunto de LEGO pré-definido. É muito direto e definido, mas limita a liberdade do desenvolvedor.

Ambos são construídos em JavaScript (ou TypeScript), e geralmente é o caso que quando você encontra alguém bom em um, eles são razoavelmente bons no outro. Dito isso, a comunidade é muito apaixonada por seu lado particular.

Pilhas de tecnologia na prática

Já se perguntou quais pilhas de tecnologia alimentam suas marcas favoritas? Vamos dar uma olhada no que os líderes da indústria estão usando em suas pilhas.

Pilha de tecnologia do Uber

  • Servidor web: NGINX, Apache
  • Bancos de dados: MySQL, PostgreSQL, MongoDB
  • Framework do lado do servidor: Node.js
  • Linguagens de programação: Python, Java, JavaScript, Objective-C

Pilha de tecnologia do Instacart

  • Servidor: NGINX
  • Bancos de dados: PostgreSQL, Redis
  • Framework do lado do servidor: Rails
  • Linguagens de programação: Ruby, Python, Objective-C

Pilha de tecnologia do Reddit

  • Servidor: NGINX
  • Bancos de dados: PostgreSQL, Redis
  • Framework do lado do servidor: Node.js
  • Linguagens de programação: JavaScript, Python

Dica: Descubra se sua pilha de tecnologia precisa seriamente de uma auditoria de TI.

Escolhendo a pilha de tecnologia certa para o desenvolvimento do seu aplicativo

Embora a maioria dos desenvolvedores experientes tenha pilhas de tecnologia preferidas, pode parecer assustador para qualquer empreendedor não técnico. A melhor maneira de navegar no mundo das pilhas de tecnologia é encontrar um recurso ou especialista no assunto para guiar seu caminho. Embora alguns especialistas no assunto sejam tendenciosos em sua tomada de decisão, consultar um especialista pode ser o melhor dinheiro gasto e poupá-lo de dores de cabeça futuras. Se os recursos forem escassos, comece com estas etapas simples:

Descubra as necessidades dos seus usuários

Como em qualquer empreendimento empreendedor, coloque o usuário final em primeiro lugar. A atividade do usuário é um fator orientador na escolha da pilha de tecnologia certa. Por exemplo, se uma grande porcentagem dos seus usuários utiliza um dispositivo móvel para interagir com seu aplicativo, selecionar uma pilha que seja "mobile-first" pode ser a escolha mais eficaz. Se seus usuários são "somente móveis", sua pilha de tecnologia pode variar muito de outros tipos de aplicativos.

DICA: Familiarize-se com os seis diferentes tipos de aplicativos móveis para garantir que seu aplicativo esteja um passo à frente dos demais em sua categoria.

Defina suas necessidades de desenvolvimento

Compreender as necessidades do aplicativo é a chave para escolher a pilha de tecnologia certa. O tamanho, escopo e complexidade do seu aplicativo podem mudar a direção da sua pilha de tecnologia.

  • Projetos pequenos, como produtos mínimos viáveis (MVPs) ou aplicativos de uma página, podem ser perfeitos para pilhas bem definidas e suportadas pela comunidade, como Python-Django ou Node.js-React. Adicionar complexidade depois pode afetar sua decisão, então mantenha a escalabilidade em mente durante o processo de desenvolvimento.
  • Projetos médios, como lojas de comércio eletrônico online e aplicativos de software de mercado médio, requerem pilhas de tecnologia um pouco mais complexas, com várias camadas de linguagens de programação e frameworks. Assim como em projetos menores, manter a escalabilidade no centro do processo de tomada de decisão é fundamental.
  • Projetos grandes, como marketplaces complexos ou aplicativos sociais, provavelmente exigem uma pilha de tecnologia mais escalada para manter a integridade e o desempenho do aplicativo. Essas pilhas de tecnologia em larga escala geralmente empregam várias camadas de linguagens de programação e frameworks, sendo construídas para performar em circunstâncias de alto volume.

Determine seus recursos

É importante entender suas limitações de recursos ao escolher uma pilha de tecnologia para o desenvolvimento do seu aplicativo. Uma pilha de tecnologia incrível não significa nada sem os desenvolvedores adequados para usá-la. A maioria dos frameworks, ferramentas de desenvolvimento e bancos de dados são de código aberto, o que significa que são gratuitos para uso e amplamente disponíveis. A maioria das entidades de código aberto permite uso irrestrito e fornece ao desenvolvedor uma grande tela para pintar. A maioria dos custos de aplicativos vem diretamente de servidores e obrigações de hospedagem. Estes também devem ser considerados ao escolher sua pilha de tecnologia.

Dica: Quanto custa fazer um aplicativo? Aprenda sobre 5 despesas ocultas que podem estourar seu orçamento se você não for cuidadoso.

Encontrar o desenvolvedor certo para o escopo do seu projeto é outro fator a considerar ao escolher sua pilha de tecnologia. Por exemplo, alguns desenvolvedores se especializam apenas em desenvolvimento front-end ou back-end. Encontrar um desenvolvedor full-stack que possa fazer ambos pode ser a solução certa, mas tem uma correlação direta com a alocação de recursos.

Além disso, considere a "origem" de qualquer desenvolvedor que você contratar. Desenvolvedores com diplomas tradicionais em Ciência da Computação costumam ser contratações caras, mas vêm com uma ampla variedade de habilidades e experiências que apoiarão adequadamente seu aplicativo, novo ou maduro. Desenvolvedores que vêm de bootcamps de codificação recebem imersões profundas nas pilhas de tecnologia mais comuns e mais usadas na indústria, mas podem não ter o mesmo nível de expertise necessário para escalar um aplicativo para níveis empresariais.

Dica: Mais um faz-tudo? Saiba mais sobre o melhor software de design de aplicativos para ver se há uma solução para você.

Comece sua pilha

Agora que você descobriu o mundo das pilhas de tecnologia, está um passo mais perto de construir seu aplicativo e conquistar o mercado. Em tudo que é digital, mantenha o usuário em primeiro lugar e entregue uma experiência que encante.

Descubra os benefícios do desenvolvimento rápido de aplicativos e seu potencial para elevar seu desempenho.

John Thomas Lang
JTL

John Thomas Lang

John is a former Content Marketing Manager at G2. He has played a key role in scaling multiple award-winning tech startups in Chicago. A proud Colorado native, you can likely find him digging through the crates for vinyl records or nerding out on SABR analytics.