Ambiente de Desenvolvimento
“Se quiser derrubar uma árvore em metade do tempo, passe o dobro do tempo amolando o machado.”
- Provérbio chinês de autor desconhecido
Introdução
O ambiente de desenvolvimento é o conjunto de ferramentas que o desenvolvedor utiliza para construir software em seu computador. Ambientes complexos, com erros ou que demoram a executar suas tarefas comprometem profundamente a produtividade. Por isso, como no caso do machado da parábola, mantenha-o sempre “afiado”.
Nesse capítulo serão instalados os itens necessários para o desenvolvimento: interpretador Python, Kit de Desenvolvimento de software (SDK, do inglês Software Development Kit). Além desses, também será utilizado um Ambiente Integrado de Desenvolvimento (IDE, do inglês Integrated Development Enviroment), o Pycharm.
Interpretador Python
Atualmente existem duas principais versões da linguagem: 2.7 e 3.4. Sempre é bom utilizar a última, por conta das melhorias. Mas muitos frameworks ainda não foram portados para a nova versão. O App Engine é um caso e por isso a plataforma só aceita a versão 2.7 da linguagem Python.
No Linux (Ubuntu versão 12.04) elá já está disponível por padrão. Para instalar em outros sistemas, visite a página de downloads e escolha a versão adequada ao seu Sistema Operacional.
Para verificar aquela que está instalada em seu sistema, abra um terminal de comando e digite python. A versão disponível é impressa como primeira linha após a execução, conforme exemplo a seguir:
Execução do Python via linha de comando no Ubuntu 12.04
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Caso apareça uma mensagem informando que o comando não existe, deve ser instalado o interpretador através do link já mencionado. Se a instalação já foi feita, verifique se o endereço de instalação foi adicionado ao path.
Terminal de Comando
Para ser possível emular e desenvolver a aplicação em um computador, é necessário instalar o Kit de Desenvolvimento Padrão (SDK, do inglês Standard Development Kit). Ele provê as ferramentas necessárias para inicialização do servidor localmente, interação com banco de dados, entre outras.
Assim como o interpretador, o endereço de instalação também deve ser adicionado ao path. Para fazer isso no Linux, acesse a sua pasta home e utilize o atalho “Crtl+h” para visualizar os arquivos ocultos. Dentre esses arquivos se encontram dois de interesse: o “.bashrc” e o “.profile”. Edite esses arquivos adicionando em seus finais as seguintes linhas:
Adição de variável de Ambiente no Linux
export GAE_SDK="seu diretorio"/google_appengine
PATH=$PATH:$GAE_SDK
A seguir se encontra um exemplo para um SDK que foi instalado em diretório bin localizado na pasta home:
Arquivo .bashrc editado para incluir SDK ao path
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
export GAE_SDK=/home/renzo/bin/google_appengine
PATH=$PATH:$GAE_SDK
Cabe ressaltar que a variável GAE_SDK não é obrigatória.
Contudo, ela será utilizada no capítulo de Testes Automatizados. E por ser parte da configuração, ela já foi aqui inserida.
“Olá Mundo” - Terminal
Dentro da pasta do Kit de Desenvolvimento existe um diretório contendo um modelo de projeto. Acesse-o e copie a pasta “new_project_template” para um endereço de sua preferência. A figura 1.01 a seguir mostra o conteúdo do SDK após extração do arquivo zipado:

Figura 1.01: Conteúdo SDK GAE
Copiada a estrutura do projeto, navegue até seu diretório no terminal e digite o seguinte comando dev_appserver.py . para iniciar o servidor localmente.
A figura 1.02 mostra o console no caso de execução correta do programa. A partir desse momento o SDK está servindo a aplicação localmente. Acesse o endereço http://localhost:8080 em seu navegador e confira se aparece a mensagem “Hello World”. Em caso negativo, confira os passos anteriores. Desligue o servidor utilizando o atalho “Ctrl+C”.

Figura 1.02: Comando dev_appserver.py
Observe que a primeira opção depois do comando é o diretório onde se encontra o arquivo de configuração app.yaml. Sendo assim, também funcionaria o comando dev_appserver.py new_project_template se executado direto do diretório home.
Pycharm
Apesar de ser possível utilizar a linha de comando e um editor de texto simples para desenvolver, nesse livro será utilizado o Ambiente de Desenvolvimento Integrado (IDE, do inglês Integrated Development Enviroment) Pycharm. Outros também podem ser utilizados , como o Pydev, que inclusive é gratuito. Mas aquele foi escolhido por ser robusto e por seu conjunto de ferramentas.
Para conseguir executar o Pycharm é necessário instalar a Máquina Virtual Java (JVM, do inglês Java Virtual Machine). Após baixar o pacote adequado ao seu sistema também é necessário adicioná-lo ao path. As seguintes linhas devem ser adicionadas aos arquivos .bashrc e .profile, onde a variável JAVA_HOME deve apontar para o diretório onde foi extraído o JDK:
Arquivo .bashrc editado para colocar JDK no path
export JAVA_HOME=/home/renzo/bin/jdk1.7.0_45
PATH=$PATH:$JAVA_HOME/bin
Cumpridas essas etapas, navegue até o diretório bin da pasta de instalação do Pycharm no terminal e rode o script pycharm.sh. Exemplo de execução do comando ~$ ./bin/pycharm-3.0.1/bin/pycharm.sh . Com o ambiente inicializado você pode fixar seu ícone na barra de tarefas para poder inicializar a aplicação apenas com um clique.
|
Prefira baixar a versão profissional do Pycharm, pois a versão gratuita não possui alguns plugins, como o destinado a construção e aplicações Google App Engine. |
“Olá Mundo” - IDE
Ao iniciar a IDE, clique em Create New Project e escolha o tipo de projeto Google App Engine project. Você deve assinalar um identificador para o seu projeto e informar o diretório onde se encontra o SDK do Google App Engine. A tela de criação de projeto deve ficar semelhante à figura 1.03:

Figura 1.03: Novo projeto GAE - Pycharm
Para executar o servidor local, basta clicar no ícone verde play que se encontra em destaque na figura 1.4.
Verique se no link http://localhost:8080 , utilizando seu navegador, aparece a mensagem “Hello World”.
Em caso negativo, confira e repita os passos anteriores.

Figura 1.04: Iniciando servidor local - Pycharm
Publicação (Deploy)
Muitos programadores iniciantes começam a desenvolver suas aplicações logo após aprenderem como inicializar o servidor localmente. Contudo, o processo de publicação do site é um passo fundamental. Somente dessa maneira os usuários podem acessá-lo pela rede.
O deploy deve ser simples. Em um bom processo de desenvolvimento, deve ser possível publicar apenas com um clique ou comando. Mais do que isso, o site deve ser publicado de maneira frequente. Por essa razão, recomenda-se iniciar o desenvolvimento apenas após a publicação do site pela primeira vez, mesmo que seja apenas para imprimir uma mensagem simples. Afinal de contas, não faz sentido desenvolver um site se não for possível disponibilizá-lo. Como afirmaram Jez Humble e Dave Farley em seu livro Entrega Contínua: “Atualmente muitas companhias estão fazendo múltiplos deploys em apenas um dia”1. Foge ao escopo desse livro implementar o processo automatizado. Contudo, fazer o deploy manualmente, antes do desenvolvimento em si, é o primeiro passo nesse sentido.
Painel de Controle
Para publicação, é necessário a criação de uma aplicação no Painel de Controle do Google App Engine. Isso deve ser feito no endereço http://appengine.google.com. Será necessário utilizar uma Conta Google. Após o cadastro, será possível visualizar o painel.
Clicando “Create Application” uma nova aplicação é gerada. Um identificador único e um nome devem ser atribuídos à aplicação, como na figura 1.05:

Figura 1.05: Formulário App Engine
Cadastrada a aplicação, o arquivo de configuração app.yaml que se encontra na raiz de seu projeto deve ser editado. O identificador deve ser copiado na primeira linha, no item “application”. Um exemplo da primeira linha do arquivo se encontra a seguir:
Primeira linha do arquivo app.yaml
application: cursospythonpro
|
Para usar o App Engine a conta Google precisa ser verificada por celular através de um sms. Usuários já se queixaram dessa mensagem nunca chegar para clientes da operadora Oi. Para evitar isso, pode ser utilizado um celular de outra operadora. Outra opção é pedir para alguém já cadastrado enviar um convite, via painel de administração, para administração de um projeto já existente. Nesse caso, a verificação não é necessária. |
Deploy - Terminal de Comando
Editado o arquivo app.yaml, deve ser acessado o diretório do projeto no terminal e digitado o comando “update” do script appcfg.py do SDK:
Deploy via bash
~$ cd PycharmProjects/cursospythonpro/
/PycharmProjects/cursospythonpro$ appcfg.py update .
O programa pedirá e-mail e senha. Devem ser inseridos os dados relativos à conta que se utilizou para criar a aplicação no painel de controle. Com esse comando o SDK irá escanear os arquivos do projeto e enviá-los ao servidor.
Finalizada a publicação, é possível acessar o site através do endereço http://seu_identificador.appspot.com, conforme imagem 1.06:

Figura 1.06: Site publicado no App Engine
|
Para quem usa login em dois passos, deve ser utilizado o comando |
Deploy via Pycharm
Para fazer o deploy com o Pycharm, o menu Tools > Google App Engine > Deploy Application deve ser acessado, conforme figura 1.07:

Figura 1.07: Deploy via Pycharm
Devem ser inseridas as credenciais. Finalizado o processo, é possível acessar o site no endereço supracitado.
|
Para quem usa login em dois passos, a opção “Use Passwordless login via OAuth2” de ser escolhida. Será exibida a tela de login no navegador onde é possível inserir a senha e o código de segurança. |
Windows e Mac
o SDK oferece uma Interface Visual (GUI, do inglês Graphical User Interface) que pode ser utilizada em opção à linha de comando para os Sistemas Operacionais Windows Mac OS. Clicando em em File > Add new Application um novo projeto é criado, como na figura 1.08:

Figura 1.08: GUI do App Engine
Criado o projeto é possível iniciar o servidor local clicando no botão Run e fazer o deploy clicando no botão com esse nome. É importante notar que a utilização da IDE Pycharm faz com que o desenvolvimento ocorra da mesma forma nos diferentes sistemas operacionais. Por isso ele será utilizado como base para os exemplos.
Outra fator interessante é que ao instalar no Mac, ele informa que criará um link simbólico para a pasta do SDK. Esse link se encontra em /usr/local/google_appengine e deve ser utilizado quando necessário para referenciar as bibliotecas da plataforma.
Resumo
Nesse seção foi explicado como instalar as ferramentas necessárias para executar o servidor localmente: Interpretador Python versão 2.7 e SDK do Google App Engine. Além disso, foi instalado o Pycharm, IDE que facilita o desenvolvimento.
Mais do que a instalação, foi ensinado como executar o servidor localmente e como fazer a publicação do projeto via linha de comando, IDE e também via GUI do SDK do Google App Engine para Windows e Mac.
Esse conhecimento possibilitará o desenvolvimento e testes nos próximos capítulos.
Questões
- Quais as duas principais versões atuais do interpretador Python?
- Qual versão de Python é suportada atualmente pelo App Engine?
- Para que serve o SDK do App Engine?
- Qual a vantagem de colocar ferramentas instaladas no path do Sistema Operacional?
- O que é e para que serve uma IDE?
- Como se chama o arquivo de configuração de uma aplicação App Engine?
- Qual o domínio padrão para acessar aplicações App Engine na internet?
Respostas
- As duas principais versões atuais do interpretador Python são 2.7 e 3.4.
- A versão de Python suportada atualmente pelo App Engine é a 2.7.
- O SDK do App Engine serve para acessar as ferramentas de desenvolvimento, como servidor local e banco de dados.
- A vantagem de colocar ferramentas no path do Sistema Operacional é poder executar comandos independente do diretório em que se encontre o Terminal de Comando.
- IDE é um Ambiente Integrado de Desenvolvimento. Ele serve para fornecer ferramentas que facilitam o desenvolvimento e faz com que o processo de desenvolvimento seja independente de sistema operacional.
- O arquivo de configuração de uma aplicação App Engine se chama app.yaml
- O domínio padrão para acessar aplicações App Engine na internet é appspot.com
- “These days, many companies are putting out multiple releases in a day”. Continuous Delivery, p. xxiii ↩