Después de pasar más de cuatro años inmerso en Laravel, me he familiarizado con la arquitectura MVC (modelo-view-confontroller). Su simplicidad y estructura hacen que sea un placer trabajar, y las carpetas de Laravel organizadas ayudan a los desarrolladores a mantenerse en el camino. Siempre sabe dónde colocar su código, y las extensas herramientas incorporadas (conexiones de datos, redis, colas, migraciones, ORM y más) la configuración es sin problemas. Con solo unos pocos ajustes a su entorno, su aplicación está lista para funcionar.
Para mí, el enfoque MVC de Laravel sigue siendo uno de los más robustos. El modelo define sus datos, la vista determina lo que los usuarios ven, y el controlador administra su lógica comercial. Es simple pero estructurado, y Laravel ofrece esta configuración por defecto, por lo que es un excelente marco para el desarrollo.
Pero a medida que mi carrera avanzó y yo trabajamos en industrias y negocios, me di cuenta de que el enfoque de MVC de Laravel no siempre fue suficiente, especialmente para aplicaciones complejas.
MVC brilla para aplicaciones simples, pero puede quedarse corto cuando la lógica se vuelve más intrincada. Por ejemplo, cuando se usa Laravel para API, la capa ver a menudo no se usa. Mientras tanto, poner toda la lógica en los controladores puede conducir rápidamente a archivos hinchados que son difíciles de mantener.
Para abordar esto, extendí la estructura MVC de Laravel introduciendo servicio y repository , creando un flujo como este:
Controlador → Servicio → Repositorio → Model
Este enfoque en capas hace que el código sea más mantenible y escalable. Con el tiempo, me acostumbré tanto a esta estructura que se sintió natural adoptarla en otros proyectos.
Cuando comencé a trabajar con Go (Golang), se sentía como entrar en territorio desconocido. GO es bastante diferente de PHP y carece de una estructura de carpeta inherente. Tampoco es un lenguaje orientado a objetos, por lo que no pude simplemente replicar lo que sabía de Laravel.
Después de alguna prueba y error, decidí seguir con lo que estaba familiarizado con: el concepto csrm (controlador, servicio, repositorio, modelo). Adapté esta estructura para ir, a pesar de que requería un pensamiento creativo. Además, exploré marcos que podrían simplificar el desarrollo. Intenté gin y fiber , en última instancia, elección de la fibra para su velocidad, características modernas y comunidad activa.
Después de más de dos años de trabajar con GO y Fiber, decidí crear una caldera para optimizar el desarrollo de API. Esto no era solo para mí, quería ayudar a otros a establecer rápidamente sus proyectos también.
el resultado: fibra api boilerplate .
Esta calderera es específicamente para API, por lo que no incluye características como la representación de la vista o los motores de plantilla. La estructura de la carpeta se inspira en:
también tomé prestadas muchas ideas de Laravel, como ORM, conexiones de bases de datos, redis, colas y autenticación. Si bien no es tan integral como Laravel, es más que suficiente para construir API generales.
aquí está lo que ofrece actualmente la boilerplate:
El repositorio también incluye código de ejemplo y un detallado readMe para guiarlo a través de cada carpeta y función.
Si bien la Boilerplate ya es funcional, tengo planes de expandirlo aún más agregando herramientas como migraciones, oyentes de eventos y comandos. Es un proyecto en evolución diseñado para crecer con sus usuarios.
Puede explorar y usar la Boilerplate. Siéntase libre de personalizarlo: las herramientas agregadas que le gustan o eliminaran las que no necesita. Si tiene sugerencias o solicitudes de funciones, cree un problema o envíe una solicitud de extracción.
revisa el fibra API Boilerplate y tómalo para un giro. Espero que ayude a simplificar su viaje de desarrollo de API GO tanto como lo ha hecho para mí. ¡Construyamos algo increíble juntos!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3