Struts, Spring, Webwork, VRaptor, Hibernate, Torque, Velocity, Tiles, JavaServer Faces, JDO, OJB, IoC, AOP, EJB, Patterns… vc esta ficando louco de tanto estudar estudar e estudar Java e a lista de tecnologias não acabar mais? Vc acabou de comprar um livro de Struts, e logo q começou a ler o primeiro capítulo ouviu todo mundo na internet dizer que Struts é uma droga e a moda agora é o framework ABC? Vc precisa de acesso a banco de dados mas fica zonzo quando te respondem com trocentos frameworks e quinhentos padrões de projeto? Vc fica com raiva de si mesmo por todos dizerem q Java é fácil e tudo de bom mas vc só encontra obstáculos? Vc não tem tempo de mastigar tudo isso? Vc tem vontade de fazer tudo como se manda os livros e amigos mas seu chefe burro só quer ver tudo pronto pra ontem?
Isso ai gente, esse tópico aqui é pra ferver, oq acham disso tudo, postem suas opniões, esse monte de tecnologias vem pra facilitar ou piorar? Quais são as suas dificuldades nesse cenário que é o J2EE? Ou não há dificuldades para vc? Vc consegue se manter atualizado? Vamos lá galera… tocando lenha na fogueira
A escolha de um framework pra trabalhar é uma coisa quase que pessoal, eu sou santista e jamais usaria um framework chamado corinthians… :razz:
Mais é assim mesmo, framework é como time de futebol, cada um escolhe, usa e defende suas qualidades. Uns fanáticos chegam a te expulsar do portal só pra defender o framework deles . Já usei OJB, Hibernate e Webwork e atualmente utilizo apenas o Webwork, porque? Porque se eu tenho um sistema a desenvolver e sei oque eu vou precisar, pra que eu quero de um framework que me gera SQL dinâmico? Pra deixar mais lento? Acho que mais importantes que utilizar um framework é saber quando emprega-lo.
Muitos frameworks realmente agilizam o processo de desenvolvimento, na minha opinião Webwork, Struts… outros são utilizados por puro modismo. “Ah… IoC está na moda, vamos usar um framework de IoC, não precisamos dele mas olha como fica bonito…”. Você perde mais tempo aprendendo e descobrindo erros misteriosos do Hibernate doque escrevendo suas DAOs em SQL.
Quando comecei a desenvolver o sistema no qual estou trabalhando atualmente, perguntei aos colegas oque eu deveria usar, Webwork e Hibernate já estava na ponta da lingua, depois de praticamente estruturada a arquitetura e tudo funcionando beleza, me perguntaram porque eu não estava utilizando Spring… :???: Mas, quais os benefícios? Uma semana pra aprender o novo framework, e mais algum tempo pra dominá-lo e alguns refactories e pronto! Cadê o ganho?
Por fim chegam os patterns, eu sou suspeito pra falar porque eu AMO patterns, esses sim devem ser estudados e compreendidos pois vão lhe proporcionar agilidade em resolver situações reais dos problemas comuns encontrados no desenvolvimento. Você não precisa de um framework para implementar um DAO você precisa conhecer o DAO para saber que o SQL é suficiente.
Eu concordo com o Volnei no ponto de vista da escolha, dos que vc citou eu só não conheço e nunca usei o JSF, o resto ja usei todos, atualmente me dou muito bem com Struts, Hibernate e Tiles, pra mim é uma ótima opção.
Mas veja, é bom lembrar tb, que este frameworks sao desenvolvidos com Java, mas usando um framework deste, você não está desenvolvendo em Java ou J2EE… J2EE é, use Entity Beans e nao Hibernate, use Servlets e não Struts, use JSP e não tiles ou Velocity, e assim vai, é como SUperWaba, é igual Java, mas não é, mesmo que seja por pequenos detalhes legais. Mas de qualquer forma, eu vejo isso tudo como qualidade, pois isso me estimula e me incentiva a estudar coisas novas, várias vezes nem é nova, mas eu estudo pra ver como foi implementada de uma forma diferente…
Conheço java desde 2001(agosto p/ ser mais exato), mas só estou começando a trabalhar com esta tecnologia agora começando do básico lendo o meu Java Como Programar. Mas pelo visto não vai adiantar muita coisa não pois já temos o J2SE 1.5 e o livro cobre JDK 1.2.1.
Peguei materiais na internet(imprimi e encadernei) sobre: The Java Language Specification, Hibernate The Referente Documentation, Enterprise JavaBeans Specifications 2.1 e Java Servlet Specification 2.4…fiz isso pois estou meio duro nos últimos 11 meses (até março que vem) devido a uma especialização em sistemas de informação(UFRJ) onde eu conheci bastante coisa que o java me oferece e dessa forma assim é o único jeito para estudar e conhecer melhor o que aprendemos.
Até o início do ano passado trabalhava com Microsoft ASP e ficava meio irritado quando falavam que ASP é ruim, o que não é bem verdade, mas o jeito que se programa é que é péssimo, tudo fica na camada de apresentação, ou seja, manutenibilidade horrível…por isso estou adotando Java/J2EE aos poucos.
Com relação a Framework e muitas outras tecnologias ainda não posso falar pois não conheço, mas quando tiver conhecimento vou me esforçar para utilizar a melhor metodologia no que tiver de fazer.
É isso aí galera, é java no sangue, quem sabe, SABE!!
[quote=“Volnei”]“Ah… IoC está na moda, vamos usar um framework de IoC, não precisamos dele mas olha como fica bonito…”. Você perde mais tempo aprendendo e descobrindo erros misteriosos do Hibernate doque escrevendo suas DAOs em SQL.
…porque eu não estava utilizando Spring… :???: Mas, quais os benefícios? Uma semana pra aprender o novo framework, e mais algum tempo pra dominá-lo e alguns refactories e pronto! Cadê o ganho?
[/quote]
ótimas observações… Concordo e assino em baixo. Temos não apenas q pensarmos como desenvolvedores, mas como empresa tb, ou seja, não só nos colocarmos na posição de desenvolvedor, procurando as melhores coisas pra um desenvolvedor, mas pra empresa… se não a gente não cresce nunca :lol:
[quote=“JavaPlayer”]Pessoal e como fica para os inicantes que estão se aventurando em J2EE???
[/quote]
Boa pergunta…
Patterns e se houver condições tentar utilizar MVC usando Servlets e JSP, que, isso que eu chamo de fazer na raça. Não adianta nada querer usar um framework MVC se não souber oque é MVC.
[quote=“JavaPlayer”]
qual a melhor forma de persistência para quem está começando??? [/quote]
É aquele negócio, não existe melhor! Existe a que mais te agrada e, desde que atenda as necessidades :).
[quote=“JavaPlayer”]Pessoal e como fica para os inicantes que estão se aventurando em J2EE???
o que deve ser focado de primeira? frameworks ?
qual a melhor forma de persistência para quem está começando???
[/quote]
Oi
Acho que antes de frameworks para ajudar, deves estudar pelo menos a RI de J2EE inteira, talvez tu goste mais do que a RI tem do que de um framework auxiliar.
mas existe muita gente que diz que odeia SLQ no meio do código java não é?
[/quote]
Oi
:bei: SQL no meio do código nao… hehehehe
O que o Volbei quis dizer é no caso de usar ou nao uma camda de persistencia como o Hibernate, pelo qe entendi, ele prefere fazer os SQL puro, mas isso, direto no DAO e nao meio da app…
mas existe muita gente que diz que odeia SLQ no meio do código java não é?
[/quote]
Como o jeveaux disse… use um DAO para abstrair seu SQL da sua camad de negócios, e se estiver afim você pode deixar seus SQLs em arquivos XML ou de properties para facilitar a manutenção.
Realmente, essas “sopa” de letrinhas, no começo pode ser desencorajadora (existe?). Mas depois que você vai se habituando isso não se torna um empecilho.
Concordo plenamente com o Matheus quando ele diz que precisamos pensar como empresa, e analisar o que é mais viável para a empresa que estamos desenvolvendo o software.
Estou tentando estudar patterns há um tempão, mas nunca consigo, conheço os mais comuns como DAO e o MVC, mas queria me aprofundar mais.
Acredito que esta talvez seja uma das grandes dificuldades por se tratar de uma plataforma tão ampla e com tantos recursos: atualização!!
:arrow: Nível 1: Saber que a tecnologia existe. (basta ler as manchetes das notícias)
:arrow: Nível 2: Saber qual o seu objetivo (basta ler o corpo das notícias)
:arrow: Nível 3: Saber as vantagens e desvantagens comparativas (bastar ler alguns artigos sobre cada tecnologia)
:arrow: Nível 4: Saber usar (ler a documentação, ou um livro)
Para as tecnologias que você não está usando, eu só preciso manter o nivel 3. Passo para o nível 4 com as tecnologias que for usar.
Passo a passo para o sucesso: 1) Use algum leitor de RSS como o bloglines. 2) Assine os principais sites de notícias que você encontrar. 3) Leia notícias diariamente 4) Leia artigos semanalmente 5) Esteja sempre lendo algum livro das tecnologias mais consolidadas. 6) Não confie tanto em sua memória. Escreva as ferramentas que já ouviu falar, colocando os níveis que você está em cada uma.
:arrow: Nível 1: Saber que a tecnologia existe. (basta ler as manchetes das notícias)
:arrow: Nível 2: Saber qual o seu objetivo (basta ler o corpo das notícias)
:arrow: Nível 3: Saber as vantagens e desvantagens comparativas (bastar ler alguns artigos sobre cada tecnologia)
:arrow: Nível 4: Saber usar (ler a documentação, ou um livro)
Para as tecnologias que você não está usando, eu só preciso manter o nivel 3. Passo para o nível 4 com as tecnologias que for usar.
Passo a passo para o sucesso: 1) Use algum leitor de RSS como o bloglines. 2) Assine os principais sites de notícias que você encontrar. 3) Leia notícias diariamente 4) Leia artigos semanalmente 5) Esteja sempre lendo algum livro das tecnologias mais consolidadas. 6) Não confie tanto em sua memória. Escreva as ferramentas que já ouviu falar, colocando os níveis que você está em cada uma.
É tão impossível assim? [/quote]
ótima receita vinci , bem… eu não diria impossível, mas qnd o cara trabalha o dia inteiro, sai e vai direto pra aula, só chega em casa as 23h da noite, é bem difícil sim! heheea :lol:
O vinci deu uma receita ótima para quem quer se manter atualizado embora eu não siga a risca todos os passos, posso pular um ou outro mas estou sempre atento a alguma coisa.
Sobre frameworks vou gerar umas discussão geral aqui então: Porque usar? Você não tem que ficar livre em algumas coisas? Usando framework vc estará sempre preso alguma coisa, é quase como uma linguagem proprietária, eu disse QUASE!.
Facilidades? Teoricamente…
Manutenção? Não é bem assim, vc usando tags para view Strtus quem disse qeu será facil vc passar para o Designer alterar o layout do seu sistema? quem já trabalhou assim sabe que não é nada facil. Se o mesmo quiser fazer uma alteração de layout ou vc terá que ficar o dia todo ao lado dele ajudando ou então ele elaborar um layout novo em html e vc alterar no seu jsp.
Concordo com o Jeveaux quando disse que J2EE são os EJB, não diria que são apenas os EJB, mas sim o conjunto de api’s que dão à aplicação o corporativmos, ou seja, acesso remoto, busca de informações remotas… (JNDI, RMI, JMS)…
Frameworks a grande maioria são para implementar o MVC, mas não implementam esta arquitetura totalmente, a maioria ou são para a view ou para a persistencia. a sua regra de negocio mesmo (M) será ali, nos EJB’s puros. não há framework para isso, me corrijam se eu estiver errado.
Mas voltando ao topic do matheus é fato, é chato vc está gostando de uma coisa e já ter que ficar olhando para outra que estão dizendo que está na moda. Comecei em struts e já estou vendo que terei que estudar hibernate, jdo, velocity… E se vc analizar funcionalidades, eu certamente diria que não são gritantes entre uma e outra… são poucas diferenças…
Ainda diria mais o tempo que vc faz, vc poderia bolar uma metodologia de trabalho em java, usando recursos j2ee apenas e não ficar preso a nada. Perda de produtividade? creio que seria pouco. Use por exemplo JSP, com Servelts acessando seus EJB’s, com a persistencia vc bole seus DAO’s, VO’s sei lá, e implemente seu SQL. Tranquilo isso e simples, bem funcional e nada preso a nenhum framewok.
Conforme alguém mencionou acima é Design patterns também a grande diferença para a implementação e agilidade no desenvolvimento de um sistema ao meu ver.
[quote=“matheus”][quote=“Volnei”]“Ah… IoC está na moda, vamos usar um framework de IoC, não precisamos dele mas olha como fica bonito…”. Você perde mais tempo aprendendo e descobrindo erros misteriosos do Hibernate doque escrevendo suas DAOs em SQL.
…porque eu não estava utilizando Spring… :???: Mas, quais os benefícios? Uma semana pra aprender o novo framework, e mais algum tempo pra dominá-lo e alguns refactories e pronto! Cadê o ganho?
[/quote]
ótimas observações… Concordo e assino em baixo. Temos não apenas q pensarmos como desenvolvedores, mas como empresa tb, ou seja, não só nos colocarmos na posição de desenvolvedor, procurando as melhores coisas pra um desenvolvedor, mas pra empresa… se não a gente não cresce nunca :lol:[/quote]
Só para esclarecer uma coisa, eu não sou um anti IoC (DI), eu simplesmente não acho que seja necessário modificar a arquitetura de um sistema já definido para inclusão de um framework como o Spring. Ele faz muito trabalho? Faz sim, mais tudo que ele faz pode ser feito sem ele. Qual a diferença entre as duas formas abaixo:
Dao dao;
E depois o Spring faz o DI para o Dao?
Entenderam? Pra mim, não ha diferença no resultado entre as duas formas, e a complicação fica por conta do Spring.
Tambem não radicalizo a ponto de dizer que jamais utilizarei o Spring, talvez definindo uma arquitetura para uma aplicação nova eu encaixo ele, mais modificar uma aplicação para utilizá-lo jamais.
Ei, não conheço alguém que prega IoC e que diz que um sistema deva ser modificado apenas para incluir uma nova framework. Deve-se ter bom senso.
As tecnologias vêm e vão. As boas ficam por mais tempo. Acho que projetos de software livre são os melhores laboratórios para uso destas tecnologias. Foi assim que me aventurei no PicoContainer. E está sendo assim com o Thinlet no PaperWizard.
Não podemos cair no pecado de dizer: “O que eu sei já está bom. Não precisa complicar”. Pelo contrário, devemos sempre procurar fazer melhor as coisas que já fazemos bem. Viva a inovação! :viva:
mas existe muita gente que diz que odeia SLQ no meio do código java não é?
[/quote]
Oi
:bei: SQL no meio do código nao… hehehehe
O que o Volbei quis dizer é no caso de usar ou nao uma camda de persistencia como o Hibernate, pelo qe entendi, ele prefere fazer os SQL puro, mas isso, direto no DAO e nao meio da app…
sempre uso DAO… a única coisa que faço se for trocar a implementação da persistência é trocar a implementação do DAO… mas a minha interface continua sendo a mesma… … bem, de uma coisa ja temos certeza, padrão DAO é ótimo
mas com certeza uma ótima implementação é (Business Object + DAO + Command)
Mas com certeza, tudo eh relativo toda a implementação é afetada pelo cliente… Se ele quer algo descente com muita qualidade, leva mais tempo, se ele quer mais rapido, as coisas vao meio no coxambrão, e quem sabe até sql no meio do codigo java apareça aheiuaheiuhaiuheiauh
E a vida continua e nós damos manutenção aheuiaheiuahiueha