Arquitetura em projeto J2EE

Olá pessoal…

Preciso montar uma arquitetura que seja fácil de manter e seja extensível.
Poderei utilizar apenas Servlets + JSP + JSTL, ou seja, nada de frameworks!

Pretendo utilizar o MVC, mas ainda tenho algumas dúvidas:

  • Qual a melhor alternativa ?

Criar um único Controller para toda a aplicação ou apenas um ?

  • Eu poderia criar algo parecido com o que os frameworks struts e webwork fazem ??

Desde já agradeço a ajuda de todos os amigos!

Obrigado!

:smiley:

Voce pode usar so isso por que exatamente?

Voce pdoe reiventar a roda, mas sera que esse impedimento eh tao grande assim?

Shoes

de uma olhada no exemplo deste site
http://xpetstore.sourceforge.net/

[quote=pcalcado]Voce pode usar so isso por que exatamente?

Voce pdoe reiventar a roda, mas sera que esse impedimento eh tao grande assim?

Shoes
[/quote]

Shoes, pelo fato de que levaria tempo para a equipe estudar e utilizar boas práticas com o framework…

Se eu optasse por reinventar a roda, seria tão ruim assim ??

Obrigado!

:wink:

Vamos ver…

voce tme uma equipe que pode aprender um framework num tempo X ou pode desenvolver um no tempo Y, aprendendo por consequencia.

Tudo vai depender de quantos recursos voce precisa e da qualidade destes. Se voce vai desenvolver algo complexo, Y tende a ser mais que o dobro de X, e o resultado final nao vai ter tanta qualidade (nao estou dizendo que voces sao maus programadores ou que os frameworks sao perfeitos, mas eles ja foram testados e consertados por muitos meses),

[quote=pcalcado]Vamos ver…
pode desenvolver um no tempo Y, aprendendo por consequencia.
[/quote]

Esse é o principal propósito… :mrgreen:

Entendo, mas pelo que você indica o melhor seria a opção X certo ?

Obrigado!

:wink:

Vamos fazer uma analogia.
A Ford monta o Fiesta. Daí, depois de 6 meses de pesquisa de mercado árdua, o departamento de marketing da Ford descobre que há um nicho de mercado muito rico e pouco explorado, que é o nicho de jipes de pequeno porte para um público urbano e jovem. Vendo o tamanho do mercado que pode ser explorado, os diretores da Ford determinam que um novo carro, um pequeno jipe, deva ser construído para ser vendido para este público urbano e jovem. Os engenheiros da Ford têm duas alternativas:
:arrow: constroem o jipe, daqui para frente chamado de Ecosport, a partir do zero;
:arrow: reutilizam a plataforma de um outro carro e montam o novo chassi sobre esta plataforma;

Optando pela primeira alternativa, os engenheiros vão demorar muito tempo para terminar o primeiro Ecosport e, ainda por cima, vão ter que executar vários testes para aprovar o modelo para o mercado.

Optando pela segunda alternativa, os engenheiros só precisam se focar naquilo que é necessário (construir o chassi para o Ecosport), pois eles podem reutilizar toda a plataforma já testada e aprovada do Fiesta, permitindo que o projeto tenha seu custo e prazos reduzidos e com qualidade assegurada. Adivinha qual foi a escolha do povo da Ford? :wink:

E é mais ou menos esta a escolha que você tem que fazer agora.

[quote=Daniel Quirino Oliveira]Vamos fazer uma analogia.
A Ford monta o Fiesta. Daí, depois de 6 meses de pesquisa de mercado árdua, o departamento de marketing da Ford descobre que há um nicho de mercado muito rico e pouco explorado, que é o nicho de jipes de pequeno porte para um público urbano e jovem. Vendo o tamanho do mercado que pode ser explorado, os diretores da Ford determinam que um novo carro, um pequeno jipe, deva ser construído para ser vendido para este público urbano e jovem. Os engenheiros da Ford têm duas alternativas:
:arrow: constroem o jipe, daqui para frente chamado de Ecosport, a partir do zero;
:arrow: reutilizam a plataforma de um outro carro e montam o novo chassi sobre esta plataforma;

Optando pela primeira alternativa, os engenheiros vão demorar muito tempo para terminar o primeiro Ecosport e, ainda por cima, vão ter que executar vários testes para aprovar o modelo para o mercado.

Optando pela segunda alternativa, os engenheiros só precisam se focar naquilo que é necessário (construir o chassi para o Ecosport), pois eles podem reutilizar toda a plataforma já testada e aprovada do Fiesta, permitindo que o projeto tenha seu custo e prazos reduzidos e com qualidade assegurada. Adivinha qual foi a escolha do povo da Ford? :wink:

E é mais ou menos esta a escolha que você tem que fazer agora.[/quote]

Ok DQO, legal…

Entendo que o uso de frameworks me ajudaria bastante por já terem sido “ajustados” e infinitamente testados…mas mesmo assim seria muito complicado criar algum tipo de controller parecido com o que esses frameworks MVC possuem ??

Obrigado pelas ótimas respostas…
Obrigado!

:wink:

Nao.

Mas antes de pensar em fazer o seu, de uma tentada neste e nos outros.

[quote=pcalcado]Nao.

Mas antes de pensar em fazer o seu, de uma tentada neste e nos outros.[/quote]

Entenda, eu só quero criar uma boa forma de fazer um controller simples, mas não ao ponto de criar um framework…

:wink:

O Controller seria algo bem simples para vc implementar. Agora um framework MVC você teria um pouco mais de dificuldade.

Veja a abaixo um fragmento de codigo de um simples controller…

    private String execulte(HttpServletRequest req, HttpServletResponse resp, Context context)   throws Exception
    {
        Command c = null;
        String template = null;
        String name = req.getParameter("action");
        HttpSession session = req.getSession();
        if(name.equals("home"))
        {
            c = new HomeCommand(req, resp);
            template = c.execute(context);
        }else
        if(name.equals("viewArtigo"))
        {
            c = new ArtigoCommand(req, resp);
            template = c.execute(context);
        } 
        return template;
    }

onde HomeCommand e ArtigoCommand implementa uma interface comum(pattern Command).

Alguém sabe onde eu posso encontrar um exemplo legalzinho de um controller ??

Obrigado!

Struts
Webwork :mrgreen:

heheh… que não seja um framework hehe

Obrigado amigo!

Dê uma olhada no código-fonte do JForum, tem uma bela implementação de controller usando servlet.

Projeto: http://www.jforum.net
Fontes: https://jforum.dev.java.net/source/browse/jforum/

JavaRJ,

Veja bém, li este tópico todo, e em minha humilde opinião, não vale a pena deixar de usar um framework, vou tentar listar alguns motivos!

:arrow: Se quer aprender como funciona um framework MVC como webwork ou Struts, o código fonte está disponível!

:arrow: É mais rápido e ágil aprender um framework do que criar o seu próprio.

:arrow: O Framework já foi testado!

:arrow: O Framework já lhe fonrecerá muitas facilidades como tags e outras coisitas a mais!

:arrow: Não deixe sua equipe ficar na mesmisse. Para eles será um desafio aprender uma tecnologia nova, e pessoas gostam de desafios e de se sentirem úteis!

:arrow: O sistema por si só já possui um complexidade e é um problema a ser resolvido. Pegar um framework será um problema a menos!

:arrow: Tanto para você como para sua equipe, o framework renderá alguns pontos no currículo.

Bom, poderíamos pensar em outros motivos, mas acho que estes já bastam! :wink:

Abraços!
Thiago Senna

Ok Thiago, obrigado pela sua resposta.
Vou levar em consideração a ajuda de vocês na escolha entre criar um controller ou utilizar um framework…

Obrigado!

javaRJ, vc ja pensou no custo que isso geraria ? posso estar enganado, mas o tempo gasto, o custo e a certeza de se o seu framework fosse aprovado e bem aceito levaria um tempo muito grande, seria um projeto arriscado no meu ver, acredito que o estudo que deve ser feito para se construir algo novo seja ate viavel, mas seria interessante pensar no risco da conclusão.