Controle de versão  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Rodrigo Carvalho Auler
Virtual Machine Man

Membro desde: 14/02/2003 15:59:17
Mensagens: 576
Localização: Rio de Janeiro
Offline

Seguinte: temos uma aplicação web que desenvolvemos pra uma empresa e continuamos o desenvolvimento adicionando novas funcionalidades eternamente. Agora essa mesma aplicação vai ser usada por outra empresa e também vamos desenvolver novas funcionalidades especificas pra essa empresa. A questão é: qual a melhor forma de controlar as versões? Tem coisas que vão ser comuns pras duas empresas, e outras que vão ser específicas pra cada uma.

Já usamos CVS, mas como organizar isso?

Cria uma módulo pra cada empresa e pronto?
Cria um móculo com a "aplicação base" e outros dois pra cada empresa extendendo essa aplicação (não sei como eu faria isso)?
Cria um branch pra cada empresa?
Faz uma aplicação só e restringe o acesso por permissão de usuários e vários ifs?

Obs: cada empresa tem seu ambiente de produção, elas não vão acessar o mesmo servidor.

[]'s

Rodrigo C. A.
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Existem diversos padrões e problemas quanto a isso.

Utilizar uma base de código para cada impresa, fazendo itnegrações em código fonte, é uma péssima idéia, um ano vivie sse inferno.

Você pode criar uma aplicação altamente modular, e fazer com que o release de um cliente seja apenas um conjunto de módulos.

Bom texto:
http://bradapp.blogspot.com/2005/08/scm-design-smells.html

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
Rodrigo Carvalho Auler
Virtual Machine Man

Membro desde: 14/02/2003 15:59:17
Mensagens: 576
Localização: Rio de Janeiro
Offline

pcalcado wrote:Existem diversos padrões e problemas quanto a isso.

Quais padrões?

pcalcado wrote:Você pode criar uma aplicação altamente modular, e fazer com que o release de um cliente seja apenas um conjunto de módulos.

Eu adoraria fazer isso. Mas até hoje não encontrei uma maneira decente de fazer isso numa aplicação web. Onde colocar os jars, os JSPs, templates e etc de cada módulo sem ter que misturar os módulos?

[]'s

Rodrigo C. A.
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Se são funcionalidades específicas (que não fazem parte da aplicação como um todo) não tem porque ficar na aplicação genérica. Modularize a aplicação e adicione esses novos módulos conforme o necessário.

Na verdade, é possível que todas as aplicações tenham "todas" as funcionalidades, basta desenvolver um mecanismo de ativação/desativação delas (talvez uma simples configuração ou mapeamento possa ser utilizada).

Outra coisa, nada de .jar no SCM, use o Maven pra lidar com isso: http://maven.apache.org/

Use o Maven pra gerenciar todo o projeto

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Rodrigo Carvalho Auler wrote:
Eu adoraria fazer isso. Mas até hoje não encontrei uma maneira decente de fazer isso numa aplicação web. Onde colocar os jars, os JSPs, templates e etc de cada módulo sem ter que misturar os módulos?


Quite simple:

POJO: regra de negócio
DAO: Acesso a dados, pode ser customizado pelo cliente (aquelas convenções bizarras de nomenclatura)
JSP: Só a skin do cliente

Separe seus POJOs em componentes organizados pela funcionalidade, misture o uso de interfaces para uma camada se comunicar com a outra, bata com algumas factories ou um container IoC. Misture possibilidade de escrever scripts em Groovy a gosto.

Parece brincadeira (e é ) mas a idéia é essa. Coloque suas regras de negócio em componentes formados por POJOs e considere o usod e um container IoC.

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team