Web Frameworks: realmente, é MESMO necessário usar um?
É claro que de 2013 (data do vídeo) para cá muita coisa mudou – pelo menos no tocante ao desenvolvimento PHP. Temos o Composer que nos permite "componentizar" a aplicação com aquilo que é necessário, e o grupo PHP-FIG. Mas o meu ponto aqui não é o PHP em si. E sim levantar a questão de que, para qualquer coisa que formos fazer, se é realmente preciso ter um framework em mãos para se fazer um projeto simples, por exemplo.
Recentemente, comecei um projeto pessoal novo. Seria um site para listagem de eventos locais, entre outros. De início, matutei a respeito de qual framework front-end JS eu deveria começar a usar (Angular, React, etc.)
Depois de um bom tempo pensando a respeito, vi que demoraria um tanto para usar um React, por exemplo – teria que estudá-lo primeiro. Angular 2 tenho experiência, e seria minha escolha direta. Entretanto, além de perder em SEO, que seria fundamental para o projeto, eu estaria matando uma formiga com bala de canhão ao usá-lo, pois cheguei à conclusão que além de perder em performance com tudo o que vem com ele eu não demandaria tanta coisa.
O meu projeto, inicialmente, seria realmente simples. Uma meia dúzia de requisições AJAX. Manipulação simples do DOM. A biblioteca jQuery – que não é um framework -, já me bastaria.
E quanto ao backend? Bem, eu construo a API no Phalcon. Ele é um framework PHP de alta performance. É uma implementação do PHP que roda em C, como um módulo. O Phalcon, além da abordagem MVC comum aos outros frameworks também vem com uma abordagem de micro-aplicação Web – justamente para construção de APIs, por exemplo.
Para que um framework bojudo, com um stack de coisas que não utilizaria? Quando se fala em framework PHP a comunidade já fala de maneira consensual: Laravel. Bem, estudei Laravel e, de fato, é um ótimo framework. Porém, não suporta todos os bancos de dados – como o MongoDB. Ele visa SGDBs relacionais. Ou seja, o Laravel acaba me "controlando". Tive que abrir mão em favor do Phalcon.
Em suma, é o que estou fazendo: uma micro-aplicação em PHP, com o mínimo de JavaScript. E de quebra usando o MongoDB em vez de um banco de dados relacional – mirando também a performance.
Ruído não é informação valiosa
A massa diz que "Laravel é o melhor". Eu retruco: as massas tendem a estarem erradas na maioria das vezes…
Muito barulho significa, no todo, ruído; variáveis por si só não representam dados, ensinaria o filósofo Nassim Taleb. Conhecimento é saber que o tomate é uma fruta; sabedoria, saber que tomates não vão na salada de frutas.
O princípio de Michelangelo
O mais sensato não seria avaliar o que é realmente necessário?
Quando perguntado como fez Davi, Michelangelo respondeu: "foi fácil. Foi só tirar da pedra aquilo que não era Davi". Menos é mais: o segredo pode não estar em incluir, mas sim em retirar coisas.