Sistemas de Controle de Versão
Nesse artigo é apresentada uma introdução aos Sistemas de Controle de Versão: O que é, qual a importância, como funciona e quais principais ferramentas disponíveis.
Um sistema de controle de versões oferece mecanismos para que se gerencie as modificações realizadas em um determinado arquivo ou conjunto de arquivos ao longo do tempo, de forma que cada versão seja recuperável e que as mudanças realizadas sejam mapeáveis. Sistemas de Controle de versão são compatíveis com praticamente todo tipo de arquivo digital, portanto pode ser utilizado para gerenciar arquivos de projetos de diversas áreas.
Para o Desenvolvimento de Software especialmente, controlar e sincronizar a produção de código fonte é um desafio recorrente que se amplia quando se trata de um trabalho de grande escala, que envolva diversos profissionais. Daí a necessidade de se utilizar esse tipo de ferramenta, pois um sistema de controle de versão oferece meios para que se possa acompanhar o histórico de criação dos códigos fonte, permite que o software seja construído por equipes geograficamente distribuídas, além da vantagem de poder gerar versões customizadas dos produtos de software sem alterar a versão principal.
Tais sistemas funcionam basicamente da seguinte forma: um servidor armazena os arquivos do projeto, junto com o histórico de versões. Os desenvolvedores autenticados podem acessá-los e fazer cópias locais da última versão disponível, sobre a qual trabalharão. Feitas as modificações, os arquivos de cada desenvolvedor devem ser novamente enviados ao servidor e os mecanismos do sistema se encarregam de realizar a união e sincronização de cada variante do arquivo enviada pelos envolvidos, gerando uma versão mais atualizada.
Existem diversas ferramentas disponíveis no mercado. Entre as principais soluções em software livre estão CVS, Mercurial, Git e SVN (Subversion). As soluções proprietárias mais evidentes são SourceSafe, TFS, PVCS (Serena) e ClearCase. De todas, a mais proeminente atualmente é o Git, com repositório GitHub. Diversos fatores devem ser levados em consideração ao escolher a melhor ferramentas, entre elas a garantia de segurança e desempenho.
Reiterando, controle de versão soluciona vários problemas inerentes ao processo de desenvolvimento de software, sendo uma prática comprovadamente eficaz. É tão evidente a vantagem da utilização de sistemas de controle de versão para processos de software que é uma dos requisitos em modelos de referência como o CMMI (Capability Maturity Model Integration ou Modelo Integrado de Maturidade em Capacitação), que contém práticas necessárias à melhoria corporativa relacionada à Engenharia de Software.
Fontes:
https://git-scm.com/book/pt-br/v1/Primeiros-passos-Sobre-Controle-de-Versão
https://www.devmedia.com.br/sistema-de-controle-de-versao-em-projetos-web/31876
https://www.devmedia.com.br/sistemas-de-controle-de-versao/24574
https://blog.pronus.io/posts/conceitos-basicos-de-controle-de-versao-de-software-centralizado-e-distribuido/
https://blog.pronus.io/posts/qual-a-melhor-ferramenta-de-controle-de-versao-subversion-git-ou-mercurial/
Para o Desenvolvimento de Software especialmente, controlar e sincronizar a produção de código fonte é um desafio recorrente que se amplia quando se trata de um trabalho de grande escala, que envolva diversos profissionais. Daí a necessidade de se utilizar esse tipo de ferramenta, pois um sistema de controle de versão oferece meios para que se possa acompanhar o histórico de criação dos códigos fonte, permite que o software seja construído por equipes geograficamente distribuídas, além da vantagem de poder gerar versões customizadas dos produtos de software sem alterar a versão principal.
Imagem: brasilprodutivo.com.br
Tais sistemas funcionam basicamente da seguinte forma: um servidor armazena os arquivos do projeto, junto com o histórico de versões. Os desenvolvedores autenticados podem acessá-los e fazer cópias locais da última versão disponível, sobre a qual trabalharão. Feitas as modificações, os arquivos de cada desenvolvedor devem ser novamente enviados ao servidor e os mecanismos do sistema se encarregam de realizar a união e sincronização de cada variante do arquivo enviada pelos envolvidos, gerando uma versão mais atualizada.
Imagem: devmedia.com.br
Existem diversas ferramentas disponíveis no mercado. Entre as principais soluções em software livre estão CVS, Mercurial, Git e SVN (Subversion). As soluções proprietárias mais evidentes são SourceSafe, TFS, PVCS (Serena) e ClearCase. De todas, a mais proeminente atualmente é o Git, com repositório GitHub. Diversos fatores devem ser levados em consideração ao escolher a melhor ferramentas, entre elas a garantia de segurança e desempenho.
Imagem: tribodoci.net
Reiterando, controle de versão soluciona vários problemas inerentes ao processo de desenvolvimento de software, sendo uma prática comprovadamente eficaz. É tão evidente a vantagem da utilização de sistemas de controle de versão para processos de software que é uma dos requisitos em modelos de referência como o CMMI (Capability Maturity Model Integration ou Modelo Integrado de Maturidade em Capacitação), que contém práticas necessárias à melhoria corporativa relacionada à Engenharia de Software.
Fontes:
https://git-scm.com/book/pt-br/v1/Primeiros-passos-Sobre-Controle-de-Versão
https://www.devmedia.com.br/sistema-de-controle-de-versao-em-projetos-web/31876
https://www.devmedia.com.br/sistemas-de-controle-de-versao/24574
https://blog.pronus.io/posts/conceitos-basicos-de-controle-de-versao-de-software-centralizado-e-distribuido/
https://blog.pronus.io/posts/qual-a-melhor-ferramenta-de-controle-de-versao-subversion-git-ou-mercurial/
Parabéns pelo artigo, gostei do tema que escolheram. Espero aprender muito com as publicações de vocês e um ponto importante que vocês citaram é que possuem diversos fatores que realmente devem ser levados em conta ao escolher a melhor ferramenta. Acho que não só a garantia de segurança e desempenho, como também o tipo de arquitetura utilizada, como centralizada ou distribuída; se é free ou open e, inclusive, se oferece consistência no seu uso.
ResponderExcluirObrigada! Esperamos ao longo do tempo, fornecer o máximo possível de conteúdo relevante sobre o assunto. :)
ExcluirUma ótima introdução sobre sistemas de controle de versão :)
ResponderExcluirMuito clara e concisa.
Como a grande maioria trabalha com git, deixo como recomendação o curso do Willian Justen que me fez entender de vez como funcionava essa questão de branches, commits, pulls e pushes que nos assustam de vez em quando kkk.
https://willianjusten.com.br/novo-curso-de-git-e-github-para-iniciantes/
Obs: o curso é gratuito!
ótimo post sobre sistema de versão, sistema de versão é de extrema importância no desenvolvimento de sistemas tendo em vista a necessidade de se controlar o que foi mudado em funcionalidade e nas releases a serem entregues ao usuário em engenharia de software o controle de versão é um dos pilares.
ResponderExcluirParabéns pelo posto realente um controle de versão é importante em engenharia de software para que as modificações feitas tenham acompanhamento e que sejam controladas pelas equipes afim de que não ajam discrepâncias na implementação do código.
ResponderExcluir