Depois de gastar mais de quatro anos imersos em Laravel, eu me familiarizei muito com a arquitetura MVC (Model-View-Controller). Sua simplicidade e estrutura tornam uma alegria trabalhar com as pastas cuidadosamente organizadas de Laravel, ajudam os desenvolvedores a permanecer no caminho certo. Você sempre sabe onde colocar seu código e as extensas ferramentas embutidas-conexões de dados, redis, filas, migrações, ORM e muito mais-fazem configuração perfeita. Com apenas alguns ajustes no seu ambiente, seu aplicativo está pronto para ir.
Para mim, a abordagem do MVC de Laravel continua sendo uma das mais robustas. O modelo define seus dados, a visualização determina o que os usuários veem e o controller gerencia sua lógica de negócios. É simples, mas estruturado, e o Laravel oferece essa configuração por padrão, tornando -a uma excelente estrutura para o desenvolvimento.
Mas, à medida que minha carreira avançou e eu trabalhei em indústrias e empresas, percebi que a abordagem do MVC de Laravel nem sempre era suficiente, especialmente para aplicações complexas.
brilha para aplicativos simples, mas pode ficar aquém quando a lógica se torna mais complexa. Por exemplo, ao usar o Laravel para APIs, a camada visualiza geralmente não é utilizada. Enquanto isso, colocar toda a lógica nos controladores pode levar rapidamente a arquivos inchados que são difíceis de manter.
Para abordar isso, estendi a estrutura do MVC de Laravel, introduzindo o serviço Service e repositório , criando um fluxo como este:
controlador → Serviço → Repositório → Model
Esta abordagem em camadas torna o código mais sustentável e escalável. Com o tempo, fiquei tão acostumado a essa estrutura que parecia natural adotá -la em outros projetos.
Quando comecei a trabalhar com Go (Golang), parecia entrar em um território desconhecido. O GO é bem diferente do PHP e não possui uma estrutura de pastas inerente. Também não é uma linguagem orientada a objetos, então eu não conseguia simplesmente replicar o que sabia de Laravel.
Após alguma tentativa e erro, decidi manter o que eu estava familiarizado: o conceito csrm (controlador, serviço, repositório, modelo). Adaptei essa estrutura, mesmo que exigisse algum pensamento criativo. Além disso, explorei estruturas que poderiam simplificar o desenvolvimento. Eu tentei gin e fiber , escolhendo a fibra por sua velocidade, recursos modernos e comunidade ativa.
Após mais de dois anos trabalhando com Go e Fiber, decidi criar um Boilerplate para otimizar o desenvolvimento da API. Isso não era apenas para mim - eu queria ajudar outras pessoas a criar seus projetos rapidamente também.
o resultado: fibra API Boilerplate .
Este boilerplate é especificamente para APIs, por isso não inclui recursos como visualizar mecanismos de renderização ou modelo. A estrutura da pasta se inspira em:
também peguei emprestado muitas idéias da Laravel, como ORM, conexões de banco de dados, redis, filas e autenticação. Embora não seja tão abrangente quanto o Laravel, é mais do que suficiente para a construção de APIs gerais.
aqui está o que o Boilerplate oferece atualmente:
O repositório também inclui código de exemplo e um readme detalhado para guiá -lo através de cada pasta e recurso.
Embora o Boilerplate já esteja funcional, tenho planos de expandi -lo ainda mais, adicionando ferramentas como migrações, ouvintes de eventos e comandos. É um projeto em evolução projetado para crescer com seus usuários.
Você pode explorar e usar o Boilerplate. Sinta -se à vontade para personalizá -lo - adie as ferramentas que você gosta ou remove as que não precisa. Se você tiver sugestões ou solicitações de recursos, crie um problema ou envie uma solicitação de tração.
Confira o fibra API Boilerplate e leve -o para um spin. Espero que ajude a simplificar sua jornada de desenvolvimento de API GO tanto quanto para mim. Vamos construir algo incrível juntos!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3