O que um framework NÃO é

Olá pessoal,

sempre deparo com pessoas me perguntando se devem usar o CakePHP ou não… Ou qual a vantagem de usar o CakePHP ao invés do WordPress ou Joomla (pergunta estranha né).  Tentando esclarecer ainda mais o que é um framework, resolvi escrever o queum framework não é. Vou criar uma lista e explicar o porquê.

  1. Um framework não é um CMS: um framework como o CakePHP não é um CMS, ou seja, ele não gerencia o conteúdo de seu site. Mas nada o impede de criar fazendo uso de um framework.
  2. Um framework não é incompatível com AJAX: se você quer usar esta sigla bonita em seus projetos, um framework não irá te atrapalhar, aliás, em alguns casos, como no CakePHP, ele lhe fornece alguns helpers para trabalhar de forma mais simples com AJAX. Mas se não oferecesse, você poderia escrever seus arquivos JavaScripts na mão e ser feliz da mesma forma, não sendo assim um fator limitante.
  3.  Um framework não te engessa: se você entendeu todos os conceitos e a base de como funciona seu framework preferido, ele não deverá te engessar, pois, sempre você conseguirá criar o que deseja. É claro que se você tentar usar um framework para desenvolvimento web para criar um aplicativo desktop, não vai dar certo.
  4. Um framework não é fácil de aprender: um framework não é simples de aprender e de usar sem o mínimo de entendimento de OOP ou Programação Orientada a Objetos além da arquitetura que o mesmo utiliza. No caso do CakePHP, se você não conhece OOP não saberá a vantagem de criar e usar/não saberá criar e usar, por exemplo, components e helper. Ou o que você poderá fazer usando o app_controller / app_model, uma vez que todos os controllers e models são filhos deles. A arquitetura também lhe ajudará a entender onde colocar o que. Ou seja, quem é o tal model, view e controller e o que colocar dentro de cada um deles.
  5. Um framework não faz mágica sozinho: o framework não sabe se você quer ordenar de forma ascendente ou descendente, a menos que você diga a ele. Lembre-se, um framework te ajuda a manter o código organizado e fornecendo algumas facilidades genéricas, permitindo que você desenvolva cada vez mais rápido.

Bom pessoal, essas são algumas das coisas que vi muita gente confundindo. Caso alguém saiba de mais um fato, comente!

Forte abraço e até a próxima!

8 Comment

  1. Cara, comecei com o cake há uma semana e teus tutoriais me ajudaram bastante. Tenho lido teus post e meus parabéns, véi!
    Agora, só tava com uma duvidazinha, to desenvolvendo um backend (um cms personalizado e simples) pra um site, mas acontece que qndo eu edito campos do tipo “text” dá algo estranho e a formatação fica cheia de espaços antes e depois. Alguma idéia?

    Abraço

  2. Os pontos 2 e 3 eu já tive que explicar para muitas pessoas, muita gente acha que a partir do momento que se começa a usar um framework, todas as funcionalidades da linguagem ficam “desabilitadas”.
    Eu só queria entender dá onde as pessoas tiram isso.

    Muito bom post!
    Abraço

  3. Tulio,

    A sua definicao pode ate ser valida pro CakePHP – mas esta longe de ser a definicao de framework…

    1. O Zope é um framework – e um CMS, out of the box

    2. De forma geral, é verdade… Mas uns conseguem integrar-se melhor que outros. AJAX com WebWork, por exemplo, é uma tortura (alem de um exemplo claro de framework ATRAPALHANDO – vide item 3, a seguir)

    3. Depende do framework – a grande maioria engessa de uma maneira ou de outra. Por engessar, leia-se obrigar voce a fazer a coisa seguindo um padrao especifico (nem que seja de diretorios). E voce NEM SEMPRE consegue criar o que deseja. Exemplo: criar uma aplicacao REST-compatible com Struts 1…

    4. Rails é mais facil de aprender do que Ruby. Ja vi gente utilizando RoR sem sequer entender o que é um Objeto (com graus variados de sucesso). Isso obviamente pode se tornar um problema (especialmente para a comunidade, que vai ter que lidar com uma enxurrada de ‘noobs’)… Mas é possivel. Outro exemplo: o framework do Lego Mindstorm!

    5. Mais uma vez, DEPENDE. Muitos frameworks baseiam-se em CONVENÇÕES (Rails, Django, Grails). Você não precisa dizer muita coisa pra eles (como por exemplo, a questão da ordenação que voce levantou)…

  4. herval,

    1 – sobre o Zope, pelo que li rapidamente sobre ele, trata-se de um framework para a construção de CMS’s… Para mim continua sendo um framework…rs… (mas irei ler mais a respeito para dar um opinião mais completa)

    2 – a tortura geralmente acontece quando esperamos que aconteça muita mágica… Para mim até hoje não me impediu… Já usei AJAX com o Mentawai (Java) e CakePHP, sem problemas… Se der muito problemas, nada que fazendo na mão não resolva…

    3 – Essa é exatamente a vantagem do Framework que obriga você a usar uma arquitetura bem definida… Ele não te engessa, te obriga a ser organizado e a manter seu projeto organizado… Isso é válido para alguns arquivos de configuração e etc…

    4 – Concordo… Mas se o indivíduo souber a linguagem facilita muito…

    5 – Sim, mas basta saber que a maioria que usa CONVENTIONS OVER CONFIGURATION, assim como o Cake, lhe permite realizar “configurações” quando necessário…

    Obrigado pelo comentário…

  5. Pelo que entendi no seu comentário… eu não posso utilizar o cakePHP/framework para desenvolver um aplicação web, é isso? se sim, por que?

    Grato pela atenção.

  6. Aprendiz, serio que foi isso que voce entendeu?? kkkkk

    é meu filho.. melhor usar o wordpress mesmo..

  7. Tulio, parabens pelo site.
    Mas uma duvida que tenho é se o cakephp suporta o dolibarr ERP/CRM ou o SugarCRM e vice versa…se da pra usar o cakephp dentro destas ferramentas citadas e como fazer isso.

    aguardo respostas.

    abraços

Deixe uma resposta