Começando com o desenvolvimento da Web Fullstack
Hoje em dia, moderno desenvolvimento de pilha completa é muito popular em pequenas agências e grandes empresas com uma equipe técnica dedicada. Os engenheiros da Web de pilha completa trabalham em uma pilha inteira de tecnologias da Web incluindo frontend, backend, e gerenciamento de servidores.
Muitas pessoas argumentam que o stack completo só leva a ser um "pau para toda obra, mestre de ninguém". De um certo ponto de vista, isso pode ser verdade, no entanto, o conjunto de habilidades é tão importante quanto o que pode ser realizado com ele. Muitos desenvolvedores de pilha completa oferecem valor porque podem ter uma ideia desde a concepção até o lançamento, e compreender plenamente cada passo do processo.
Se você está pensando em indo a rota completa da pilha, Então esse artigo é para você. Vou explicar os requisitos gerais de um desenvolvedor de pilha completa, o que o papel implica e como o conjunto de habilidades pode ser útil para freelancers / contratados que desejam trabalhar diretamente para clientes ou em seus próprios projetos.
Princípios completos da pilha
O desenvolvimento moderno da pilha completa já percorreu um longo caminho, já que a tecnologia da web mudou muito. Os requisitos de pilha completa devem ser usados como diretrizes a serem seguidas. De um modo geral, uma "pilha" representa as tecnologias em execução em uníssono fazer um site funcionar. Isso significa código de front-end, código de backend, um sistema de banco de dados e uma plataforma de servidor da web + SO para o servidor.
O princípio básico do desenvolvimento de pilha completa é entender todos os aspectos da construção de um site. Isso não significa conhecimento de design ou trabalho de UI / UX, embora isso possa melhorar muito sua viabilidade e qualidade de trabalho..
- Os fundamentos do frontend incluem HTML / CSS e JavaScript, provavelmente com um estrutura, como Angular ou Reagir.
- Para uma linguagem de backend você vai querer escolher algo que possa ser acoplado a um sistema de banco de dados. PHP / MySQL é o mais comum e mais fácil de aprender, pois dá suporte a vários mecanismos do CMS, como o WordPress. Também o LUMINÁRIA pilha é inegavelmente a pilha da web mais popular hoje.
- O conhecimento do servidor pode ser tão simples ou detalhado quanto você desejar. O básico absoluto seria o conhecimento de um programa de servidor como Apache juntamente com um banco de dados como MySQL ou PostgreSQL.
- Você pode ir ainda mais longe para incluir o conhecimento da instalação de servidores de email ou ferramentas de desempenho, como memcached ou Varnish.
Um devedor full stack deve se envolver em todas as três áreas com conhecimento suficiente para lançar um site de forma independente, e sem muita ajuda de mais ninguém.
Profundidade Técnica do Conhecimento
Uma grande questão sobre o desenvolvimento de pilha completa é quão profundo para entrar em cada área. Um engenheiro de stack completo é realmente um mestre de alguma coisa? Alguns argumentam que é possível, mas que não pode ser o propósito de ir a pilha completa.
A maioria das empresas quer contratar engenheiros completos que tenham um pouco de conhecimento em todos os lugares. Esses engenheiros podem se especializar em uma área, mas eles são capazes de preencher qualquer papel quando necessário.
Devs que estão apenas começando neste caminho devem brincar em todas as áreas aprendendo "apenas o suficiente" para resolver os problemas que surgem. Isso dá uma interpretação do mundo real às tecnologias para ver como diferentes problemas se aplicam a projetos reais.
O maior benefício da codificação full stack é a capacidade de construa suas próprias aplicações sem trabalhar para mais ninguém.
Se você aprender todos os estágios do processo de desenvolvimento, poderá fazer tudo sozinho. Você não precisa ser um mestre do PHP para construir um aplicativo personalizado do Laravel. E você não precisa ser um guru do JavaScript para criar uma navegação flexível, especialmente agora que temos muito código aberto disponível na web.
Então, quão profundo você deve entrar em alguma dessas áreas? Isto depende inteiramente de você, e sua resposta provavelmente mudará com o tempo.
Mas quando comecei, apenas vá fundo o suficiente para implementar o que você aprendeu em um projeto real. Quando você topar com algo que você não entende, usá-lo como uma oportunidade para ir mais fundo, e aprenda mais sobre esse assunto específico.
Escolhendo Idiomas
É um enigma para o novo desenvolvedor escolher quais tecnologias aprender. Obtendo as necessidades fora do caminho, HTML e CSS são absolutamente necessários. JavaScript também é uma necessidade, mas você não precisa se considerar um mestre JS. Você deve, no entanto, estar interessado em aprender mais do que simplesmente JavaScript.
A maioria dos desenvolvedores também aprende jQuery, mas estruturas como React, Ember, Angular, Vue ou Backbone oferecem um processo mais simples para a criação de aplicativos da Web em escala real..
É possível mergulhar em aprendizado ainda mais profundo efeitos JavaScript extravagantes, como animações, mas são totalmente opcionais. Um desenvolvedor de pilha completa deve saber o suficiente para fazer o trabalho e seguir em frente.
A escolha do idioma de backend é menos sobre vantagem técnica e mais sobre conforto. A maioria dos programadores percebe que Python é uma linguagem mais versátil que o PHP, no entanto, a maioria dos sites é executada em servidores PHP. Isto faz PHP uma linguagem valiosa para mais empresas.
Escolha qualquer idioma que atenda às suas necessidades ou ofereça as melhores perspectivas. Também tenha em mente que você não está preso a uma linguagem de back-end para sempre. Se você começar com Ruby, mas mudar para Python, você não perderá nada no processo.
No entanto, recomendo que, depois de encontrar uma linguagem de back-end que você goste, aprofunde-se nessa linguagem e pegar um quadro relacionado. PHP tem Laravel, Ruby tem Rails e Python tem Django - entre muitas outras opções. Essas estruturas agilizarão seu processo de desenvolvimento e ajudarão a estruturar adequadamente seus aplicativos.
Bancos de dados e servidores
A escolha de um mecanismo de banco de dados se resume aos requisitos do projeto e à pilha do servidor. O PHP geralmente funciona com o MySQL, então essa é a escolha mais preferida. o duas maiores pilhas da web hoje são LUMINÁRIA (Linux-Apache-MySQL-PHP) e SIGNIFICAR (MongoDB-ExpressJS-AngularJS-Node.js).
A maioria das empresas de hospedagem oferece LAMP desde o início, sem necessidade de configuração. Mas soluções personalizadas como o Digital Ocean permitem que você execute quase tudo com um pouco de graxa de cotovelo. Você pode encontrar mais pilhas da Web nessa lista ou pesquisando on-line.
Sua base de dados de escolha será freqüentemente amarrado ao seu idioma de back-end. Python vem com suporte SQLite por padrão, e RoR os desenvolvedores normalmente podem trabalhar com qualquer coisa. E honestamente, qualquer idioma pode trabalhar com qualquer banco de dados.
Mas você quer escolher algo que seja comum o suficiente para usar na maioria dos projetos da web. SQL é uma linguagem geral e usa basicamente a mesma sintaxe em todos os mecanismos de banco de dados. Você encontrará diferenças na configuração e administração da tabela, mas estas são geralmente menores.
Além dos bancos de dados, aqui estão alguns tópicos técnicos do servidor que você pode querer aprender sobre.
- CDNs e hospedagem de conteúdo
- Instalação e atualizações de software para servidores
- Melhor configuração do servidor para picos de tráfego e tempos de carregamento
- Soluções de cache para consultas de banco de dados e armazenamento do sistema de arquivos
- Backups automatizados de bancos de dados e arquivos simples ou backups de imagens de disco
- Configuração de HTTPS com gerenciamento de domínio (servidores DNS, registros CNAME, etc.)
- Assuntos mais detalhados, como e-mail, microsserviços e balanceamento de carga
Uma das melhores maneiras de aprender é mexer com servidores como você constrói projetos. Pegue um básico VPS conta e tente configurar suas próprias pilhas. Esses VPSs são ambientes completos de servidores virtuais nos quais você tem total controle para configurar (ou destruir) tudo. Além disso, a lista acima não é um roteiro obrigatório para todos os desenvolvedores de pilha completa.
O único conhecimento que você realmente precisa é o que for necessário para criar um ambiente de servidor em branco e instalar o software necessário para executar um site. A partir daí, qualquer outra coisa é apenas melhor conhecimento. Se você tiver dúvidas ou quiser aprender com profissionais, confira a comunidade do / r / SysAdmin do Reddit.
A estrada adiante
Se você realmente quer aprender o desenvolvimento de pilha completa, faça uma lista de todas as tecnologias que você quer aprender. A partir daí, você pode enfrentá-los um a um, criando seus próprios projetos de prática para testar o que você aprende.
O desenvolvimento da Web é uma indústria em constante mudança, por isso você deve estar sempre disposto a aprender mais. Teste várias pilhas e idiomas até encontrar o que você gosta. Mas sempre esteja disposto a ir mais fundo e melhorar!
O desenvolvimento de stack completo vale o esforço? Isso é para você decidir. Mas aqui estão alguns posts relacionados que podem ajudá-lo a descobrir isso.
- Sobre a legitimidade do "full-stack" (heapsortjobs.com)
- Então você quer se tornar um desenvolvedor full-stack (rubysteps.com)
- 7 dicas sobre como se tornar um desenvolvedor de pilha completa (usersnap.com)