Estrutura Procedural não é melhor para sistemas Empresarias  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Vi alguns tópicos recentemente aqui no GUJ. E vou continuar um assunto polemico. OO X Procedural.

Vejo inúmeros conceitos usados para o desenvolvimento OO e vejo que muitas coisas se contradizem.
Será que para sistemas empresariais não seria melhor adotar uma estrutura "procedural" ?
Porque o que temos realmente não saõ objetos, mas sim casos de uso que pra mim não passam de procedimentos.

ex:
cadastrar funcionário.

fica estranho pensar
funcionario.codigo = 1
funcionario.nome = "Maria";
funcionario.cadastre-se();

não seria melhor:

cadastrarFuncionario(1,"Maria")

simboliza a ação (caso de uso) de cadastrar um funcionário.

Não sei se fui bem claro...

O bom menino !!!
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

E se você precisa exibir os dados na tela?



Ou seria melhor?



Ainda quer pensar proceduralmente?

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
ranophoenix
JavaEvangelist
[Avatar]

Membro desde: 28/02/2004 22:49:47
Mensagens: 389
Offline

Concordo plenamente com vc Daniel. Programando de forma procedural vc programa 1 linha para o que vc quer q o programa faça e 30 linhas para o que quer q ele não faça.É +/- assim!
skill_ufmt
JavaEvangelist
[Avatar]

Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline

jprogrammer wrote:Vi alguns tópicos recentemente aqui no GUJ. E vou continuar um assunto polemico. OO X Procedural.


acho que a maioria são meus hehehe

Mas enfim, procedimentos sempre existirão ou tu viu alguma máquina que não leia procedimentos?

O problema é como são tratados estes procedimentos, se realmente OO, se realemtne PE, ou se realmente OOR(TOO)...
E recentemente ainda tem POA

Disso nascerá o problema e as discussões, qual melhor? qual usar? porque?

Ao meu ver sempre é uma gambiarra para arrumar outra, assim como um certo SO´s : )

Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação

CUIABÁ JAVA USERS
www.cajumt.com.br
[WWW] aim icon [MSN] [ICQ]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Primeiro:
Será que realmente isso aí é OO ?
Segundo:
Qual a diferença entre ter uma collection de javabens e um resultset ?
Apenas os atributos do javabeans são verificados em complie time e de um resultset (ou outra coisa qualquer) seriam verificados em runtime.
e se eu quisesse apenas alguns campos e pior, se quisesse campos de várias entidades diferentes ?
Outra coisa: eu teria uma coisa qe apenas retornasse valores read-only, pois se trata de uma consulta.





O bom menino !!!
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Sobre o read-only, leia um ótimo artigo que colocaram o link aqui no Fórum, sobre encapsulamento de dados. Me clarificou muitas idéias. Além do pattern Memento.

E outra, eu falo de experiência própria. Programei muito em ASP usando ResultSet. É MUITO mais trabalho que usar JavaBeans. Muito código repetido, muito lugar pra dar manutenção, muito pior.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Você quer comparar com aquele RecordSet do ASP. Não tem comparação.
Eu programei muito em ASP também. Se for bem feito não fica tão ruim.
Programava baseado (não orientado) a objetos no ASP.
Tinha classes de acesso a dados que encapsulavam o modo de abertura dos benditos Recordsets.

Quando falo de resultset no java , pode ser qualquer tipo de coleção de registros não necessariamente o resultset do JDBC.

Gosto da estrutura dos bancos relacionais. Será que não ficaria interessante uma estrutura parecida, mais em nível de programa.
Com entidades, procedimentos e consultas. Não é basicamente isso que se resume um sistema.
Não confunda isso com sistemas data-driven. Não tem nada a ver com banco de dados, mas sim a organização das responsabilidades.

Entidades - Definição e Repositorio de dados
Procedimentos - Operações e funções
Consultas - Coleta de dados

Será que fui claro...

O bom menino !!!
skill_ufmt
JavaEvangelist
[Avatar]

Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline

e só pra constar mais uma das inúmeras técnicas, tem também a GOO

Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação

CUIABÁ JAVA USERS
www.cajumt.com.br
[WWW] aim icon [MSN] [ICQ]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Bom, não sou eu que to falando. Até acho que não tenho muito crédito. Mas as literaturas e os "especialistas" estão ai para dizer e "provar" as arquiteturas usadas, suas vantagens e desvantagens.

Sinceramente acho que esse modelo gera muita repetição de código e difícil manutenção (mexe em 30 mil pontos do programa)...

Quanto à sua última sugestão, acho que isso é muito feito com VO (TO), DAO,Bizz Delegates e blablablás...

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

jprogrammer wrote:
Gosto da estrutura dos bancos relacionais. Será que não ficaria interessante uma estrutura parecida, mais em nível de programa.
Com entidades, procedimentos e consultas. Não é basicamente isso que se resume um sistema.
Não confunda isso com sistemas data-driven. Não tem nada a ver com banco de dados, mas sim a organização das responsabilidades.


E por que não ter uma porção de objetos que colaboram entre si? Aproximar a modelagem do sistema de como as coisas acontecem realmente, ao invés de espalhar funções e procedimentos pra todo lado. Na hora de dar manutenção ou até mesmo extender o sistema, o que fica mais fácil: Sair 'caçando' toda a trilha de procedimentos e funções que determinada regra de negócio executa, ou partir dos objetos e suas responsabilidades?

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
skill_ufmt
JavaEvangelist
[Avatar]

Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline

PE

Dados independentes manipulados por funções independentes em locais independentes..

POO

Dados independentes manipulados por métodos dependentes e responsáveis obtendo independência...

hummm, com qual ficar?

Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação

CUIABÁ JAVA USERS
www.cajumt.com.br
[WWW] aim icon [MSN] [ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Programação procedural sofre do problema de separar dados de comportamento. Então voce acaba com uma pilha de structs e uma pilha de funções. Com OO dados e comportamento ficam no mesmo lugar, é mais facil de modificar e atualizar.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
jprogrammer
Virtual Machine Man
[Avatar]
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline

Realmente um grande trunfo do OO é a herança.
Isso é um ponto muito favorável realmente.

Mas quando falamos em procedimentos as pessoas já pensam em coisas separadas sem conexão entre si.
Mas eu acredito que não precisa ser assim.

Acho que temos que partir do caso de uso. O que ele faz. Qual a sequencia de operações.
Não é preciso repetir. Pode-se aproveitar também.
ex:

consistirFuncionario()
{

}

atualizarCadastroFuncionario()
{
consistirFuncionario();
// codigo
}

cadastrarFuncionario()
{
consistirFuncionario();
// codigo
}

E deve ser centralizado. Existir um unico ponto para o caso de uso, ou seja, apenas uma função para realizar esse procedimento.
Não criar redundancias ou repetições.

Outra coisa:
O que estão usando por aí não é um monte de structs(javabens) sendo passados para uma função (session façade sessionbean...).

This message was edited 1 time. Last update was at 30/03/2005 15:17:18


O bom menino !!!
skill_ufmt
JavaEvangelist
[Avatar]

Membro desde: 20/05/2003 18:02:23
Mensagens: 318
Localização: Cuiabá - MT
Offline

louds wrote:Programação procedural sofre do problema de separar dados de comportamento. Então voce acaba com uma pilha de structs e uma pilha de funções. Com OO dados e comportamento ficam no mesmo lugar, é mais facil de modificar e atualizar.


e get/set seriam responsáveis pelo seu comportamento? :p cheirando GOO

Windows: Not Plug & Play, but Bug & Pay!
_________________________________________________
Kivanio Pereira Barbosa
Bacharel em Ciência da Computação

CUIABÁ JAVA USERS
www.cajumt.com.br
[WWW] aim icon [MSN] [ICQ]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

jprogrammer, eu nao entendi o seu problema (e aparentemente ninguem entendeu, pq cada um foi pra um lado na conversa). Voce nao quer dar uma explicada melhor sobre o que voce esta querendo dizer, exatamente, pra evitar mais uma Discussao Sem Fim?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team