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/
Excelente explicación. Gracias por compartir tú conocimientos.. 👏
Excelente vídeo. Muy útil. Gracias!
Que chevere ver un ejemplo de esta arquitectura a nivel de código
👌
Muy buenos videos, muy agradecido
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.
No sabe no responde!!! 😭
Podemos decir con toda certeza que en CMS’s como Wordpress los plugins siguen este patrón de arquitectura.
Totalmente, WordPress es un muy buen ejemplo de la flexibilidad que se puede lograr con plugins
Excelente vídeo
Visto en 08/11/2020
Gracias, me acomodaste una idea con el video!
Excelente Leonardo 🙌
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...
Tengo una duda: El creador del sistema tiene que documentar y exponer una especie de API para poder integrar el sistema con el plugin que se cree?
Así es Jaime.
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/
Bueno te falto lo mas importante los ejemplos con codigos
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/
if (cliente == "A") { Install("PuligginA") XD XD