Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Ferramentas de Desenvolvimento Colaborativo

Esta apresentação discute os benefícios de utilizar um ambiente de desenvolvimento de software na nuvem para diminuir custos e aumentar a qualidade do software produzido.
by

Fabiane Nardon

on 22 June 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Ferramentas de Desenvolvimento Colaborativo

Ferramentas de Desenvolvimento Colaborativo:
Introduzindo Maven, Subversion, Git,
Hudson, Nexus e Redmine
no seu projeto. Quer mais?

www.toolscloud.com

@toolscloud Hudson Sistema de integração contínua open source. Principais características:
Permite controle de acesso por projeto
Suporta builds Maven, Ant, execução de script, etc
Avisa via email quando uma build quebra
Integração com Subversion, Git, Redmine e LDAP
Diversos plugins disponíveis
Excelente documentação Como utilizar o Hudson no seu projeto:
Crie uma nova build para o seu projeto
Defina de onde o código fonte será recuperado
Defina de quanto em quanto tempo a build deverá ser executada Principais conceitos:
Build: a execução de uma tarefa, pode ser uma compilação um script, etc
Broken build: uma build que não passou nos critérios de sucesso
Successful build: uma build que passou os critérios de sucesso Precisamos de você Carl.
_Eu_ preciso de voce! Pule! Obrigado, David.
Eu não sabia que você
se importava. Seu último commit
quebrou a build.
Arrume, e você está
livre pra pular. O Subversion é um sistema de
controle de versão open source, criado para
substituir o CVS, resolvendo vários de seus problemas Principais características:
Commits atômicos
Arquivos e diretórios quando renomeados ou movidos mantêm o histórico
Diff de binários
Servido via Apache HTTP
Tags e Branches são operações baratas
Lock de arquivos
Suporta controle de acesso por path
Integração com LDAP Principais problemas:
Diretórios .svn
Não guarda a data/hora da modificação dos arquivos, só as datas/horas dos commits
Possui problemas com nomes de arquivos com caracteres especiais, como acentos
Não possui histórico local na máquina do desenvolvedor Principais conceitos:
Checkout: operação que recupera o código do repositório central para a máquina do local do desenvolvedor
Import: operação de importar código no repositório remoto
Commit: operação de enviar uma atualização do código para o respositório remoto
Update: operação que recupera as últimas atualizações do repositório remoto para a máquina local
Revert: operação que reverte as alterações feitas localmente Principais conceitos:
Revision Number: cada alteração feita no repositório do Subversion possui um número de revisão
Commit comment: comentário que explica o que foi commitado
Hook: o Subversion permite que pequenos programas ou scripts sejam executados quando uma operação é feita. Por exemplo, pode-se colocar um hook para ser executado sempre que um commit for feito
trunk: é onde o código que está em trabalho é commitado
tags: marcações que nomeiam ou marcam uma certa revisão do Subversion
branch: uma revisão do subversion vira um branch e este branch pode ser modificado, criando efetivamente uma cópia do código original

* Observação: O SVN não faz distinção entre tags e branches. É apenas uma convenção Como importar o código para o Subversion:
Crie um diretório para o seu projeto com svn mkdir
Crie os diretórios seuProjeto/trunk, seuProjeto/tags e seuProjeto/branches
Adicione os seus arquivos e commite! O Nexus é um repositório de artefatos Maven open source Principais características:
Armazena tanto snapshots quanto releases
Faz cache de repositórios remotos
Permite configurar onde procurar cada artefato
Guarda artefatos no file system, o que facilita backup e evita corrompimento da base Principais conceitos:
Snapshot Repository: repositório que contém apenas snapshots
Release Repository: repositório que contém apenas releases
Repository Group: grupo que vários repositórios. Facilita o gerenciamento, pois permite que um usuário aponte apenas para um grupo e o gestor do repositório adicione novos repositórios no grupo conforme necessário Como usar o Nexus no seu projeto:
Modifique o seu settings.xml (ou pom.xml, se preferir) de forma que ele aponte para o repositório do Nexus
Configure o POM.xml do seu projet para que o deployment dos seus artefatos seja feito no Nexus Principais características:
Permite a criação de projetos e subprojetos
Integrado com LDAP
Controle de Acesso sofisticado
Vários tipos de pendência, configuráveis
Workflow configurável
Wiki integrada
Fórum integrada
Diversos plugins
Integração com sistemas de controle de versão
Controle de horas gastas e gestão do projeto Sistema de Gestão de Pendências open source, feito em Ruby. Redmine Como utilizar o Redmine no seu projeto:
Crie um projeto no Redmine
Dê as permissões necessárias
Integre com o repositório de código fonte
Abra pendências, delegue pendências e controle o seu projeto! Principais conceitos:
Issue: uma pendência, que pode ser um bug, uma tarefa, uma nova funcionalidade
Open: pendência não resolvida
Fixed: pendência resolvida
Closed: pendência resolvida e verificada Como utilizar o GIT no seu projeto:
Se você já usa o SVN, pode migrar usando o git-svn
Se você não usa, crie um clone do repositório remoto e adicione o seu código! Principais conceitos:
Branch local: branch na máquina do desenvolvedor
Branch remoto: branch no servidor remoto
clone: um clone do repositório, mais ou menos o equivalente ao checkout do SVN
pull: recupera as modificações do repositório
push: manda as modificações para o repositório Principais características:
Cada máquina local tem o seu repositório
Muito simples fazer operações de merge e criar branches Sistema de controle de versão open source e distribuído GIT Vamos usar o Jira
para nossa lista de
tarefas de casa! Você e seus
computadores!
Isso parece bem
difícil. bug-319
Limpar Garagem
está 239 dias
atrasado... ... eu tenho
relatórios! http://zachgoldberg.com/2010/08/12/help-my-girlfriend-learned-how-to-use-a-bug-tracker/ Um ano depois... Maven Ferramenta de build open source que é capaz de gerar vários tipos de artefatos. Artefatos são distribuíveis gerados pelo projeto: jar, war, zip, doc, etc Principais conceitos:
POM: arquivo xml que contém as definições do projeto, que dependências possui, etc
Dependência: bibliotecas utilizadas pelo projeto
.m2: diretório que no home do usuário utilizado pelo Maven para guardar cópia local das dependências
.m2/settings.xml: arquivo que contém as configurações do usuário
Snapshot: uma versão de trabalho, que terá diversas versões intermediárias
Release: uma versão concluída. Só pode existir uma determinada release por módulo Principais características:
Define uma estrutura de diretórios padronizada
É capaz de gerar diversos artefatos: jar, war, exe, zip
Executa testes unitários
Gera documentação e site do projeto
Faz gestão de dependências
Possui inúmeros plugins Principais comandos:
install: compila, executa testes, gera artefatos e os coloca no .m2
clean: limpa o target, diretório onde são colocados os arquivos gerados
deploy: envia o artefato para o repositório remoto
<comando> -U: força a atualização das dependências
<comando> -o: executa offline Como usar o Maven no seu projeto:
Coloque seus arquivos na estrutura de diretórios padrão
Divida seu projeto em módulos da forma que for mais conveniente
Crie um pom.xml para cada módulo, configurando as dependências
Crie um pom.xml para o projeto, agregando os módulos 70% do tempo de
pequenas e
médias
empresas de desenvolvimento
de software é gasto
gerenciando recursos de TI Por que? Como? * Não se faz mais software como antigamente! Equipes distribuídas Teletrabalho Qualidade Desenvolvimento Ágil E você vai ficar de fora? Cloud
Computing Situação da implantação de controles sobre projetos Custo Inicial Servidor..........................................................................3.000,00
2 Discos externos para backup...............................1.000,00
RH Intalação servidores/SO....................................4.000,00
RH Estudar, instalar, configurar ferramentas...8.000,00
TOTAL............................................................................16.000,00 Custo Mensal Link com IP fixo.................................................................300,00
Link redundante com IP fixo.........................................300,00
RH manter servidores, backup, atualizar, ec.......2.000,00
Refrigeração, energia, manutenção............................300,00
TOTAL................................................................................2.900,00 Backup Conexão Elasticidade Confiabilidade Issue Tracker Repositório Código Fonte Integração Contínua Wiki/Fórum/IRC Single Sign on Repositório Bibliotecas Jira
Bugzilla
Trac
Mantis
Redmine Subversion
Git
Mercurial Hudson
Continuum
Bamboo
CruiseControl Nexus
Archiva
Artifactory
Sistema de arquivos LDAP Confluence
Redmine Wiki
Drone
Full transcript