• Onde (e como) hospedar repositórios Git?

    Logotipo do Git
    Logotipo do Git

    Se você leu o meu último post sobre o Git, já deve ter percebido que o Git é um sistema muito poderoso e que facilita o trabalho em equipe ao fornecer recursos para facilitar isso, como branches e registro do autor de cada commit. No mesmo post, eu ainda apresentei o fato que torna o Git distribuído: A possibilidade de usar qualquer repositório git em um computador remoto para sincronizar o conteúdo do seu repositório local, e como isso poderia permitir o uso do git como um sistema P2P.

    Pois bem, é verdade que é possível usar o Git como um sistema P2P, mas isso não é muito prático, pois o não implementa uma forma de "consenso" nesse estilo de requisição, ou seja, você pode sincronizar repositórios Git entre duas máquinas (como entre o seu computador e um servidor, por exemplo), tranquilamente, mas se o número de máquinas é maior que dois, a situação começa a complicar.

    Devido a isso, é comum o uso do Git com sistemas de hospedagem de repositórios, que funcionam como uma "central" no qual os repositórios são armazenados (servindo também como backup, portanto) e que serve como meio de sincronização entre 2 ou mais máquinas possuindo um determinado repositório Git. E hoje, vou falar um pouco sobre as variadas opções que temos disponíveis, e ensinar como integrá-las com o seu repositório git feito no post anterior.

    (mais…)
  • Git - Sistema de controle de versões distribuído

    Logotipo do Git
    Logotipo do Git

    Se você trabalha com desenvolvimento e não registra as alterações feitas no seu projeto, você está praticamente perdido. O que fazer se uma alteração for enviada para produção e der algum erro? Tira tudo do ar? Restaura um backup? Da mesma forma, como descobrir quem fez essa alteração - no caso de você trabalhar em uma equipe de 5, 10, 20 pessoas? - e ainda, como separar o trabalho de cada um de tal forma que seja possível criar vários recursos novos para um mesmo projeto, paralelamente, juntando todas as alterações no final, sem necessitar do uso de pendrives para copiar arquivos para lá e para cá? Bom, é com o objetivo de facilitar todas essas tarefas que hoje eu vou falar um pouco (e apresentar um breve tutorial) sobre o Git, um poderoso sistema de controle de versões distribuído.

    (mais…)
  • Falando um pouco sobre custos e a "melhor solução" para tudo

    E aí, que decisão tomar?No desenvolvimento de aplicações, sites, e tudo o mais, é comum lidar com muito material falando sobre performance. "Vamos fazer desta forma porque vai economizar 10ms do carregamento da página", "vamos usar essa plataforma pois vai permitir que a gente escale de 1 a 1000 servidores em 10 segundos", "vamos utilizar essa linguagem porque ela é assíncrona e vai permitir atender picos muito rapidamente". São muitas as escolhas que você realmente pode e na verdade deve fazer durante o desenvolvimento, mas, ao mesmo tempo que todo mundo fala dos pontos positivos, é raro você ver alguém falando sobre os custos e sobre as eventuais dificuldades que você vai enfrentar. E é sobre isso que eu vou falar um pouco hoje.

    (mais…)

  • SGBDs - O que são, o que fazem e alguns fatos importantes sobre eles

    você sabe qual a importância dos SGDBs em relação aos seus dados?

    Praticamente toda aplicação criada hoje precisa armazenar informações de algum jeito. Entretanto, lidar com armazenamento de informações não é algo exatamente simples, pois é necessário tratar inúmeros problemas, como modificação concorrente de dados, criação de índices para realização de consultas mais eficiente, leitura dos dados no disco de maneira eficiente, compressão de dados (em alguns casos), cache das consultas para consultas muito frequentes, e também garantir que só para citar alguns dos casos de uso.  Hoje, apresentaremos alguns exemplos de SGBDs, o que são, numa definição mais precisa, e alguns exemplos que você pode encontrar facilmente na web e dos quais falaremos mais em outros posts aqui no blog.

    (mais…)
  • Docker - O que é, o que não é, e alguns detalhes a mais

    Logotipo do Docker

    No último post, eu falei um pouco sobre o Vagrant,  que é uma ferramenta que permite criar e distribuir máquinas virtuais voltadas especificadamente para desenvolvimento de software. Pois bem, quem já é mais antenado nas últimas novidades, ao ler o último post, deve ter pensado algo como "nossa, mas já temos o Docker, e containers são muito melhores que máquinas virtuais!!!!!". E bem, na verdade, tempos atrás, eu mesmo teria dito o mesmo sobre quem ousasse comentar sobre Vagrant, máquinas virtuais e tal. Por isso, hoje, vou falar sobre o Docker, o que ele faz, o que ele não faz, seus recursos, uma breve comparação com o Vagrant e todo o contexto das máquinas virtuais e também um breve tutorial de uso.

    (mais…)