Controle de versão com Subversion

Posted by Alberto on May 19th, 2008

Há alguns meses atrás eu tive uma grande necessidade de organizar as versões de uma aplicação. Simplesmente porque a situação já não estava “legal”. O que quero dizer é que haviam arquivos e mais arquivos de backup, e no final das contas era praticamente impossível saber qual era a última versão que funcionava.

Uma forma de minimizar esses tipos de problemas é utilizar uma ferramenta de controle de versão. A ferramenta que venho utilizando chama-se SUBVERSION.

O que é um software de controle de versão? E, para que serve? (Wikipédia)

“Um sistema de controle de versão é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões – histórico e desenvolvimento – dos códigos-fontes e também da documentação.”

Antes de ver como utilizar a ferramenta, vamos ver alguns conceitos importantes:

  • Repositório: Local onde o(s) projeto(s) será(ão) armazenado(s).
  • Trunk: Diretório onde se encontrará o projeto em fase de desenvolvimento (Dia a dia). O desenvolvimento do projeto começa aqui dentro.
  • Branch: Diretório destinado às fases de testes. Vamos supor o seguinte cenário, enquanto a Equipe A trabalha no desenvolvimento de novas funcionalidades da versão 1.0 do projeto, a Equipe B já inicia alguns testes para adicionar na versão 2.0 do projeto. Este projeto é de grande importância. Tudo o que for feito como forma de testar algo, sem comprometer o projeto como um todo, deverá ser colocado dentro deste diretório.
  • Tags: Diretório destinado às releases do projeto. Sempre que novas funcionalidades são adicionadas ao projeto e/ou bugs são corrigidos novas versões surgem dentro do diretório TAGS.

Sempre que se cria uma nova release, todo o projeto que se encontra em trunk é copiado para tags. É legal saber que, os arquivos não são copiados literalmente sempre que uma nova release é lançada. O subversion controla os arquivos e copia apenas os arquivos que sofreram alterações, isto é, arquivos que não sofreram modificações são linkados internamente dentro da nova release, fazendo com que o número de arquivos repetidos dentro do seu repositório seja mínimo.
Read the rest of this entry »

Atenção, atenção: O Java vai acabar!

Posted by Alberto on March 3rd, 2008

Acalmem-se, o título deste post é proposital!

Tudo começou quando saiu essa notícia aqui. E, foi suficiente para começar uma “revolução” no GUJ.

É fato que JAVA não vai acabar pelo menos nos próximos anos. Há quem diz que sistemas em Java são legados, já que RoR está conquistando mercado, assim como .Net (arghh..=X) . Basta “surgir” um novo amor na vida das pessoas para que elas mudem de opinião da noite para o dia. Ruby, e RoR estão no mercado ai há anos e nunca fizeram tanto sucesso como hoje. Agora, como muitos falam por ai, que Java vai acabar por causa de RoR, .Net, PHP, etc.. não dá para acreditar!

Tem mercado para todas as linguagens! Afinal, Cobol, por exemplo, está na ativa até hoje.

Basta ler a matéria com atenção que você perceberá o marketing da plataforma .Net:

“A Microsoft, porém, fez da sua plataforma .Net um player sério no cenário corporativo. Um relatório da Info-Tech Research Group datado de novembro de 2007 apontou que .Net estava se tornando mais popular do que a plataforma Java nas empresas.”

Ah, tem essa aqui que saiu na MeioBit também:

“E o quinhão da Microsoft é enorme: 80% dos novos servidores sendo que a .Net Framework também está ganhando mais da metade da preferência no desenvolvimento de novas aplicações rodando em servidor. Isso mostra que a criação de compiladores para Python, Ruby e PHP podem servir, na verdade, para aumentar a oferta de mão de obra para as empresas. “

É até interessante ver essas “brigas” no mercado. Mas, ao ver é totalmente irrelevante, já que não interessa se você desenvolveu em cobol, pascal, java, ruby, php, .net…, se você agradou ao seu cliente e o software funciona bem, pouco importa a tecnologia utilizada.

Está “chegando” a hora!!

Posted by Alberto on March 3rd, 2008

Bem Pessoal,

é fato que minha ausência aqui no blog está um pouco acentuada, mas é por uma boa causa!!

Muito trabalho, muitos livros, organização do meu “curriculum vitae” para concorrer a uma vaga na pós-graduação da Universidade Federal. É bastante coisa sim, e está valendo MUITO a pena!

1º) O projeto cujo estava trabalhando nas horas vagas teve a programação concluída neste final de semana. Agora, estou no aguardo do envio do layout do sistema para concluir todo o projeto e hospedá-lo. (A logomarca já está finalizada e muito bacana). Quando ele estiver disponível onlin, postarei mais detalhes aqui no blog. Para os mais apressados, o projeto foi idealizado em Java, Hibernate + Annotations, Mentawai, mySQL.

2º) Após uma maratona para finalizar meu CV e enviar aos 47′ do 2º tempo - último dia de inscrição , recebi um email comunicando que fui selecionado para ingressar no curso de especialização (pós-graduação) em “Master in Business Intelligence” (Inteligência de Negócios). As aulas começarão ainda esta semana.

Entre uma correria e outra, sempre estou lendo algo. Estou terminando de ler “O monge e O Executivo: Uma história sobre a essência da Liderança “. Muito bom este livro, recomendo. Afinal, de vez enquando é bom fugir um pouco de livros técnicos (Minha lista de compras deste mês na Amazon já está feita, hehe =X)..

Por hoje é isso, gostaria de compartilhar com vocês um pouco sobre minha última semana e minha felicidade de ter sido selecionado para o curso de especialização.

Abraços!

Flame War

Posted by Alberto on February 21st, 2008

Para quem não sabe, “Flame War” é uma discussão entre duas ou mais pessoas, onde cada um defende o seu ponto de vista para o assunto em debate. Mas, geralmente, não se trata de uma discussão muito passiva. Muitas vezes os argumentos utilizados são ofensivos e exagerados, faltando pouco para todo mundo sair na porrada..

Na nossa área, chegamos a ser um tanto que extremistas quando o assunto é aquele que dominamos. Ou seja, é difícil alguém tentar mudar nossa forma de pensar. Tudo começa com uma simples discussão sobre determinando assunto, até que um troll começa a “colocar lenha na fogueira”. Seja para provocar alguns participantes ou, até mesmo, ofender. É mais ou menos como discutir religião, cada um tem a sua e vai defender até a morte.. :)
Particularmente, eu gosto de flame war - sem a parte de quase sair na porrada. É uma boa hora para discutir sobre determinadas tecnologias e estudarmos sobre os assuntos discutidos, além de aprender bastante coisa durante a discussão.

“O motivo para se praticar o flaming não tem fundo na dialética, mas sim fundo social ou psicológico. Muitas vezes, os flamers o fazem simplesmente para estabelecerem uma posição de pseudo-superioridade ou autoridade. Em outras, os flamers desejam simplesmente ofender e irritar participantes de uma discussão ou ainda alimentar animosidades entre duas ou mais pessoas participantes da discussão, e neste caso eles são denominados trolls. Há vezes em que o flamer encontra no flaming a única maneira de resolver as diferenças entre ele e alguma outra pessoa.” (Retirado do wikipédia - Flaming)

XML é tão ruim assim?

Posted by Alberto on January 15th, 2008

Durante alguns anos trabalhando com desenvolvimento, tenho observado que enquanto alguns desenvolvedores amam outros, literalmente, odeiam trabalhar com arquivos XML.

Não sou ‘tão extremista’ assim. Tá certo que XML não é uma das 7 maravilhas do mundo, mas acredito que existem casos e casos para se utilizar. Aqueles que odeiam alegam que ele é feio, lento e, às vezes, chato de se escrever.

Realmente, existem situações em que sua utilização deixa o parser lento. Vamos pensar no seguinte ambiente: Quando estamos trabalhando com o hibernate e temos um número elevado de tabelas mapeadas em arquivos xml o tempo de carga dele é maior do que se fosse utilizado annotations. Tá certo que esse tempo de “espera” é apenas na primeira execução do sistema. Eu sei. Apenas citei este exemplo que me veio a cabeça. ([OFF] Aproveitando o exemplo: O que você acha mais rápido: parsear um arquivo XML ou fazer reflection para acessar as annotations? Particularmente, prefiro mapear minhas classes com annotations )

XML, use com moderação e nos lugares certos!


Copyright © 2007 Alberto Leal. All rights reserved.