Gestão de informações sobre futebol

Gestão de informações sobre futebol

por Diogo Vernier dos Santos -
Número de respostas: 13
Gestão de informações sobre futebol

Integrantes
Carlos Eduardo Manssur
Diogo Vernier dos Santos

Descrição
O sistema consiste em um site onde os usuários postarão notícias sobre futebol e poderão comentar e avaliar as notícias de outros usuários, fazendo assim com que notícias bem avaliadas se mantenham no topo da página e notícias mal avaliadas não permaneçam nas primeiras páginas.

Objetivo Geral
- Manter as notícias ordenadas por relevância para os usuários.

Objetivo Específico
- Permitir a criação de notícias.
- Permitir a avaliação de uma notícia, para que o sistema possa ordenar as notícias por ordem de relevância.
- Permitir o comentário de uma notícia.
Em resposta à Diogo Vernier dos Santos

Re: Gestão de informações sobre futebol

por Carlos Eduardo Manssur -
Em resposta à Carlos Eduardo Manssur

Re: Gestão de informações sobre futebol

por Carlos Eduardo Manssur -
Diagrama de classes em anexo
Anexo arquitetura.jpg
Em resposta à Diogo Vernier dos Santos

Avaliação - Gestão de informações sobre futebol

por Lucas Santos de Oliveira -
A arquitetura está bem desenvolvida com o uso de camadas, o código é bem legivel, o projeto segue os padrões nas páginas web, o código é bem identado.

Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema.

Nota: 9,0
Em resposta à Lucas Santos de Oliveira

Re: Avaliação - Gestão de informações sobre futebol

por Carlos Eduardo Manssur -
Olá Lucas,

- Realmente o DAO não foi criado, isso ficou faltando mesmo.
- O tamanho dos campos não foi dado devida atenção o MySQL Query Browser gera com tamanho 45 por default e acabamos não alterando.
- Ficaram faltando algumas funcionalidades sim seguindo o diagrama de classes, inclusive o sorter que seria um algoritmo mais complexo ficou sem ser desenvolvido.

Obrigado pela avaliação. sorriso

Att,
Carlos.
Em resposta à Diogo Vernier dos Santos

Avaliação do sistema

por Renan Oliveira -
Código java está simples (no bom sentido!), logo está bem legível.
No geral o sistema está legal, alguns pontos só:


- Senti pouca legibilidade do código XHTML pelo mesmo não estar identado;
- Poderia ter utilizado HttpSession para armazenar o login do usuário ao invés de mexer manualmente nos cookies. Ele foi criado justamente para esses tipos de informação;
- Acredito que você poderia ter encapsulado a lógica de negócio através de algum design pattern (Business, Facade, etc.). Logo você não está implementando
a arquitetura em 3 camadas, você teria problemas em reutilizar sua lógica de negócio em uma aplicação Swing por exemplo.
Ex:sevlet.AdicionaAvaliacao: if(avaliacaoUsuario.equals("positiva")) {
avaliacao = new Avaliacao(noticia, usuario, 1);
}
else {
avaliacao = new Avaliacao(noticia, usuario, -1);
} //isso poderia estar desacoplado da "camada de apresentação"
- Acho que utilizando a implementação do BaseService não possui comportamento suficiente acoplado à idéia de Service que justifica
o uso da herança ao invés da composição. Como o único comportamento é o "getConnection", esse método poderia facilmente estar em um outro objeto
como um "GerenciadorDeConexoes", "ConnectionFactory" ou qualquer outro e ainda liberaria os Service's para um esquema de herança diferente, além deste objeto estar disponivel futuramente para necessidade de outros objetos.

De qualquer forma a legibilidade está boa e a parte visual da interface também.

Nota sugerida: 7,5
Em resposta à Renan Oliveira

Re: Avaliação do sistema

por Carlos Eduardo Manssur -
Primeira avaliação:

" Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema."

Implementação:

1- DAO e DAOFactory implementados.
2- Tamanho das colunas do banco corrigidos.
3- Funcionalidades que estavam faltando ainda não foram implementadas.

Segunda avaliação:

"- Senti pouca legibilidade do código XHTML pelo mesmo não estar identado;
- Poderia ter utilizado HttpSession para armazenar o login do usuário ao invés de mexer manualmente nos cookies. Ele foi criado justamente para esses tipos de informação;
- Acredito que você poderia ter encapsulado a lógica de negócio através de algum design pattern (Business, Facade, etc.). Logo você não está implementando
a arquitetura em 3 camadas, você teria problemas em reutilizar sua lógica de negócio em uma aplicação Swing por exemplo.
Ex:sevlet.AdicionaAvaliacao: if(avaliacaoUsuario.equals("positiva")) {
avaliacao = new Avaliacao(noticia, usuario, 1);
}
else {
avaliacao = new Avaliacao(noticia, usuario, -1);
} //isso poderia estar desacoplado da "camada de apresentação"
- Acho que utilizando a implementação do BaseService não possui comportamento suficiente acoplado à idéia de Service que justifica
o uso da herança ao invés da composição. Como o único comportamento é o "getConnection", esse método poderia facilmente estar em um outro objeto
como um "GerenciadorDeConexoes", "ConnectionFactory" ou qualquer outro e ainda liberaria os Service's para um esquema de herança diferente, além deste objeto estar disponivel futuramente para necessidade de outros objetos."

Implementação:

1- Todos os arquivos foram identados com o comando de identação no eclipse. =/
2- HttpSession implementado.
3- Business Delegate, nós acreditamos que seria uma complexidade desnecessária por hora. Este código que você colou nós só o utilizamos desta maneira porque assim que o Sorter for implementado toda essa lógica seria dentro dele. Tanto a lógica de pontuação quanto ordenação das notícias.
4- ConnectionFactory implementado.

Att,
Carlos.
Em resposta à Carlos Eduardo Manssur

Re: Avaliação do sistema

por Lucas Santos de Oliveira -
Primeira avaliação:

" Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema."

Implementação:

1- DAO e DAOFactory implementados.
2- Tamanho das colunas do banco corrigidos.
3- Funcionalidades que estavam faltando ainda não foram implementadas.

O DaoFactory ficou bem implementado.
Não encotrei o script.sql, criei o banco com "teste 20090315 2313.sql", que permanece com campos com tamanho 45.
As funcionalidades contiuam sem implementar, como você mesmo disse.

Em resposta à Lucas Santos de Oliveira

Re: Avaliação do sistema

por Carlos Eduardo Manssur -
é este arquivo sql mesmo... é que o nome dele ficou errado...

então eu alterei o tamanho apenas dos campos com texto da tabela notícia e contato que foram para 250... os outros não necessitam de mais que 45 mesmo...
Em resposta à Carlos Eduardo Manssur

Re: Avaliação do sistema

por Marco Aurélio Gerosa -

Olá,

- No caso de uso Sorter não é um ator. O sistema nunca é um ator de si mesmo.
- No diagrama de classes, há um idUsuario, mas nao há a associação
- Não seria interessante ter o registro dos jogos?
- A arquitetura ficou boa
- O reuso de fragmentos de JSP está legal
- Os XHTML continuam com problemas de identação
- A separação de XHTML e CSS está boa

abraço,

Marco