Usando GIT e GITHUB pra versionamento e colaboração de código T-SQL

Fala galera, uma coisa que é bastante comum de acontecer é escrever um código T-SQL pra resolver um problema e ficar alterando este código no decorrer do tempo. Muita gente acaba versionando o código duplicando arquivos dentro dos diretórios e modificando os nomes com V1, V2, V3, …, V508. Isso é péssimo, a gente nunca sabe qual arquivo estava o código correto que usamos no passado e que foi modificado pra versão atual do que estamos fazendo, sem contar também que pode-se ter problemas de apagar o arquivo localmente, ou pior, o disco da sua máquina de desenvolvimento que contém estes códigos pode dar problema e você perde tudo o que fez.

Uma solução para estas situações é usar algum tipo de versionamento de códigos, já mostrei aqui como usar o TFS pra versionar seus projetos no servidor. Hoje vou mostrar como usar o GIT e o GITHUB pra versionar os códigos T-SQL de seus scripts. O versionamento além de permitir que os comentários das publicações do código sejam feitos, também é possível compartilhar estes projetos com outros usuários e ter uma colaboração no seu código. Podem ter colegas trabalhando no mesmo código e será possível ver as alterações que cada um fez no arquivo.

Bom, a primeira coisa a se fazer é criar uma conta no GITHUB, para isso, acesse o site http://github.com e preencha seu cadastro. O Github será o seu repositório e controlador na internet. É seguro e muito utilizado por grandes empresas, então se você tem algum medo com relação à segurança, pode ficar um pouco mais tranquilo.

Existem dois tipos de contas, uma gratuita (e aberta) e uma paga (e privada). Quando você escolhe que sua conta será aberta (gratuita) todos os usuários podem ter acesso à seus códigos, inclusive podendo copiar seus scripts mesmo sem precisar pedir autorização. Já quando é uma conta privada (paga) você gerencia os acessos, permitindo que somente as pessoas X, Y ou Z possam acessar a pasta pra ver os arquivos, podem ler os documentos ou podem ter acesso à fazer modificações. Isso vai ficar de acordo com sua necessidade. No meu caso, possuo na mesma conta alguns projetos gratuitos e outros pagos. Os gratuitos vocês conseguem enxergar, acessando o link: https://github.com/diegonogare

Após criar sua conta no Github, você precisa baixar e instalar o GIT. Acesse http://git-scm.com/download/win e faça o download do Git Bash, que é uma aplicação console (em linha de comando) que fará a comunicação com sua conta no Github. É através do Bash que você se conecta a um repositório, pega a ultima versão do arquivo, faz upload do seu código para o repositório, consegue encontrar as versões dos códigos que foram publicados, entre outras atividades. É através dele que você gerencia toda a comunicação com o servidor de código.

Existem bastate linhas de código pra você interagir com o GITHUB através do Git. Veja abaixo a sequência de códigos mais comuns, e sua aplicabilidade:

  1. Criar o repositório no Github que receberá seus códigos;
  2. Conectar a pasta local com o repositório do servidor;
  3. Acessar a pasta onde tem seu arquivo que deseja criar o versionamento;
  4. Verificar o status dos arquivos existentes nesta pasta (opicional);
  5. Adicionar o arquivo desejado (ou todos) para dentro do GIT, ainda localmente;
  6. Fazer o commit do arquivo, adicionando os comentários que ficam atrelados aos arquivos;
  7. Fazer o envio do arquivo pro servidor do GITHUB.

Para exemplificar o processo, vou criar uma pasta com o nome de SCRIPT dentro do C:\TEMP no meu computador. Nesta pasta vou criar um arquivo chamado BlogDoNogare.sql que vai receber um comando qualquer, vou subir este código pro Github, depois vou alterar o código localmente e subir novamente pro Github. Por fim, vamos encontrar o código no portal web e visualizar o versionamento.

 

Passo 1 – Criar a pasta no Github que receberá seus códigos. Para isso, acesse o Github após seu registro e clique em criar novo repositório. Este repositório, na literatura, é chamado só de “Rep”.

Passo 2 – Após criar o diretório no Github, na página seguinte da criação aparecem alguns códigos. Mantenha essa página aberta ou copie estes códigos para um bloco de notas, vamos usar em breve.

Passo 3 – Agora abra o Git Bash pra conectar a pasta local com o servidor.

Passo 3.1 – Vá até a pasta que receberá seus arquivos. No meu caso, C:\Temp\Script. O comando LS retorna a lista de objetos dentro da pasta.

Passo 3.2 – Use o comando Git Init pra criar uma estrutura interna nesta pasta, e permitir que o Git (local) faça o gerenciamento desta pasta e sub-pastas.

Passo 3.3 – Coloque o primeiro arquivo dentro da pasta. No meu caso, é só um arquivo chamado BlogDoNogare.sql com o código SELECT @@VERSION. Faça isso com o próprio SQL Server Management Studio.

Passo 3.4 – Adicionar o arquivo, ou conjunto de arquivos, para o Git (local) contabilizar e versionar. O comando GIT ADD faz isso, se você especificar o nome do arquivo, só este arquivo é adicionado ao controle de versão neste momento, se você especificar . [ponto], todos os arquivos que foram alterados serão marcados com a flag pra versionar. No meu caso, espeficiquei o nome, digitando GIT ADD BlogDoNogare.sql

Passo 3.5 – Opicionalmente você pode utilizar o comando Git Status pra coletar mais detalhes do que tem de alteração na pasta. Existem 3 cores que os nomes dos arquivos podem aparecer. Vermelho significa que o arquivo está alterado e ainda não foi versionado esta alteração. Amarelo significa que foi alterado e está versionado, mas ainda não foi pro servidor. Verde significa que foi versionado e está no servidor. Depois que você enviar pro servidor e alterar o arquivo localmente, ele volta a ficar vermelho e segue esta ordem de cores novamente. Novos arquivos também ficam verdes, mesmo sem ter sido enviado pro servidor.

Passo 3.6 – É momento de marcar os arquivos que foram adicionados neste versionamento para enviar ao servidor. O comando Git Commit –m “sua_mensagem_aqui” coloca esta comentário que fica entre aspas para todos os objetos que serão enviados pro servidor. Possibilitando que este comentário seja visto no Github. No meu caso, coloquei o comentário “Retorna a versão do SQL Server”.

Passo 3.7 – Lembra daqueles códigos que a gente copiou da página do Github logo após a criação do repositório? Então, aqui é hora de usar a primeira linha daquele código. Ela é responsável por conectar esta pasta com o servidor. Após inserir esta linha, vai lhe pedir o usuário e senha, é o mesmo que você usou pra se registrar no Github. Esta ligação é feita uma única vez, e geralmente é na primeira vez. Depois, quando você precisar mudar o repositório de destino, você precisa rodar novamente estes códigos, mas é só quando muda o destino lá no servidor.

Passo 3.8 – Agora já temos o diretório local criado, o arquivo marcado para ser controlado, e a pasta conectada com o servidor. O próximo e ultimo passo é enviar o arquivo fazendo um push. Para fazer isso, basta usar aquele segundo comando que foi apresentado na página do Github.

Passo 3.9 – Pronto, seu arquivo está no servidor. Se você voltar ao Github e atualizar a página, já será possível encontrar seu arquivo publicado e com o comentário que você criou.

Vamos alterar o arquivo local, e ver o comportamento dele no servidor?

Passo 4 – Altere o código do seu script de SELECT @@VERSION para SELECT @@SERVERNAME e salve o arquivo.

Passo 4.1 – Utilizei o comando Git Status para ver o que aconteceu com seus arquivos que estão com a flag pra controle de versão. Veja que agora este arquivo está com a cor vermelha.

Passo 4.2 – Novamente vamos marcar o arquivo para versionamento, isso vai dizer que o código que está no arquivo agora deve ser enviado pro servidor do Github. Faça isso usando o comando Git Add. Lembra que da primeira vez foi usado o nome do arquivo? Então, agora usei o . [ponto] pra adicionar todos os arquivos. Como só existe um arquivo na pasta, só ele será marcado.

Passo 4.3 – O passo seguinte é realizar o commit dos arquivos. Usando o código Git Commit –m “Retorna o nome do servidor”, eu informo o comentário relativo à alteração que tem no arquivo.

Passo 4.5 – Pra finalizar, é necessario enviar os arquivos que foram “commitados” para o servidor. Faça isso usando o Git Push. Como já foi feita a primeira ligação entre a pasta e o servidor, pode usar somente o Git Push sem informar que é na branch master. A não ser que você tenha criado uma nova branch. Mas não é nosso caso, estamos trabalhando no padrão, que é a Master. Mais uma vez você precisa informar o Usuário e a Senha do Github.

Pronto, agora seu arquivo no Github já está alterado e pode ser visto todo o histório de alterações, tal qual com seu comentário para facilitar a identificação das alterações.

Estes comandos em GIT são bem básicos mas já permitem que seus códigos T-SQL possam ser versionados e você consiga compartilhar isso com outros colaboradores. Lembre-se de que existem duas contas do GIT, uma gratuita e uma paga. Esta que criamos aqui é gratuita, mas para os códigos da sua empresa, é altamente recomendado que seja uma paga (pra evitar vazamento dos códigos). A não ser que você queria que a galera tenha acesso à seus códigos :)

Para aprender com muito mais detalhes a trabalhar com GIT + Github, vale dar uma olhada nestes cursos:

[Pago – Em português] Git e Gthub para desenvolvedores .NET

[Gratuito – Em inglês] GIT REAL

2  

MVP e PASS Summit 2014 – Muitas atividades e novidades!

Fala galera, na semana de 02 a 07/Novembro/2014 participei de dois grandes eventos em Seattle/WA. Depois de viajar mais de 10.900Km (6800 milhas) e mais de 20 horas entre vôo e conexão, cheguei à linda Seattle!

 


 

O primeiro evento, que participei de domingo à terça-feira foi o Microsoft MVP Summit, um evento que os MVPs (Microsoft Most Valuable Professional) do mundo inteiro se reunem no Quartel General da Microsoft, em Redmond (área da grande Seattle), para discutir sobre as novidades dos produtos e futuros lançamentos, como também dar feedback sobre o que a comunidade local que participamos gostam ou não nos produtos. Esta interação com o time de engenheiros que desenvolve o produto que usamos é incrível, mas temos um contrato de confidencialidade para não dizer absolutamente nada sobre o que é conversado ou mostrado pelo time de produto durante estas conversas ou apresentações. Neste evento também existe uma apresentação de projetos realizados por MVPs, chamado MVP Showcase. Tive o grande prazer de representar o Brasil juntamente com meus amigos Alexandre Tarifa (blog|twitter) e o Rodolfo Fadino (blog|twitter) apresentando o projeto de arquitetura de baixo custo e inteligência artificial que implementamos aqui no escritório do Minha Vida. Veja abaixo algumas fotos e a apresentação que usamos no evento.

Placa de apresentação do projeto no MVP Showcase

 

Da esquerda pra direita: Diego Nogare, Alexandre Tarifa e Rodolfo Fadino

Slides da Apresentação

 


Nos dias seguintes, de quarta a sexta-feira, estive no Seattle Convention Center no centro da cidade. Diferente do MVP Summit, o PASS Summit é aberto ao público. Qualquer pessoa pode comprar o ingresso para participar. Neste evento eu fiquei focado em participar de palestras de Big Data e Business Intelligence, tem muita coisa bacana vindo aí nas áreas de PowerBI e Machine Learning. Vou me aprofundar mais nestas duas tecnologias porque fiquei impressionado! Em paralelo às palestras, participei de algumas atividades como ficar no Community Zone pra receber e tirar duvidas de Brasileiros que foram pro evento a primeira vez, participar da reunião dos Regional Mentors, ajudar na sessão sobre comunidades da Jes Borland (blog|twitter) e do Kendal Van Dyke (blog|twitter) e por fim participar do PASS TV novamente. Veja abaixo algumas fotos e o vídeo da minha participação.

Community Zone no PASS Summit 2014 (não sei quem bateu a foto)

Placa de identificação na Sessão de Comunidades

 

Aparição no PASS TV (a partir de 12m e 20s)


Pra fechar esta experiência, fica o convite pra você ir ao PASS Summit do próximo ano, já está confirmada a data para 27 a 30/outubro/2015 novamente em Seattle/WA . É um investimento que vale muito a pena, não só pelo conteúdo, mas pelo network fantástico que você faz durante estes 3 dias de imersão com os principais nomes do SQL Server mundial.

Eae, topa se juntar a nós e aumentar a quantidade de Brasileiros no PASS no próximo ano??

4  

Entendendo BigData Através da Plataforma Microsoft

Fala galera, como havia anunciado aqui, no dia 09/Outubro às 12h00 fiz uma apresentação para o MVP ShowCast que foi gravada e está disponibiliada. Para quem não pode assistir ao vivo, aqui está disponível o PPT criado e também o vídeo que foi gravado.

Nesta apresentação mostrei como criar e iniciar projetos de Big Data com a plataforma Azure da Microsoft, através do HDInsight. Falamos sobre o conceito, algumas áreas de aplicação e por fim mostramos como processar uma pequena quantidade de dados com o Hadoop e Hive.

Apresentação

Vídeo

Bons estudos!

1  

O dia a dia do Cientista de Dados

Fala galera, como havia anunciado aqui, no dia 06/Outubro às 20h00 fiz uma apresentação para o MVP ShowCast que foi gravada e está disponibiliada. Para quem não pode assistir ao vivo, aqui está disponível o PPT criado e também o vídeo que foi gravado.

Nesta apresentação mostrei a minha forma de ver esta nova profissão, e como você pode se capacitar pra entrar neste mercado. É algo novo, mas com muita propensão a ser uma das principais profissões dos próximos anos. Então, levante as mangas e mãos à obra!

Apresentação

 

Vídeo

Bons estudos!

0  

Vídeo da minha palestra no CONABI – 1º Congresso Nacional Online de Business Intelligence

Fala galera, no mês passado fiz uma palestra para o CONABI1º Congresso Nacional Online de Business Intelligence, com o tema “5 Passos para Você Tomar Melhores Decisões Usando as Ferramentas Corretas“. Para quem interessar, segue o PPT e o vídeo da palestra:

Bons estudos!

0