| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2005 09:21:48
|
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.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2005 09:30:10
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2005 12:33:54
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2005 12:39:53
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2005 14:43:16
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
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 |
|
|
 |
|
|