Visao Principais Frameworks Java

Antes de aprofundar os estudos sobre o tema visão dos principais frameworks java, se faz necessário saber o que são frameworks e a importância deles no universo da programação.

Framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação.

A utilização de um framework por um desenvolvedor torna-se útil no momento em que você constrói ou utiliza certo componente em mais de uma vez. a reutilização de códigos que o framework proporciona é fantástica. O conselho do programador Nícolas Müller é sempre construir os códigos o mais genérico possível, mesmo que isto custe algum tempo a mais, mas quando você for precisar novamente desta ferramenta criada, terá em suas mãos e poderá reutilizar o código já anteriormente desenvolvido. Quanto mais reutilização de código utilizar, mais produtividade você ganhara em consequência de não precisar escrever ou desenvolver um novo algoritmo para aquele mesmo problema. Um ótimo exemplo dado por ele (Nícolas Müller) é um de login que muitos sites utilizam. Por que não criar um formulário genérico e formulário reutilizar da mesma forma para os sites que for desenvolver, tendo em vista que login aqui ou em qualquer lugar do mundo será o mesmo.

As Principais vantagens para o uso de framework são:

Utilidade O objetivo primeiro dos frameworks é auxiliar no desenvolvimento de aplicações e softwares. Para tal, eles têm funcionalidades nativas das mais variadas, que ajudam você a resolver as questões sobre programação do dia-a-dia com muito mais qualidade e eficiência.

Segurança Os bons frameworks são projetados de modo a garantir a segurança de quem programa e, principalmente, de quem usa o que foi feito a partir dele. Não se preocupe mais com aquelas intermináveis linhas de código para evitar um SQL Injection, por exemplo; com frameworks, a parte de segurança já “vem de fábrica”.

Extensibilidade Os frameworks permitem que você entenda suas funcionalidades nativas. Se aquela biblioteca de envio de e-mails por SMTP não contempla todas as possibilidades que você gostaria, simplesmente entenda suas funcionalidades e as use como se fossem parte do framework (na verdade, elas serão).

Economia de tempo O que você demoraria algumas horas ou alguns dias para fazer, você encontra pronto em um framework. Pense no quão são trabalhosas aquelas funções de manipulação de imagens são; usando um framework que tenha isso, você só usa, e pronto.

Ajuda fácil. Os que desenvolvem frameworks geralmente disponibilizam material de qualidade nos web sites ou repositórios oficiais, com uma vasta documentação a respeito. Além disso, os bons frameworks sempre têm uma comunidade de desenvolvedores dispostos a se ajudarem entre si. É um prazer para os que já sabem mexer ajudar os que ainda não sabem (embora a falta de tempo também seja uma realidade).

• Melhor consistência e compatibilidade entre aplicações

• Alavancagem do conhecimento de especialistas

• Framework oferece uma forma de empacotar o conhecimento de especialistas sobre domínios de problemas

• Assim, não se perde o conhecimento com a saída de especialistas e o conhecimento pode ser usado/estudado sem a presença do especialista
Resultado: criação de patrimônio estratégico da empresa (Strategic Asset Building)

Dificuldade de aprendizado

• Construir um framework é complexo
• Reuso não vem sozinho: deve ser planejado
• É mais complexo e demora mais fazer uma aplicação tendo que construir um framework em vez de fazer a aplicação do zero
• Benefícios são realizados em longo prazo
• Quem pode pensar em longo prazo quando se está competindo "On Internet time"?
• Uma empresa aeroespacial demorou anos para fazer frameworks e começou a ter retorno na quarta missão
• Precisa modificar o processo de desenvolvimento e criar novos incentivos

Principais frameworks java

A linguagem Java apresenta uma série de conhecidos frameworks, que auxiliam no desenvolvimento de sistemas. Dentre os mais conhecidos, estão o Struts, Hibernate, JUnit, entre outros.
Um framework deve ser extensível, bem documentado e, principalmente, reusável. Vale lembrar que o uso de frameworks tem benefícios claros quando tratamos de redução de custos e tempo. Abaixo seguem alguns dos principais frameworks Java:

Struts (J2EE) - um dos frameworks mais usados em ambientes corporativos para construção de aplicações web. Usa o modelo MVC e caracterizado por uma camada de controle com uso de J2EE e XML.

JavaServer Faces (J2EE) - baseado em tecnologia de servlets e JSP, pode ser usado como uma opção ao Struts.

Spring (POA) - framework baseado em orientação a aspectos. Possibilidade de uso em conjuntos com outros frameworks MVC, como o Struts e JSF.

Hibernate (Persistência de Dados) - conhecido framework de persistência de dados, que usa conceitos de banco de dados, além do mapeamento objeto-relacional (classes Java para tabelas de databases).

JDO (Persistência de Dados) - interface que provê uma camada de abstração aplicação - armazenamento de dados.

Prevayler (Persistência de Dados) - outro famoso framework que prega uma JVM invuneravel logicamente com uso de uma camada de prevalência de objetos.

JUnit (testes) - talvez o mais usado framework Java, incluído em IDEs free ou comerciais. Para testes unitários em geral.

Cactus (testes) - framework específico para testes unitários de aplicações J2EE.

Jbanana (J2EE)- framework brasileiro e open-source para desenvolvimento web.

Log4J (log) - amplamente usado e útli para geração de logs.

Relação com a matéria de compiladores:

Tendo em vista o que foi ensinado em sala de aula e o conteúdo apresentado neste trabalho, fica evidente que a característica de reutilização dos frameworks é muito parecida com as de reutilização dos compiladores. Os frameworks são excelentes ferramentas de auxilio no desenvolvimento, não só web, como na própria construção de compiladores.

Referências:

http://www.oficinadanet.com.br/artigo/1294/framework_o_que_e_e_para_que_serve

http://www.linhadecodigo.com.br/artigo/758/o-universo-dos-frameworks-java.aspx

http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCcQFjAA&url=http%3A%2F%2Fensino.univates.br%2F~clenz12%2FEngenharia%2520de%2520Software%2FTrabalhos%2FFramework_apresenta%25E7%25E3o.docx&ei=SdiKT-ewIMPn0QGm-fXOCQ&usg=AFQjCNGe4EuiNALq__K1qwyk78s9Xe6Xdw

http://www.oracle.com/technetwork/java/index-jsp-135919.html

http://pt.scribd.com/doc/59547218/72/JUnit-Framework

http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.htm

http://www.ime.usp.br/~jef/prevayler.pdf

http://marcelorech.wordpress.com/tag/poa/

http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/jsf/jsf.htm

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License