frameworks x desenvolvedores
Outro dia na lista php-especialista rolou uma discussão no mínimo curiosa sobre o uso de frameworks. Uns defendiam os frameworks (eu era um desses) e outros eram radicalmente contra, na verdade uma pessoa era radicalmente contra.
Acompanhando a discussão e até participando, refleti sobre alguns pontos e percebi um detalhe que até então estava passando desapercebido por mim: frameworks só deveriam ser usados por quem consegue e tem responsailidade ao usá-los.
A frase acima parece meio ambígua e talvez até agressiva, concordo, mas posso explicar melhor.
Tenho visto constantemente em fóruns de discussão, listas e etc, pessoas com dúvida sobre o framework X, só que grande parte dessas dúvidas não são em função de uma limitação do framework X e sim uma limitação do desenvolvedor. Vejo que por exemplo, com essa explosão dos frameworks WEB/MVC, que muitos desenvolvedores fazem o uso do framework X de forma famigerada ferindo todos os conceitos de MVC, conseguem simplesmente esquecer que o framework foi construído dentro desse padrão e que o ideal é que ele permaneça dessa forma. Quando digo isso, não digo isso porque o framework X deve ser imutável, na verdade a grande maioria dos frameworks oferece flexibilidade o suficiente para ser extendido e até alterado (que na maiora das vezes não é a melhor decisão), mas de forma que seja respeitado a sua arquitetura e ‘boas práticas’ de design de uma aplicação.
Quase todos esses frameworks foram construídos usando OO, mas mesmo assim a maioria dos desenvolvedores que usam esses frameworks não conhecem os principais (básicos) conceitos de OO e com isso acabam tomando decisões que no futuro irá prejudicar o projeto como um todo e consequentemente irão ter o seu filme queimado. Em muitos casos a aplicação correta dos conceitos de OO resolveriam de forma elegante e reutilizável aquele problema que outros optam por resolver de forma bisonha.
Onde eu quero chegar com tudo isso?
O que eu quero dizer é que todos deveríamos nos preocupar em entender como as coisas funcionam antes mesmo de usá-las, aprendi isso há bastante tempo atrás com um amigo meu na época em que agia da mesma forma que estou citando aqui, portanto compreendo perfeitamente algumas pessoas ainda agirem dessa forma, principalmente as mais inexperientes, por isso resolvi ter a iniciativa de escrever esse post e talvez gerar uma reflexão. Não sou o dono da verdade, não construo os melhores softwares do mundo, mas procuro sempre saber e entender o que eu estou usando e o que estou fazendo, pois com isso evito problemas para mim e para o meu projeto. E o principal é que evoluo.
Dicas
Antes de usar algo, procure se perguntar:
- O que eu preciso?
- Como “x” funciona?
- Usar “x” resolve o meu problema?
- “x” vai me ajudar ou atrapalhar?
- Quais são as outras alternativas a “x”?
Acredito que com respostas para as questões acima é possível ter uma resposta que satisfaça a necessidade real do problema e que principalmente nos deixe com a sensação de que o melhor possível foi feito, pelo menos pensado foi. E se mesmo assim algo der errado, como conhecemos o problema e a solução que fracassou, fica mais fácil (ou menos difícil?) de identificar e resolver.
Se você gostou desse tópico, por favor considere deixar um comentário ou se inscreva no feed e tenha no futuro todos os tópicos entregues diretamente no seu agregador.





Cara, tu falou TUDO; um framework não deve se adaptar a aplicação, mas sim a aplicação tem que se adaptar a ele (e por isso a diversidade de frameworks é importante, bem como as customizações – muitas vezes por plugins – do próprio framework).
E uma coisa que se vê muito, mesmo: desenvolvedor sem conceito. O cara começa a usar um CakePHP ou WordPress, mas ele nunca colocou a mão pra escrever a interface E as classes e as queries SQL (dando um exemplo). Não tem coisa mais saudável para um desenvolvedor, que ele comece aprendendo do 0 a linguagem, pois acaba entendendo melhor os conceitos. E isso, para qualquer linguagem (imagine se um desenvolvedor Java começa aprendendo a usar o Spring e o HIbernate, e nunca fez lá um public void main()) hehe
Parabéns pelo post!
É isso! Sempre que converso com alguém que tá começando PHP, nunca falo de framework. Primeiro porque ele nem vai entender o que é. Segundo, porque, creio que ele deva saber pelo menos os princípios básicos de uma linguagem e os conceitos a ela aplicada.