Arquitetura, qual escolher?

Boa tarde a todos!

Tenho conhecimentos em Java no que aprendi na faculdade, porém, nunca trabalhei com desenvolvimento nem nada do tipo.
Fui “promovido” no me trabalho( o outro cara que saiu era fera!!!) e estou na responsabilidade de estruturar um projeto de CRM simples em Java.

Gostará de um auxílio de vocês para saber qual estrutura deveria usar, se é interessante fazer isso voltado para web ou para Desktop. Estou cheio de dúvidas e ninguém para me ajudar!

Desde já agradeço a todos…

Forte Abraço

Sua equipe conhece web ou swing?
Seu cliente quer web ou swing?

Quais dificuldades você tem entre essas duas opções?
Esse tipo de coisa (principalmente necessidade do cliente) é que deve ser levado em consideração na escolha entre local e web.

Acredito que um CRM online é bem mais útil e elimina alguns problemas como sincronização dos vários clients.
Mas tem que ver se o cliente terá acesso a isso a qualquer hora que precise (seja servidor interno, seja online).

Quanto a estrutura, acredito que o básico é usar um MVC, mas de um modo geral, não adianta usar frameworks e patterns se não souber o porque, não adianta usar porque todo mundo usa, não adianta usar e depois não conseguir dar manutenção.

Foque na necessidade do cliente e no que sua equipe dá conta.
Acho que esse é o início.

Obrigado lounático,

a princípio estamos pensando em desenvolver WEB. Temos alguns vários problemas, por isso estou busacando auxílio e trocando idéias com pessoas de maior experiência.

Nossa equipe praticamente sabe o Conceito básico de java. Então estamos enfrentando problemas técnicos tb.

Mas enfim, como 1º Passo, está 90% definido que será WEB e irei buscar o máximo de conhecimento no padrão MVC!

CAso tenha alguma dica, tutorial ou algo do genêro que possa nos passar, ficarei muito grato.

Novamente agradeço a atenção.

Abraço

[quote=hoelzman]Obrigado lounático,

a princípio estamos pensando em desenvolver WEB. Temos alguns vários problemas, por isso estou busacando auxílio e trocando idéias com pessoas de maior experiência.

Nossa equipe praticamente sabe o Conceito básico de java. Então estamos enfrentando problemas técnicos tb.

Mas enfim, como 1º Passo, está 90% definido que será WEB e irei buscar o máximo de conhecimento no padrão MVC!

CAso tenha alguma dica, tutorial ou algo do genêro que possa nos passar, ficarei muito grato.

Novamente agradeço a atenção.

Abraço[/quote]

Cara, porque usar o padrão MVC se o sistema é web?

Não entendo, MVC geralmente é utilizado em interfaces ricas como desktop, aplicações iphone, não é o tipo de coisa que se espera de uma aplicação web. É preciso dizer que MVC não é apenas separar sua aplicação em dominio, controle e apresentação.

[quote=mochuara][quote=hoelzman]Obrigado lounático,

a princípio estamos pensando em desenvolver WEB. Temos alguns vários problemas, por isso estou busacando auxílio e trocando idéias com pessoas de maior experiência.

Nossa equipe praticamente sabe o Conceito básico de java. Então estamos enfrentando problemas técnicos tb.

Mas enfim, como 1º Passo, está 90% definido que será WEB e irei buscar o máximo de conhecimento no padrão MVC!

CAso tenha alguma dica, tutorial ou algo do genêro que possa nos passar, ficarei muito grato.

Novamente agradeço a atenção.

Abraço[/quote]

Cara, porque usar o padrão MVC se o sistema é web?

Não entendo, MVC geralmente é utilizado em interfaces ricas como desktop, aplicações iphone, não é o tipo de coisa que se espera de uma aplicação web. É preciso dizer que MVC não é apenas separar sua aplicação em dominio, controle e apresentação. [/quote]

Desculpe minha ignorância… Mas será que só isso já não justifica o uso do MVC, por que penso que deve ser um inferno ter javascript, css, jsp, e mais lógica de banco em uma página apenas, estou dizendo que penso isso por que nunca desenvolvi nada sério para web, mas pelo que já vi e escutei é sempre aquela zona de código misturado.

Entaõ rapaziada,

tenho algumas dúvidas quanto a isso, por isspo vim pedir auxílio. Me corrijam se estiver falando alguma besteira, mas o MVC é um modelo de apresentação não é, onde só trata a interface, ou estou cometendo um erro de conceito?

Estou relamente em busca de uma arquitetura onde possa começar a desenvolver o sistema de fora correta, com fácil manutenção, enfim, englobando todos os conceitos de Orientação Objeto.

Abraço e mais uma vez obrigado.

OBS: Até pq sei CONCEITUALMENTE algumas boas coisas, mas na prática, não tenho experiência.

Olá,

Bem por experiência própria, não sei o tempo que vocês tem para entregar o projeto,mas para ajudar muito, acho que você deveria pensar em colocar pelo menos uma pessoa com uma boa experiência de mercado para trabalhar com vocês.

Como mencionou que você e sua equipe tem pouca vivência prática com Java, uma pessoa com bagagem vai ajudar, e muito, a vocês
caminharem. O ganho vai ser muito grande e já vai jogar vocês lá pra frente.

A questão de arquitetura é bem particular, pois se tem no mercado soluções para cada caso e com certeza vocês vão acabar enchergando o caso de vocês, por isso volto a frizar que um profissional já com experiência junto com vocês o ganho será muito maior.

[]'s

Baixe vários CRMs que já existem por aí e veja qual mais encaixa no que você quer fazer. De preferência pegue um de código aberto, que aí dá para customizar se precisar.

[quote=laudenpower][quote=mochuara][quote=hoelzman]Obrigado lounático,

a princípio estamos pensando em desenvolver WEB. Temos alguns vários problemas, por isso estou busacando auxílio e trocando idéias com pessoas de maior experiência.

Nossa equipe praticamente sabe o Conceito básico de java. Então estamos enfrentando problemas técnicos tb.

Mas enfim, como 1º Passo, está 90% definido que será WEB e irei buscar o máximo de conhecimento no padrão MVC!

CAso tenha alguma dica, tutorial ou algo do genêro que possa nos passar, ficarei muito grato.

Novamente agradeço a atenção.

Abraço[/quote]

Cara, porque usar o padrão MVC se o sistema é web?

Não entendo, MVC geralmente é utilizado em interfaces ricas como desktop, aplicações iphone, não é o tipo de coisa que se espera de uma aplicação web. É preciso dizer que MVC não é apenas separar sua aplicação em dominio, controle e apresentação. [/quote]

Desculpe minha ignorância… Mas será que só isso já não justifica o uso do MVC, por que penso que deve ser um inferno ter javascript, css, jsp, e mais lógica de banco em uma página apenas, estou dizendo que penso isso por que nunca desenvolvi nada sério para web, mas pelo que já vi e escutei é sempre aquela zona de código misturado.[/quote]

Bom, se MVC é apenas separar código da forma apropriada então tudo bem, porque eu seria contra. Mas a questão da interação entre os componentes dinamicamente, quanto o V está possivelmente do outro lado do mundo?

Estou bem encrencado então!!!

Infelizmente na cidade onde trabalho não há quase recursos na área de Java. Enfim, acho que esta pessoa experiente irá se formar na base da pancada mesmo.

Vou procurar estudar mais e postar minhas futuras dúvidas por aqui.

Quem puder continuar a colaborar, já agradeço desde já.

Um abraço a todos

MVC é um conceito, não é usado apenas em aplicações desktop. Pelo contrário, MVC é usado em qualquer coisa!
Separar o JSP, a regra de negócio e o acesso ao banco.
Não é porque o View é renderizado pelo navegador que você não pode separar. Inclusive isso ajuda na hora de “montar” o MVC.

Vale lembrar que existe uma pancada de usuário no fórum e o povo gosta de responder dúvida.
Poste, pergunte, leia no fórum, leia os artigos, você vai se virar.

Abrass

De acordo.

E não vejo porque não usar MVC. Acho simples e fácil de entender. Algo bom pro pessoal que está começando.

[quote=lounatico][quote]
Cara, porque usar o padrão MVC se o sistema é web?

Não entendo, MVC geralmente é utilizado em interfaces ricas como desktop, aplicações iphone, não é o tipo de coisa que se espera de uma aplicação web. É preciso dizer que MVC não é apenas separar sua aplicação em dominio, controle e apresentação.
[/quote]

MVC é um conceito, não é usado apenas em aplicações desktop. Pelo contrário, MVC é usado em qualquer coisa!
Separar o JSP, a regra de negócio e o acesso ao banco.
Não é porque o View é renderizado pelo navegador que você não pode separar. Inclusive isso ajuda na hora de “montar” o MVC.

Vale lembrar que existe uma pancada de usuário no fórum e o povo gosta de responder dúvida.
Poste, pergunte, leia no fórum, leia os artigos, você vai se virar.

Abrass
[/quote]

MVC é famoso pela sua aplicação específica em desktops. O fato de poder se aplicado em situações diferentes como a web não significa que deva ser feito. Todas as tentativas nesse sentido que conheco compartilham do fato de serem limitadas e engessarem a aplicação em troca de complexidade de implementação e prejuizo as propriedades inerentes a natureza da comunicação web.

De acordo.

E não vejo porque não usar MVC. Acho simples e fácil de entender. Algo bom pro pessoal que está começando.[/quote]

Existe algum framework por tras dessa solução simples de MVC que vc gostaria de sugerir?

hoelzman,

O MVC é um padrão de arquitetura bastante usado em aplicações Web (e também em aplicações Desktop!) escritas em Java. Se não fosse assim, os frameworks que implementam esse padrão não seriam tão conhecidos e usados. Vou citar dois: o Struts, mantido pela fundação Apache que é bem maduro e o mais recente que tende a desbancar o Struts que é o Java Server Faces ou simplesmente JSF. Procure material sobre eles pois existe farta literatura na web, estude junto com sua equipe, se puder contrate alguém com experiência em algum desses frameworks e procure seguir um processo de software como o RUP ou mesmo um processo ágil como o XP (não dá para não seguir nenhum!) e siga em frente!
Estudar bastante nesse momento é crucial para entender do assunto e não ficar seguindo conselhos que só vão te confundir e/ou te desanimar agora.

Agora, vai um conselho de quem está na estrada há algum tempo e que quer te ajudar: Se você e sua equipe não tem experiência prática alguma nesse tipo de desenvolvimento é melhor deixar isso claro para seus superiores ou clientes, dizendo a eles que vocês precisam de alguém mais experiente por perto (tipo mentoring) ou cursos específicos para seguir adiante, principalmente se os prazos que te deram são curtos. Vai por mim: É melhor pra sua carreira ser sincero e abrir o jogo (ter assertividade) do que dizer que consegue e depois não dar conta.

Ah! conta aí qual é a sua cidade?

No mais, fé em Deus e perseverança!

Blz?

Não sou a pessoa mais experiente em java, mas passei por algo parecido (apesar de SP ter tudo necessário para termos uma consultoria, a empresa que trabalho não contratou)

  1. Se possível contrate uma consultoria no assunto. Treine pelo menos 2 pessoas em todas as tecnologias citadas, com o objetivo de trabalharem como arquitetos do sistema.
  2. Treine toda a equipe em orientação a objetos e java básico. Já vi muitos problemas de aplicação serem causados por códigos que seria evitados por pessoas que conhecem melhor a linguagem.
  3. Desenvolva usando MVC. Pense da seguinte forma. Se o JSF é uma especificação oficial da JCP (que regulamenta a JVM do java e as funcionalidades de linguagem) e implementa o padrão MVC, então é uma tecnologia testada e aprovada. Lado ruim: necessidade de pessoas treinadas nesta tecnologia. Existem outras tecnologias que usam o MVC usando outro framework (struts) que são tão usadas quando ele. Nesse caso é uma questão dec gosto, conhecimento , etc…etc…etc…
  4. Pesquise e teste. Muitas vezes para determinada característica de aplicação algumas coisas são bem melhores que outras.
  5. Começe implementando as camadas da aplicação de acesso ao banco de dados e regras de negócio. Modularize o projeto em várias etapas. Dessa forma você consegue revolver um problema de cada vez
  6. Aprenda a configurar um servidor web e teste sua performance através de testes de stress. Isso é essencial para colocar a aplicação em produção.
  7. Não diga que a tecnologia é ruim ou que não aguenta. Já ouvi muito disso. Aprenda que para vocÊ é uma tecnologia nova e muitos erros vão ocorrer no projeto (por isso a divisão em etapas, assim vc consegue corrigir os erros da atepa anterior)
  8. Continue usando o GUJ, mas lembre-se que existem outros forum e vale a pena colocar os mesmos questionamentos neles. Asism vc terá uma visão mais ampla do mundo que é a tecnologia java.
  9. Tome um calmante…porque acho que falei muita coisa e as vezes parece complicado fazer tudo isso. Mas vale a pena. Fui programador Delphi e passei a trabalhar com java a 3 anos atrás. É realmente uma tecnologia lenta para aprender, mas excelente para aplicações.

Ufa…acho que é isso…boa sorte com seu projeto.

Se precisar se uma idéia melhor na implementação do MVC recomendo este tópico: http://www.guj.com.br/posts/list/129277.java
Um abraço, espero ter ajudado! :wink: