Frameworks

Cá estou!

Hoje será o 1º post da sessão de Frameworks que eu tanto esperava...

Então, vamos nessa.

O assunto de hoje é: Framework. 

O tão falado e utilizado hoje em dia. Mas o que seria isso?

Framework é uma ferramenta basicamente, um software reutilizável que será utilizado para auxiliar o desenvolvimento de software.

Mas quais características ele deve ter para ser considerado um Framework?


Características Básicas de um Framework:


  • Usável
  • Reusável
  • Bem documentado
  • Fácil de usar
  • Extensível
  • Eficiente

Um cara chamado Wolfgang Pree escreveu um artigo muito interessante em 1994, chamado: "Meta Patterns: A Means for Capturing the Essentials of Reusable Object-Oriented Design".

O artigo é bem bacana, vale a pena dar uma procurada.
Esse cara é um Professor e cientista. Conhecido por framework, design patterns, linguagens de programação e sistemas baseados em componentes.

Pois bem, ele levantou uma linha de raciocínio bem interessante.
Onde, as estruturas de software consistem em frozenspots e hotspots. 

Os Frozenspots definem a arquitetura geral de um sistema de software, ou seja, seus componentes básicos e as relações entre eles.
Estes permanecem inalterados (congelada) em qualquer instanciação do framework de aplicação.
Os Hotspots representam as partes onde os programadores que usam o quadro adicionar seu próprio código para adicionar a 
funcionalidade específica para o seu próprio projeto.


Como eles interagem:

Hotspots são os pontos extensíveis, necessitam de complementação por funcionalidades/serviços que devem ser implementados. 
São invocados pelo framework, ou seja, classes (implementadas pelo programador da aplicação) recebem mensagens de uma classe do framework (frozenspot). 

E utilizar um framework adiantaria em que mesmo?

Vantagem

A maior vantagem da estrutura de software é que ela reduz o tempo e energia para o desenvolvimento de qualquer software.

Frameworks fornecem um sistema padrão de trabalho, através do qual o usuário pode desenvolver o módulo desejado de aplicação ou a aplicação integral
em vez de desenvolver detalhes de nível inferior. 
Utilizando frameworks, os desenvolvedores podem dedicar mais tempo no desenvolvimento do requisito de software, e não na preparação do ambiente e nas ferramentas de desenvolvimento de aplicativos. Logo, otimizamos MUITO MUITA coisa.

Bacana,mas nem tudo são flores, isso tem desvantagem?

Desvantagem

Para um usuário iniciante, é mais difícil de usar a estrutura rapidamente, uma vez que o framework é grande, complexo e abstrato. O usuário tem que gastar mais tempo para avaliar o conceito, função e seus usos no desenvolvimento do programa. 
Como modelos de mercado, temos:

Principais Frameworks Java:

Struts , JavaServer Faces {JSF}, Primefaces, Spring, Hibernate, Jasper Report / iReport, dentre outros.

Principais Frameworks PHP:

CodeIgniter, Zend Framework, CakePHP, Symfony, Seagull, dentre outros.

Referência: Artigos W, Pree --> http://dl.acm.org/citation.cfm?id=679381 

Bom, espero que tenham gostado.
Até o próximo post pessoal!
o/

About thallitaceleste

0 comments:

Postar um comentário