A idéia deste post é mostrar as extensões que mais uso no meu dia a dia como Data Engineer, e que acho que podem ser úteis para vocês.
Caso ainda não tenha o VS Code instalado acesse este site https://code.visualstudio.com/ e baixe a versão correta para o seu OS. A instalação é Next Next Finish.
Em minha opinião uma das melhores coisas do VS Code é a possibilidade de adicionar features a ele através de extensions. O texto abaixo resume muito bem o que são as extensions no VS Code.
“The features that Visual Studio Code includes out-of-the-box are just the start. VS Code extensions let you add languages, debuggers, and tools to your installation to support your development workflow.”
https://code.visualstudio.com/docs/editor/extension-gallery
Os exemplos deste artigo levam em consideração que você possui instalados
· Python 3
· PowerShell
· VS Code
Instalação
Para instalar, administrar ou usar qualquer extensão do VS Code siga os passos deste link:
https://code.visualstudio.com/docs/editor/extension-gallery
Extensões
A seguir irei falar sobre a lista das extensões que mais uso e falar um pouco sobre cada uma. A ordem não necessariamente indica os que mais uso.
1 – Code Runner
Engine que permite executar scripts em diferentes linguagens usando a mesma experiência (shortcuts, formatação, etc.). Esta é uma das primeiras que eu instalo.
Com ela podemos, por exemplo, configurar para que o VS Code sempre faça um clear no output antes de cada execução. Esta configuração limpa o resultado de execuções anteriores, tornando o mais clean.
Para executar seu código no VS Code usando o code runner você pode usar o atalho ctrl + shift + n, independente da linguagem que esteja utilizando.
Irei mostrar como configurar / usar esta extensão após instalar a extensão Python.
2 – Python
Precisa nem falar que Python é a linguagem mais usada na área de dados né?
Eu uso Python praticamente todos os dias, desde AWS Lambda Functions até script para criar usuários no Azure SQL DB.
Esta extensão permite trabalhar com código Python dentro do VS Code com features como debug, linting, intellisense, Jupyter, etc.
Irei detalhar como instalar / configurar esta extensão, visto que, é necessário realizar algumas configurações após a instalação.
Pylint
Neste passo iremos habilitar o pylint no VS Code. Pylint faz verificações como: erros no código, padrão universal de codificação, etc. Na minha opinião é essencial para ter um bom padrão de codificação.
Mais informações sobre o Pylint aqui. https://pypi.org/project/pylint/
Basicamente o que a Command Pallet to VS Code faz é executar este comando pip no terminal, que vai instalar o pacote Python chamado Pylint, apenas para o usuário atual.
Autopep8
Outro pacote Python muito comum é o autopep8. Este pacote formata nosso código Python de forma automática seguindo os padrões definidos aqui https://www.python.org/dev/peps/pep-0008/
Para instalar o autopep8 escreva o comando abaixo no terminal do VS Code e tecle enter.
Configurando o VS Code
Agora iremos configurar o VS Code para usar os pacotes instalados.
No passo abaixo estamos instruindo o VS Code a formatar nosso código todas as vezes que você salvar o arquivo. No caso de código Python ele vai usar o autopep8.
Por fim, no passo abaixo estamos configurando o VS Code para salvar o arquivo atual antes de cada execução do Code Runner.
Isso evita que você tenha que salvar o arquivo antes de cada execução.
Jupyter
De forma bem simples Jupyter permite que você use texto e código Python em uma espécie de documento (web app) chamada notebook. Seria mais ou menos como ter um arquivo do Word onde parte do conteúdo fosse descrição do código e outra parte, dentro do mesmo arquivo, fosse código executável.
Veja mais sobre notebooks aqui https://jupyter.org/
No exemplo abaixo iremos criar um notebook usando Jupyter.
Feche o VS Code.
Abra o cmd como admin e instale o Jupyter package executando o comando abaixo:
pip install jupyter
Abra o VS Code e na Command Palette digite Jupyter.
VS Code vai iniciar um Jupyter Server localmente e irá abrir esta página
Na imagem acima “1” você pode criar novas “cell”. Uma cell é um espaço na página onde especificamos se iremos usar código (Python) ou descrição (Texto).
Em “2” você tem a opção de alternar o tipo de “cell” entre Code ou Text.
Em “3” você tem o botão “Run”, que só aparece quando o tipo de cell for code.
Em “4” você pode ver o server e Python Interpreter selecionado.
Já a imagem abaixo mostra um exemplo do mesmo Jupyter Notebook, porém agora com mais cells.
Acima temos 3 cells, a primeira “1” Texto, a segunda “2” Code e a terceira “3” Texto.
Caso você tenha várias cells é possível executar todas usando a opção “4”.
Neste último exemplo temos duas cells. Uma Text e outra com code que imprime os 5 primeiros registros de um CSV usando Pandas.
Note que se você NÃO estivesse usando Jupyter seria necessário usar print(df.head())
3 – Data Preview
Esta extension é excelente quando você precisa realizar uma análise rápida em datasets em formatos CSV, JSON, Avro, etc. Nela você consegue visualizar, filtrar, exibir dados em gráficos, agrupar, etc. Tudo de forma simples e rápida.
Irei usar como source os arquivo CSV /JSON extraídos deste site: https://ourworldindata.org/coronavirus-source-data
Para usar esta extensão simplesmente vá para a command palette do VS Code (https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) em View / Command Palette e então selecione/escreva “Data: Preview Data”.
A ferramenta é quase um Power BI do VS Code hehe. Note abaixo que no lado esquerdo “1” podemos selecionar o tipo de gráfico, neste caso GRID, bem como os campos que serão exibidos no gráfico “2”
Na parte superior podemos agrupar os dados “3”, realizar split e ordenar por “4”. Bem como, filtrar ”5”.
Na área principal podemos visualizar os dados “6”.
Abaixo podemos ver mais um exemplo. Neste caso usando gráfico de barras, filtro inteligente e agrupamento
Neste outro exemplo estamos usando um JSON obtido do site supracitado. Note que de forma muito inteligente ele transforma um array de json em uma tabela
É uma extension essencial no meu dia a dia.
4 – PowerShell
Quem me conhece sabe que uso Posh desde quando ele foi lançado e curto bastante. Muitas tarefas administrativas do Azure eu faço em PowerShell. Além de várias relacionadas ao SQL Server / Windows.
Falando em Posh + SQL recomendo DBATools https://dbatools.io/.
A imagem abaixo mostra o resultado de um script PowerShell “3” no VS Code, SEM usar Code Runner.
Note que o comando foi executado três vezes, sem usar cls/clear-host “2”, e os resultados das execuções anteriores continuam no terminal. Isso se dá porque não usamos o Code Runner.
Se executarmos novamente este código por três vezes, usando o Code Runner “1”, o terminal exibirá apenas o resultado da última execução.
Na imagem abaixo note que o resultado agora está na tab “Output” e não mais na tab “Terminal”
5 – SQL Server
Nem precisa falar muito sobre né?
Vamos criar uma conexão a um Azure SQL DB que tenho de exemplos:
Especifique um DB name. No meu caso irei deixar em branco pois estou usando um SQL Login (admin) e não um contained user.
Escolha o Authentication Method. SQL Login no meu caso.
Informe user e senha
Deixe esta opção em branco
Pronto. Agora você pode realizar consultas ao SQL Server diretamente do VS Code.
Uma feature interessate em minha opinião é o query history, que você pode ver la barra lateral esquerda/inferior da imagem acima.
6 – Azure Tools
Esta não é uma simples extension e sim um conjunto de extensions instalado de uma vez.
Note que ela possui um Extension Pack incluindo extensions como Azure CLI, Azure Functions, etc.
Após instalada a primeira coisa que temos que fazer é login na nossa conta Azure.
Veja agora que já podemos visualizar nossos Azure Resources diretamente do VS Code
Abaixo falo um pouco sobre como usar algumas extensions incluídas na Azure Tools.
Extension: Azure CLI
O texto abaixo resume bem o que é Azure CLI
“The Azure command-line interface (Azure CLI) is a set of commands used to create and manage Azure resources. The Azure CLI is available across Azure services and is designed to get you working quickly with Azure, with an emphasis on automation.”
https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest
Você pode usar este link para baixar o instalador https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-windows?view=azure-cli-latest&tabs=azure-cli#azure-cli-current-version
Instalação é NNF.
O código abaixo lista todos os DBs de um determinado server, usando as credencias já salvas na Azure extension. Note que não preciso passar informações de login no código.
Note que a linguagem selecionada é Azure CLI Scrapbook. Para executar o código clique na linha com o botão direito e então “Execute Line in Editor”. O resultado é exibido na tab a direita.
Entre outras features esta extension também mostra informações sobre métodos
Extension: Azure Function
Neste exemplo irei criar uma Azure Function (Python) usando minha Function App chamada “func-tst-example-eastus2”.
Primeiro vamos instalar os requisitos.
Baixa e instale o Node JS https://nodejs.org/en/download/. A instalação é NNF.
Instale o pacote para trabalhar com Azure Functions. Para isso abra o CMD como admin e execute o código abaixo:
pip install azure-functions
Crie um novo projeto
Selecione a linguagem
Selecione o interpreter
Selecione o template. Frequentemente eu uso Azure Functions para capturar eventos de Event Hub ou Azure Blob Storage. Neste exemplo vamos criar algo mais simples.
Dê um nome
Selecione o schedule (cron)
Pronto. Agora você tem uma Azure Function pronta para uso.
Você pode seguir os passos abaixo para realizar o deploy
7 – AWS
Assim como no Azure esta extension para AWS é um conjunto. Neste caso chamado “AWS Toolkit for Visual Studio Code”
“The AWS Toolkit for Visual Studio Code is an open source plug-in for the Visual Studio Code that makes it easier to create, debug, and deploy applications on Amazon Web Services. With the AWS Toolkit for Visual Studio Code, you will be able to get started faster and be more productive when building applications with Visual Studio Code on AWS. The toolkit provides an integrated experience for developing serverless applications, including assistance for getting started, step-through debugging, and deploying from the IDE.”
https://aws.amazon.com/visualstudiocode/
Após instalada iremos fazer login
No canto inferior direito a mensagem seguinte será exibida. Clique em Yes.
Escolha um nome para seu profile
Informe sua Access Key e Secret
Selecione o profile no canto inferior direito
Adicione uma region
No meu caso US East
E pronto. Assim como no Azure agora você tem o AWS configurado e pronto para uso no VS Code
8 – Settings Sync
Bom. Imagine que após configurar todas estas extensions e demais configurações do VS Code você precisou trocar de Laptop. Ou então precisa acessar seu VS Code em outro laptop. Realizar todas as configurações novamente seria péssimo.
É aí onde entra a extension “Settings Sync”. Com ela você pode usar sua conta GitHub para armazenar suas configurações, extensions, etc. e então sincronizar entre várias estações de trabalho.
Após instalada a seguinte tela será exibida:
O primeiro passo é realizar login no GitHub:
Autorize o App
Um Gist https://help.github.com/en/enterprise/2.13/user/articles/about-gists será criado quando você fizer o primeiro upload. Faça um skip.
Na Command Palette acesse as configurações do Sync
Selecione as opções abaixo:
Feche a abra o VS Code
Vá para sua página no GitHub e veja o Gist criado. Basicamente este Gist armazena as suas configurações do VS Code. Uma feature interessante é que você pode compartilhar este Gist com outros usuários. Assim eles podem deixar o VS Code deles igual ao seu sem ter que instalar nada. Isso é o máximo não?
Voltando ao VS Code acesse as a Command Palette conforme abaixo:
Note que a extension adicionou estas configurações ao seu Gist.
Volte ao GitHub e acesse as configurações do Gist
A extension basicamente salva no seu GitHub vários arquivos JSON com as configurações das suas extensions, etc.
Note que as propriedades que alteramos no Code Runner estão no JSON
Com isso finalizamos este post.
Em breve farei um outro post sobre VS Code com algumas extensions/configurações que não uso no dia a dia, porém são bastante úteis.
Um amigo também me recomendou esta extension https://marketplace.visualstudio.com/items?itemName=msrvida.vscode-sanddance. Fiquei curioso. Em breve farei um post sobre as demais, incluindo-a.
Bom pessoal é isso. Espero que tenham gostado.
Abraço e muita cerveja boa 😀