Como criar um framework?
Estava revisando alguns conteúdos enquanto estudava PHP, Banco de dados, um tico de Front, e uma das sugestões foi criar o meu próprio framework para aprender e compreender melhor outros frameworks populares como Laravel e outros. Há algum material disponível para isso, ou devo analisar os frameworks existentes para tentar criar o meu?
Como Criar um Framework
Vamos começar esclarecendo duas definições comuns de framework:
Framework Conceitual: Frequentemente encontrado na literatura científica, refere-se a uma metodologia ou conjunto de conceitos que fornecem uma estrutura para abordar e resolver uma classe específica de problemas genéricos. Ele serve como um guia, ajudando os pesquisadores a entender e resolver determinados tipos de problemas.
Framework de Programação: É uma implementação prática de uma metodologia. Em termos simples, é uma estrutura pré-fabricada que os desenvolvedores podem usar para criar aplicativos específicos. Ele fornece um conjunto de ferramentas, bibliotecas e convenções que simplificam a resolução de uma classe de problemas.
Desmistificando os frameworks de programação.
Há um mito em torno do desenvolvimento de frameworks, sugerindo que são ferramentas mágicas acessíveis apenas a uma elite de programadores místicos. No entanto, a realidade é que um framework é apenas um software como qualquer outro. Qualquer desenvolvedor com uma compreensão dos princípios de programação e principalmente um entendimento sofisticado do problema que se pretende resolver pode criar um.
É possivel que sem qualeur formalismo ou rigor você já tenha criado diversos 'frameworks' para resolver uma classe de problemas que enfrentou sem sequer se dar conta.
Passos Básicos
- Identificar um Problema: Antes de tudo, você precisa de um problema generico para resolver. Pode ser algo que você tenha notado em seus próprios projetos ou uma necessidade comum na comunidade de desenvolvimento.
-
Definir Requisitos: Defina claramente o que você espera que seu framework faça. Liste as funcionalidades essenciais e as opcionais.
-
Esboçar um Design: Planeje a arquitetura do seu framework. Como as diferentes partes vão interagir? Quais padrões de design você usará? Qual vai ser a API exposta aos usários?
-
Prototipagem: Crie uma versão inicial do seu framework. Não se preocupe em torná-lo perfeito; o objetivo é ter algo funcional.
-
Testar: Use seu framework em diferentes projetos e contextos. Observe onde ele funciona bem e onde pode ser melhorado.
- Iterar: Com base no feedback e nos testes, faça as alterações necessárias. Repita os passos 1,2,3,4 até sentir que está satisfeito com seu framework.
Acho louvável a ideia de criar um framework como base de estudo. Realmente é um desafio.
Como você falou do PHP, acho que um framework do zero deve ter algumas coisas iniciais:
- Ser MVC: Ter a camada de view, de controller, de model
- Permitir o uso de template bind: Ou seja, se o controller exporta uma variável "foo", ele pode ser lida na view
- Possuir um ORM: Assim fica fácil fazer cruds e operações mais simples no SQL, sem digitar SQL
Eu ja participei ativamente da construção de 2 frameworks onde trabalho, um em 2002 (SIM, 2002!) e outro em 2007. Agora estamos migrando tudo pra spring boot + angular.
recentemente crie um, mas ainda preciso atualizar algumas coisas, tenho algumas ideias, mas para motivar você a... caso queira escrevi no medium, copiar e trazer para cá seria inútil, mas se quiser saber dá um pulo lá. https://faustinopsy.medium.com/geradores-de-c%C3%B3digos-gerador-de-crud-mvc-php-bc668af9ae64