Posts Categorizados ‘design pattern

27
Jan
09

Frameworks.

Um dos assuntos mais comentados na comunidade brasileira, pra não dizer mundial, são os “frameworks”. Durante o post, tentarei explicar de uma forma com que todos possam entender o que são, quais os benefícios e o modelo MVC(Model View Controller), que é a base de tudo isso. Lembrando que estamos falando de frameworks de software e não frameworks conceituais. Tentarei explicar através de alguns tópicos, vamos lá:

O que é um framework (Opinião pessoal e generalizada)

Opinião Generalizada (Wikipedia)

“Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.”

- FAYAD e SCHMIDT

* Texto completo em: Framework

Opinião pessoal

Um framework é uma gama de funções, rotinas e procedimentos que seguem um padrão de desenvolvimento e dá rumo a uma aplicação, obtendo o máximo de eficiência, menor complexidade, e maior produtividade para os desenvolvedores e lucro para os responsáveis.

Complicou? Dá uma lida na wikipedia ou então dá uma re-lida aqui!

Quais os benefícios do desenvolvimento com um framework

Como dito anteriormente, podemos observar várias vantanges na utilização de um framework. Abaixo um top 10  com algumas:

  1. Maior facilidade no tratamento e detecção de erros
  2. Desenvolvimento mais rápido e eficiente
  3. Biliotecas, Helpers são facilmentes acoplados a aplicação, obtendo maior flexibilidade
  4. Programação orientada a Objeto, provendo maior segurança, eficiência e produtividade
  5. Pode haver um framework rodando várias aplicações, o que proporciona uma atualização e controle maior de todo o sistema
  6. Máximo proveito da linguagem relacionada
  7. Utilização de design patterns, como o MVC ( Model View Controller ) que será explicado no próximo tópico.
  8. Pode ocorrer de 2 frameworks estarem trabalhando em conjunto, como por exemplo: jQuery + Codeigniter que são de linguagens distintas, porém juntos fazem com que a aplicação seja muito mais robusta.
  9. O tempo de desenvolvimento é relativamente menor em relação a outras metodologias
  10. São em 90% Open-source, free, gratis, 0800, 9090!

Se pensarmos mais um pouco, achamos mais benefícios. Mas será que tem alguma desvantagem? Acredito que para desenvolver com framworks, é preciso, antes de tudo, saber muito bem a linguagem abordada e também entender de orientação à objetos. Tendo isso em mente, não encaro como uma desvantagem, uma vez que estudando estes conceitos você estará crescendo muito como profissional.

A utilização vai de acordo com a demanda, então pense qual seria melhor para você. Abaixo falamos mais disso.

MVC (Model View Controller)

Este realmente é o bicho de 7 cabeças quando se está começando a desenvolver com um framework. Na verdade, é muito simples se você entender por partes e não querer abraças tudo de uma vez só

Model

Conceitualmente falando, o model é a parte do conceito que cuida de toda a abstração dos dados, manipulação deles direto no banco, seja em SGBD’S ou em arquivos. De um jeito menos complicado, podemos dizer que o Model é quem vai manipular nossos dados, fazendo nossas consultas SQL, trazendo informações do banco de dados. Ele retorna as informações que queremos chamando-o.

View

Dos 3 o mais simples. A única vez que vi alguém com dúvidas sobre o views foi quando resolveu engolir o MVC sem nem saber a sigla. Bom, o VIEW é simplesmente a camada de apresentação da informação. É onde estará contido o HTML, e os dados a serem mostrados trazidos pelo Controller. Alguma dúvida? Resumindo: VIEW = Os dados que serão mostrados na tela. Pode ser um TEXTO com HTML ou não, isso depende do que você vai querer mostrar.

Controller

Como todo mundo diz, o Controller é uma ‘Ponte’ entre o Model e o VIEW. O controller é diretamente acessado e através dele temos o manejamento de funções e manipulação dos dados vindos do Model, etc. É através do controller que montamos o conteúdo da VIEW, uma vez que é a partir dele e somente dele que chamamos a camada de apresentação.

Entenda o acesso da aplicação através de uma URL, tendo em vista que estamos seguindo o básico do MVC sem nenhuma configuração de rotas ou outras coisas:

http://www.seusite.com.br/noticias/ler/23/
noticias = Controller
ler = Método contido no controller
23 = parâmetro passado para o método LER, no caso você está querendo ler a notícia 23.

Intuitivo, não acha? Lógico que isso é bem básico.. vamos nessa..

Características Comuns dos Frameworks

Praticamente todos eles seguem os mesmos padrões, logo possuem características comuns, vejamos algumas:

  1. Libraries (Bibliotecas) – Bibliotecas são classes que auxiliam por toda a aplicação, dando suporte a banco de dados, templates, tratamento de erros, validações, etc.
  2. Helpers (Ajudantes?) – Funções que auxiliam em rotinas corriqueiras, como tratamento de erros, formatações de datas,
  3. Scaffolding – A melhor arma para o desenvolvedor na hora de inserir, editar e remover dados de suas tabelas do banco de dados. Diga a palavra para acessar, a tabela que quer manipular e você terá um CRUD perfeito.
  4. Active Records – Uma verdadeira ‘mão-na-roda’ dos desenvolvedores. Se a classe active records for bem feita, você dará adeus a querys até mesmos muito complexas. Utilize apenas uma linha de comando para retornas os usuários de uma tabela que são apenas do sexo feminino e tem idade maior que 18 anos e moram em Pernambuco. Que tal ham?

Considerações finais

Como o post já ficou extenso, vou parando por aqui e deixo vocês com o Segundo Cérebro para tirar quaisquer dúvidas que vocês tenham sobre o assunto, ou é claro, se quiserem entrar em contato comigo, pode mandar brasa.

Só deixando claro que abordarei mais sobre Frameworks, mostrando uma lista de alguns dos mais utilizados, exemplos mais específicos do ‘Codeigniter’, pois atualmente estou utilizando-o em minhas aplicações. Abraço a todos e até um próximo post

That’s all Folks.

Djalma Araújo

http://www.djalmaaraujo.com.br/




Twitter

Assinem meu feed

Assine também via e-mail

del.icio.us

My Flickr

Espaço relax

Coisas.

stuart little.

More Photos

Navegue