in

controlador de vista de modelo – Recursos para aprender la arquitectura MVx para Android

apple touch icon@2

Aprender arquitecturas de GUI es difícil. Los he estado usando e investigando durante mucho tiempo y entiendo lo frustrante que puede ser.

Sugeriré leer Este artículo por Martin Folwer y Éste. Daré algunos principios y prácticas que utilizo al aprender e investigar. Y de ti necesitas escribir mucho de código para que pueda comprender mejor las cosas que aprende.

Aquí hay un par de cosas importantes de mi experiencia.

  • Algunos patrones / arquitecturas fueron desarrollados y / o refinados por tecnologías específicas.

Algunas de estas tecnologías ya no están en uso, por lo que es natural que estos patrones / arquitecturas evolucionen o se creen nuevos usando los más antiguos como base (para ideas de principios) para adaptarse a esto.

MVP y MVC son un ejemplo de esto. El original MVC fue concebido en los años setenta, por lo que en ese momento el controlador recibía la entrada del usuario para manejar los problemas específicos que tenían entonces. Después de eso, los marcos y bibliotecas que usamos hoy implementan estos patrones han cambiado. También cambió la complejidad de la aplicación. MVC tuvo algunos problemas que seguían sin estar claro cómo resolverlos. Esto se explica en los arcítulos anteriores con más detalle. El MVP vino después de eso, usando MVC como base. Aquí está el artículo original sobre MVP. Al presentador se le dio la responsabilidad de tener lógica de aplicación para manejar casos más complejos.

Si lo hacemos. Todos usamos frameworks y bibliotecas para implementar cosas y no es algo malo. Y sí, desarrollamos patrones para ayudarnos con estas tecnologías, para bien o para mal. Después de eso, tendemos a generalizar estos patrones para poder usarlos en otra tecnología, pero a veces es difícil.

Un ejemplo de esto es el Modelo de presentación. Se basa en tener un buen El enlace de datos mecanismo. Es un gran patrón y puedes desarrollar aplicaciones con él muy rápido, es solo que si te falta El enlace de datos va a ser un jadeo y te ralentizará mucho por lo que puede que no valga la pena usarlo para tecnológico razones en lugar de arquitectónico. Esa es la vida de un desarrollador 🙂

Entonces lo siguiente es:

  • No aprenda sobre patrones / arquitecturas de tecnologías que los están adoptando.

Aprenda de dónde provienen estos patrones. Conozca su historia. Tenga en cuenta la complejidad de las aplicaciones y la tecnología disponible en el momento de su creación.

Comprenda cuál es la idea detrás de ellos y luego vaya a tecnologías específicas. Los patrones / arquitecturas son la base para crear cosas. Cámbielos y adáptelos si es necesario. No dudes en experimentar

  • Los patrones no resuelven todos los problemas

Necesita cambiar, modificar y mezclar patrones para poder resolver sus problemas. Necesita comprenderlos bien para poder encontrar sus límites. Cuando llegue a un límite, haga lo que todo buen desarrollador debería hacer: Crea tu propia solución a los problemas. Esto es lo que ha hecho la gente. Por eso tenemos MVP, porque la gente tenía problemas con MVC y lo cambió a alguien más.

Si pudiéramos tener un patrón que resuelva todos nuestros problemas, no tendríamos más. Sin embargo, tenemos muchos de ellos.

  • Comprender todas las partes de un patrón

La gente se concentra en algunas partes de un patrón más que en otras. Este es el caso de la Modelo en todos los patrones MV *. La gente tiende a ignorar lo importante que es. Ellos diseñan Modelos anémicos trasladando la lógica a Servicios y Presentadores.

Modelo anémico no es el concepto de Modelo que la gente concibió, que tiene datos y comportamiento y modela cosas como un Vector en matemática o la operación de un Transferencia bancaria. Son solo datos que otros componentes modifican y abusan.

Entonces la gente tiene problemas para entender cómo compartir cosas entre sus presentadores. Si entienden lo que es un Modelo de aplicación y un DomainModel no tendrán estos problemas.

Sin embargo, todas las personas piensan en el Presentador como lo que dirige el programa, por lo que ponen tanta lógica que no les corresponde.

El código se vuelve feo, complicado y difícil de entender y modificar.

  • Comprenda la tecnología específica que está utilizando. Algunas tecnologías se desarrollan para necesidades específicas: móvil, escritorio, web, etc.

El marco de apertura y las bibliotecas es duro. A veces tienden a dificultar el uso de patrones. Comprenda la tecnología y la motivación detrás de ella, la lógica detrás de ella y el contexto en el que se desarrolló.

A veces, las tecnologías que se utilizan para aplicaciones móviles son diferentes a las tecnologías utilizadas para escritorio y web. Es natural.

Es cierto que a veces las nuevas tecnologías pueden mezclar las cosas y tener una limpio La implementación de un patrón puede ser difícil, pero si se hace una idea de los patrones, puede utilizar la tecnología específica que se adapte a sus necesidades.

Y uno muy importante:

  • No trates de encajar problemas para solución, encajar soluciones para problemas

Las tecnologías, patrones, arquitecturas, etc.son soluciones para problemas. Comprende los problemas que resuelven. Comprenda sus problemas y utilice estas soluciones para resolver sus problemas modificándolos y ampliándolos.

A menudo, las personas toman algo como MVP y tratan de usarlo para resolver todos sus problemas. No funciona de esa manera. A veces tienes un problema que no encaja bien con MVP. En este caso, modifica el patrón o usa uno diferente.

Aquí está la lista de recursos que puede utilizar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

obtener datos

Use Excel para convertir monedas y monedas en tiempo real

cK39SDyuY6LKoKsLTjswVJ 1200 80

Cómo obtener fragmentos prismáticos de Stardew Valley