SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Porque todo programador deve usar Sistema
          de Controle de Versão?


              Marco Rosner
                  IFAL
Quem sou?
Marco Rosner

- Graduado em Sistemas de
Informação pelo IFAL
- Técnico em Administração e
Projeto de Redes pelo
CET/IFAL
- Analista e desenvolvedor do
SAEO
- Desenvolvedor do Brisa
- Organizador do Debian
Festival
Quem já participou
 de um projeto?
Auto-avaliação

1 – Alguém já sobrescreveu o código de
alguma outra pessoa?

2 – Você sabe quem e em que momento
qualquer parte do sistema foi alterado?

3 – É difícil compartilhar o código fonte com
todos da equipe?
Então, você...
Seu chefe...
Bate o desespero!
Mas o que é Sistema de Controle
       de Versão (SCV)?
Qual a importância?

- Compartilhamento de documentos e
versionamento deles
- Permitir trabalho em paralelo e controlar as
modificações
- Facilidade de aplicar manutenção e gerenciar
a qualidade
- Possibilidade de trabalhar em equipe (e
agregar mais pessoas a equipe)
Onde se aplica?



- Wikis (Foswiki, Twiki, Wikipedia...)
- Processadores de texto (Google Docs...)
- CMS (Joomla!, Drupal, Mambo, Plone...)
- Projetos de softwares
- Documentação de software
Quem usa?
Conceitos fundamentais




- Repositório

- Cópia de trabalho (Working copy)
Conceitos fundamentais

- Estratégias de compartilhamento
de arquivos

  - Solução 1: Lock-Modify-Unlock
    ●   Lock pode causar problemas administrativos
    ●   Locking pode causar serialização desnecessária




  - Solução 2: Copy-Modify-Merge
Conceitos fundamentais


- Revisões
  ●   calc/Makefile:2
           integer.c:2
           button.c:3


- Revisões Mistas
  ●   Atualizações e Submissões são separadas.
Conceitos fundamentais
              (Terminologia)
- Check out/Clone
   ●   Cria uma CT do repositório*
- Update
   ●   Atualiza uma CT com a última versão do repositório
- Commit
   ●   Ato de submeter as alterações feitas na CT para o repositório
- Branch
   ●   Conjunto de arquivos separados do mainstream do projeto para
       ser trabalhado separadamente.
- Trunk
   ●   Linha principal de trabalho do projeto
Quando utilizar sistema
           centralizado?



- Desenvolvimento local
- Equipe pouco numerosa
- Projetos de pequeno e médio porte
- Necessidade de maior controle da codificação
Quando utilizar sistema
           distribuído?


- Desenvolvimento distribuído
- Equipe muito numerosa
- Projetos de grande porte
- Necessidade de dividir a equipe em sub-
equipes
Dúvidas?



Sugestões?


 Elogios?
Obrigado!




    Marco Rosner
marco.rosner@gmail.com

Contenu connexe

Tendances

Tendances (10)

Processos e threads - trabalho redes 10ºano
Processos e threads - trabalho redes 10ºanoProcessos e threads - trabalho redes 10ºano
Processos e threads - trabalho redes 10ºano
 
Zabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres DockerZabbix, Grafana e os conteineres Docker
Zabbix, Grafana e os conteineres Docker
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e Docker
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Modelo de falhas
Modelo de falhasModelo de falhas
Modelo de falhas
 
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no LinuxFLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
 
Palestra sobre git ministrada no BH-Tech Talks
Palestra sobre git ministrada no BH-Tech TalksPalestra sobre git ministrada no BH-Tech Talks
Palestra sobre git ministrada no BH-Tech Talks
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
 

Similaire à Porque todo programador deve utilizar Sistema de Controle de Versão?

Similaire à Porque todo programador deve utilizar Sistema de Controle de Versão? (20)

Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de Versão
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - Bemobi
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Apres git geinfo2012
Apres git geinfo2012Apres git geinfo2012
Apres git geinfo2012
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no Nubank
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Controle de versões com o Subversion
Controle de versões com o SubversionControle de versões com o Subversion
Controle de versões com o Subversion
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.com
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações Web
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 

Plus de Marco Rosner

Plus de Marco Rosner (6)

Data Driven Product Development
Data Driven Product DevelopmentData Driven Product Development
Data Driven Product Development
 
Apresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração PúblicaApresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração Pública
 
[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão
 
PHP Road Show - Aplicando Orientação a Objetos no SAEO
PHP Road Show - Aplicando Orientação a Objetos no SAEOPHP Road Show - Aplicando Orientação a Objetos no SAEO
PHP Road Show - Aplicando Orientação a Objetos no SAEO
 
GuBRo - Como botar a mão na massa
GuBRo - Como botar a mão na massaGuBRo - Como botar a mão na massa
GuBRo - Como botar a mão na massa
 
Gerenciamento De Qualidade Do Projeto
Gerenciamento De Qualidade Do ProjetoGerenciamento De Qualidade Do Projeto
Gerenciamento De Qualidade Do Projeto
 

Dernier

A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Dernier (20)

LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 

Porque todo programador deve utilizar Sistema de Controle de Versão?

  • 1. Porque todo programador deve usar Sistema de Controle de Versão? Marco Rosner IFAL
  • 2. Quem sou? Marco Rosner - Graduado em Sistemas de Informação pelo IFAL - Técnico em Administração e Projeto de Redes pelo CET/IFAL - Analista e desenvolvedor do SAEO - Desenvolvedor do Brisa - Organizador do Debian Festival
  • 3. Quem já participou de um projeto?
  • 4. Auto-avaliação 1 – Alguém já sobrescreveu o código de alguma outra pessoa? 2 – Você sabe quem e em que momento qualquer parte do sistema foi alterado? 3 – É difícil compartilhar o código fonte com todos da equipe?
  • 8. Mas o que é Sistema de Controle de Versão (SCV)?
  • 9. Qual a importância? - Compartilhamento de documentos e versionamento deles - Permitir trabalho em paralelo e controlar as modificações - Facilidade de aplicar manutenção e gerenciar a qualidade - Possibilidade de trabalhar em equipe (e agregar mais pessoas a equipe)
  • 10. Onde se aplica? - Wikis (Foswiki, Twiki, Wikipedia...) - Processadores de texto (Google Docs...) - CMS (Joomla!, Drupal, Mambo, Plone...) - Projetos de softwares - Documentação de software
  • 12. Conceitos fundamentais - Repositório - Cópia de trabalho (Working copy)
  • 13. Conceitos fundamentais - Estratégias de compartilhamento de arquivos - Solução 1: Lock-Modify-Unlock ● Lock pode causar problemas administrativos ● Locking pode causar serialização desnecessária - Solução 2: Copy-Modify-Merge
  • 14. Conceitos fundamentais - Revisões ● calc/Makefile:2 integer.c:2 button.c:3 - Revisões Mistas ● Atualizações e Submissões são separadas.
  • 15. Conceitos fundamentais (Terminologia) - Check out/Clone ● Cria uma CT do repositório* - Update ● Atualiza uma CT com a última versão do repositório - Commit ● Ato de submeter as alterações feitas na CT para o repositório - Branch ● Conjunto de arquivos separados do mainstream do projeto para ser trabalhado separadamente. - Trunk ● Linha principal de trabalho do projeto
  • 16. Quando utilizar sistema centralizado? - Desenvolvimento local - Equipe pouco numerosa - Projetos de pequeno e médio porte - Necessidade de maior controle da codificação
  • 17. Quando utilizar sistema distribuído? - Desenvolvimento distribuído - Equipe muito numerosa - Projetos de grande porte - Necessidade de dividir a equipe em sub- equipes
  • 19. Obrigado! Marco Rosner marco.rosner@gmail.com