O ódio que dá quando a solução tá ali e a gente não percebe!?
Nesse ultimo mês, reestruturando minha rotina de trabalho e realinhando meus objetivos profissionais, decidi que iria construir um novo tipo de produto na minha marca pessoal.
Decidi criar um boilerplate para aplicações SaaS em PHP com Laravel, Livewire e TenancyForLaravel para facilitar meu o dia a dia na construção de novos produtos, aquelas ideias que surgem pra resolver um problema aqui e ali, mas que sempre ficam na eterna fase de setup de ambiente e dá preguiça continuar. Também queria evitar cair nas abstrações e criar muitas ferramentas como o Filamentphp e exercitar ainda mais minhas habilidades como desenvolvedor.
Para isso elenquei alguns pontos necessários: minha solução irá trabalhar com Multi-tenancy, com databases separados, cada inquilino só conseguira ter acesso aos seus próprios dados e existirá um database central para o gerenciamento dos mesmos.
A primeira funcionalidade preciso escrever pra chegar nessa arquitetura foi a criação dos Inquilinos na plataforma, também concluí ser um bom lugar para iniciar o desenvolvimento, pela Central onde já poderia definir algumas estruturas de layout.
E assim me deparei ao meu primeiro problema, todos os testes básicos para o cadastro foram feitos e travei na verificação se o database do Inquilino havia sido criado.
Sobe, noves fora, desce, procura aqui, fuça ali, aprende a usar uma solução com db raw pra pesquisar no driver, sempre batalhando as conexões criadas no TenancyForLaravel, sofrendo…até que me lembro ver como a própria biblioteca testa essa criação, e não é que tava lá?
Ela instância um manager do database, baseado no tipo de conexão e implementa as devidas queries para verificar se foi criado um banco com o nome esperado.
No fim, quebrei a cabeça procurando uma solução de um não-problema, se a criação do banco já está coberta na suíte de testes da biblioteca e passando, por quê eu vou implementar de novo, não é mesmo?
As vezes a vida de programador tem dessa, na empolgação de experimentar e construir algo novo, é fácil desviar da solução que já existe. Só com o tempo, maturidade e cansaço que voltamos a focar no trabalho que deve ser feito.