Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 


 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Formação de Analistas de Negócios

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

O que tem de tão legal em usar um DVCS?

Colaboração: Raphael Lullis

Data de Publicação: 15 de Julho de 2008

Esse não é um texto para falar sobre as vantagens técnicas de usar sistemas distribuídos de versão (Distributed Version Control System - DVCS) como o Git, Darcs ou Mercurial. Já existe muito material que você pode encontrar por aí, como por exemplo uma apresentação em vídeo do próprio Linus Torvalds sobre o Git e suas vantagens. O que eu quero é justamente comentar sobre os princípios que levaram Torvalds a desenvolver um sistema completamente novo. De acordo com Linus, sistemas distribuídos não são melhores por questões tecnológicas ou de engenharia avançada, mas são melhores por princípios da arquitetura: Com sistemas centralizados , diz ele, o desenvolvedor tem que lidar com questões que podem se tornar problemas políticos - saber quem pode ter acesso ao sistema; quem pode ter acesso de escrita; quem vai ser o responsável por determinados subsistemas, etc. Em sistemas distribuídos, isso não acontece. Cada desenvolvedor é dono do seu próprio repositório e decide livremente de quem ele irá puxar suas alterações. Não existe um repositório canônico, oficial. O meu repositório de código é tão bom quanto o dos desenvolvedores que estão trabalhando em repositórios de quem eu colaboro.

Uma outra questão - fundamentalmente importante - é a questão da confiança. Diz Torvalds: Eu não preciso mais ficar verificando a qualidade de cada patch que entra na minha árvore de código. Eu posso puxar qualquer coisa que venha da árvore de Andrew Morton (desenvolvedor principal da versão 2.6 do kernel do Linux) sem medo de causar prejuízo em meu código, pois eu confio em Andrew.

Esse é um argumento estranho, mas muito poderoso: nós podemos confiar em uma, duas, dez pessoas. Mas não podemos confiar em centenas ou milhares de pessoas. Confiança não é escalável. Podemos até confiar em alguém desconhecido indiretamente (o amigo do meu amigo ) mas esse critério não resiste por muitas iterações. É esse o ponto que torna sistemas que se baseiam em arquiteturas distribuídas melhores.

Não importa o quão superior ou madura seja a implementação de um sistema centralizado, ele jamais terá trabalhe apenas com as pessoas em que você confia como uma feature. É impossível obter isso em um sistema centralizado, por design. A killer feature de um DVCS é a possibilidade de gerenciar seus projetos usando o seu grau de confiança nas pessoas.

Raphael Lullis é Engenheiro de Computação, trabalha atualmente com desenvolvimento web com Python e escreve para o blog Log4Dev

Veja a relação completa dos artigos de Raphael Lullis

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (155 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

Murilo Fujita
15 Jul 2008, 10:01
Texto altamente informativo.
Obrigado por compartilhar. :-)
Marcello Henrique
07 Jul 2008, 14:35
Óla Raphael,

A partir de um transcript sincronizei a legenda em inglês da palestra que mencionou sobre o git por Linus Torvalds, e estamos trabalhando na versão em pt-br, vide meu blog: http://faraohh.blogspot.com/2008/03/legenda-em-ingls-da-palestra-do-linus.html

Abraços.
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

Certificação Linux
Por Uira Ribeiro

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Redes de Computadores
Por Andrew S. Tanembaum

O Segredo
Por Rhonda Byrne

Redes de Computadores e a Internet
Por James F. Kurose e Keith W. Ross

MySQL - Guia do Programador
Por André Milani

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

Casais Inteligentes Enriquecem Juntos
Por Gustavo Cerbasi

Redes de Computadores: Curso Completo
Por Gabriel Torres

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Utilizando UML e Padrões
Por CRAIG LARMAN

Deus, um delírio
Por Richard Dawkins

Einstein : Sua Vida, Seu Universo
Por Walter Isaacson