O texto a seguir foi traduzido do original por César Rodriguez. Original disponível em https://www.fullstackpython.com/web-development.html (consulta em 21/09/2019).
Não estranhe se alguma parte da página ainda estiver em inglês (certamente é a que está sendo trabalhada no momento), ou se os links forem para páginas em inglês (se forem os artigos centrais, serão traduzidos no futuro).
O desenvolvimento para Web é um termo guarda-chuva utilizado para designar as atividades de desenvolver um conceito, criar, implantar e operar aplicações web e interfaces de programação de aplicações para a Web.
Por que o desenvolvimento web é importante?
A Web se expandiu numa proporção inimaginável em número de sites, usuários e capacidades de implementação desde que o primeiro website foi ao ar em 1989. O desenvolvimento para Web é o conceito que abrange todas as atividades relacionadas a websites e aplicações web.
Onde o Python se encaixa no desenvolvimento web?
Python pode ser usada para desenvolver aplicações web no lado do servidor. Embora não seja necessário utilizar um framework web para desenvolver aplicações web, é muito raro que os desenvolvedores abstenham-se de utilizar bibliotecas de código aberto já existentes, para agilizar o momento de colocar a aplicação para rodar.
Python não é usada em um navegador web. A linguagem executada em em navegadores como o Chrome, Firefox e Internet Explorer é o JavaScript. Existem projetos, como o pyjs, que podem compilar Python e traduzir para JavaScript; contudo, a maioria dos desenvolvedores de Python escrevem suas aplicações web utilizando uma combinação de Python e JavaScript, na qual Python é executada do lado do servidor, e JavaScript é baixada para o cliente e rodada no navegador web.
Fontes sobre desenvolvimento para web
Para se tornar um desenvolvedor web experiente, você precisará saber os princípios fundamentais sobre os quais a web está estruturada, como requisições e respostas HTTP, clientes (geralmente os navegadores web) e servidores (servidores web, como arquiteturas Nginx e Apache), HTML, CSS e JavaScript, dentre outros tópicos. As fontes abaixo proporcionam uma gama de perspectivas que, combinadas, te darão algum norte no mundo do desenvolvimento web.
- “Como a internet funciona” é uma leitura obrigatória, que proporciona uma visão geral e rápida sobre as partes envolvidas numa conexão de rede entre duas máquinas. O exemplo explica como um e-mail é enviado, mas a história é igualmente útil para aprender sobre o funcionamento de outras conexões, como o download de uma página web.
- Se você quer ser um desenvolvedor web, é importante conhecer as ferramentas primordiais utilizadas para construir sites aplicações web. Também é importante saber que os conceitos básicos, como HTTP, URLs e HTML já existiam desde o começo, e foram sendo expandidos através de novas especificações paulatinamente, com o tempo. Este artigo sobre a História da Web explica de forma sucinta as origens da web, desde a visão original de Tim Berners-Lee e seu lançamento no CERN.
- “Introdução à Arquitetura Web” dá uma ótima visão panorâmica das tecnologias que sustentam a web moderna, como DNS, balanceadores de carga (load balancers), servidores de aplicações web (no caso do Python, isso é sinônimo de servidores WSGI), bancos de dados, filas de tarefas, caching e vários outros conceitos críticos.
- A Evolução da Web visualiza como os navegadores web e as tecnologias correlatas têm mudado com o passar do tempo, bem como o crescimento bruto da quantidade de dados transferidos pela internet. Perceba que a visualização infelizmente acaba no início de 2013, mas ainda assim é uma boa forma de explorar o que ocorreu nos primeiros 24 anos.
- “Como navegadores funcionam” traz uma visão geral, mas com detalhes sólidos, sobre a forma como os navegadores recebem arquivos HTML, CSS, JavaScript, imagens e outros como entrada e renderizam páginas web como saída. Vale a pena o tempo gasto aprender esses assuntos como um desenvolvedor web.
- “Checklist para aplicações web” apresenta boas práticas que desenvolvedores que estiverem criando e implantando aplicações web deveriam seguir. Você não precisa se preocupar em implementar cada uma dessas recomendações antes de colocar seu site no ar, mas vale à pena dar uma olhada na lista, para garantir que não há nenhum detalhe óbvio, que você poderia fazer em poucos minutos, para melhorar a segurança, a performance ou a facilidade de uso do seu site.
- “O Desenvolvimento de aplicações web é diferente e melhor” contextualiza a evolução do desenvolvimento para web, desde o uso de páginas HTML estáticas até as aplicações complexas em JavaScript que rodam do lado do cliente do lado do cliente produzidas hoje em dia.
- “O Guia do Hacker de Navegadores para Carregar Qualquer Coisa Instantaneamente” é uma palestra técnica espetacular dada por Addy Osmani na JSConf EU 2017, e contém ótimas sacadas de conhecimento de um desenvolvedor, útil tanto para desenvolvedores web iniciantes, quanto para os experientes.
- “Construindo uma aplicação web do nada” e suas sequências nas postagens, middleware para manuseio de requisições, exploram os fundamentos do desenvolvimento web. Aprender esses conceitos fundamentais é indispensável para um desenvolvedor web, mesmo que você pretenda utilizar um framework web já estabelecido, como o Django ou Flask, para criar suas aplicações. O código fonte aberto dessas postagens está disponível no GitHub.
- Embora não seja específico de Python, a Mozilla elaborou o tutorial Conhecendo a Web para usuários web iniciantes e intermediários que pretendem criar websites. Vale dar uma olhada para aprender questões gerais relacionadas ao desenvolvimento web.
- O desenvolvimento para a Web abrange comunicação HTTP entre o servidor — que hospeda um site ou aplicação web — e o cliente, um navegador web. Saber como funcionam os navegadores é importante para um desenvolvedor, portanto dê uma olhada neste artigo sobre o que há num navegador web.
- “Ping à velocidade da luz” se aprofunda nas ervas daninhas das redes de computadores, analisando como pacotes rápidos viajam pela “tubulação” da internet. O autor criou um script em Python que garimpa e compara velocidade de rede de localidades diferentes, para mensurar a velocidade da rede em cabos de fibra ótica como uma porcentagem da velocidade da luz.
- “O caminho crítico: como otimizar tempo de carregamento com as DevTools do Chrome” fornece uma explicação bem escrita sobre como utilizar as ferramentas de desenvolvedor do Chrome para melhorar a performance de seus sites e aplicações web.
- “Três lições para desenvolvedores web depois duas semanas com uma internet dolorosamente lenta” é uma leitura imprescindível para todo desenvolvedor web. Nem todo mundo tem uma conexão rápida à internet — alguns, por estarem numa parte remota do planeta; outros simplesmente estão passando por um túnel ou no metrô. Para manter seus usuários satisfeitos, é importante otimizar os sites para que funcionem em situações como essas.
- “A História da URL: Caminho, Fragmento, Requisição e Autenticação” traz uma perspectiva histórica abrangente sobre a forma fundamental de criar links para recursos na web. Essa postagem deveria ser leitura obrigatória para desenvolvedores web.
- “Um Close no Quantum: O que é o motor de renderização de um navegador?” explica como um navegador recebe HTML, JavaScript, CSS, imagens e quaisquer outros tipos de arquivos e dados como entrada e produz uma página web como saída.
- “Como interpretar testes de performance” é um tópico importante porque muitos websites são desnecessariamente grandes e lentos. Aprender como melhorar a performance do seu site é uma das melhores formas de se tornar um desenvolvedor web melhor. Outro ótimo artigo sobre performance de websites é “A média de tamanho das páginas web é 3 MB. O quanto isso importa?“. Os recursos visuais, por si sós, contam uma história impressionante sobre o quanto o tamanho das páginas da web aumentou nos últimos anos.