Prezi

Share this prezi

Who can edit:

Present Online

Send the link below via email or IM to invite your audience

Copy

Start the presentation

Start presenting

  • Invited audience will follow you as you navigate and present
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can view together your prezi
  • Learn more about this feature in the manual

Download prezi for:

Present offline on a PC or Mac.

  • Embedded YouTube videos need an active Internet connection to play.
  • Portable prezis are not editable.

Edit and present offline with Prezi Desktop

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.

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 26 September 2010

Comments (0)

Please log in to add your comment.

Report abuse

Prezi Transcript

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
See the full transcript