Buen día Manuel, excelentes videos y aportes a la comunidad he aprendido bastantes cosas nuevas. Tengo una sugerencia, no hay forma de que realices un curso o un video completo donde le apliques la arquitectura de software completamente a un proyecto pequeño de 2 o 3 tablas o algo asi.
Los criterios anteriores explicados pueden ser el equivalente a lo siguiente: 1) De los principios SOLID el mas relevante seria el 5to principio "Inversion de Dependencia". 2) Se debe modularizar el codigo y hacerlo flexible a traves de abstracciones e interfaces de comunicacion entre clases, un ejemplo practico podrian ser la aplicacion de los patrones de diseño "Facade", "Decorator" y "Observer". 3) Dado que estamos siguiendo el 5to principio SOLID deberemos contar con un "Inyector de dependencias", bien sea uno que ya exista o un personalizado, creado por nosostro para nuestra aplicacion, esto se puede emplear a traves de "arquitectura" o "diseño" (archivos de configuracion, o sistemas de carpetas). 4) Si bien el modelo de desarrollo microkernel implica la independencia del sistema principal para proveer un funcionamiento base, lo que no podemos ignorar es que nuestro sistema no ignora las posibles modificaciones externas, por ejemplo mediante el 2do principio SOLID (Open/Close), esto solo nos dice que el programa sabe que sera extendido en ciertas partes, no sabemos "como" ni "que" hara, solo podemos saber y decidir "donde" lo hara. 5) A los usuarios que crean el plugin basta con proveerles las "interface" que deben implementar sus clases para poder integrarse a nuestro sistema. Esta interface puede tener como nombre la version de la aplicacion para la que fue creada. Esto se recomienda, dado que si el programa base continua en desarrollo puede que el cambio de logica interna nos obligue a redefinir la estructura o metodos de una interface (es solo otra manera de decir, que los plugins creados hasta el momento quedarian obsoletos, y las personas que dan soporte a los plugins deben recrear la funcionalidad que hicieron bajo una nueva interface). Espero que la explicacion sirva para los que llevan tiempo en el desarrollo... =3
="( tenia otra explicacion para los que llevaban menos tiempo pero se me borro por un fallo de internet... pude salvar esto que lo tenia en el portapapeles...
Y como se puede implementar este patron con SAAS como por ejemplo shopify donde extiendo mi aplicacion pero claramente no configuro ningun archivo ni tampoco descargo nada solo lo instalo a traves de un marketplace, incluso shopify permite q terceros desarrollen plugins para ellos
En ese tipo de casos, se necesita algo más flexible que lo que se haría en una aplicación empresarial. Pero muchas implementaciones parten de dos ideas esenciales: 1. Un registro ante el sistema principal de los plugins. 2. Un punto de entrada para la ejecución del plugin.
Tal vez podrías realizar un vídeo ejemplificado utilizando este patrón, sobre un aplicación de geolocalizacion utilizando api de google maps o una calculadora , saludos lml
Saludos Jonathan! Te recomiendo que te des una vuelta por mi curso de patrones de arquitectura. Allí vemos ejemplos de implementación de microkernel: cursos.manuelzapata.co/inscripcion-curso-practico-patrones-arquitectura/
Es algo que he ido corrigiendo con el tiempo. Mis primeros videos nunca incluían código. Si quieres profundizar en el patrón (código incluido), puedes darle una mirada a mi curso premium de Patrones de Arquitectura: cursosmz.co/inscripcion-curso-practico-patrones-arquitectura/