Desenvolvimento para Web

O texto a seguir foi traduzido do original, disponível em https://www.fullstackpython.com/web-development.html (consulta em 21/09/2019) por César Rodriguez.

Nossa intenção é disponibilizar todos os artigos citados nesta página em língua portuguesa, dado tratar-se de conteúdos preciosos. Não estranhe se alguma página ainda estiver parte 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 para a 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), HTMLCSS 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 dadosfilas de tarefascaching e vários outros conceitos críticos.
  • 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 HTMLJavaScriptCSSimagens 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.