Cómo facilitar problemas complejos descomponiendo y componiendo

Discover Functional JavaScript fue nombrado uno de los mejores libros nuevos de programación funcional por BookAuthority .

Nuestra forma natural de lidiar con la complejidad es dividirla en pedazos más pequeños y luego volver a unir todo.

Este es un proceso de dos pasos:

  • descomponer el problema en partes más pequeñas
  • compone las partes pequeñas para solucionar el problema

Descomponemos en partes más pequeñas porque son más fáciles de entender e implementar. Las piezas más pequeñas se pueden desarrollar en paralelo.

El proceso de descomposición consiste en asignar responsabilidades y dar nombres. Esto hace que sea fácil hablar y razonar. Una vez que identificamos una responsabilidad, podemos reutilizarla.

La composición consiste en combinar las partes pequeñas y establecer una relación entre ellas. Decidimos la forma en que se comunican estas piezas, el orden en que se ejecutan y cómo fluyen los datos entre ellas.

Encontramos un sistema difícil de entender incluso si está dividido en partes más pequeñas, si hay un gran número de relaciones entre estas partes. Para que un sistema sea más fácil de entender, necesitamos minimizar el número de posibles conexiones entre sus partes.

Descomposición de objetos

Los objetos son más que estado y comportamiento trabajando juntos. Los objetos son cosas con responsabilidades.

Descomponer

En Cómo crear una aplicación de tres capas con React, tomo una aplicación de lista de tareas y divido las responsabilidades entre los siguientes objetos:

  • TodoDataService : responsable de la comunicación con el servidor Todo API
  • UserDataService : responsable de la comunicación con la API de usuario del servidor.
  • TodoStore: el almacén de dominios para gestionar las tareas pendientes. Es la única fuente de verdad con respecto a las tareas pendientes.
  • UserStore : la tienda de dominios para administrar usuarios.
  • TodoListContainer : el componente del contenedor raíz que muestra la lista de tareas pendientes.

Como puede ver, al descomponer, asigno responsabilidades y doy nombres.

Componer

A continuación, los compongo juntos en una sola función. Este es el lugar donde se crean todos los objetos y se inyectan las dependencias. Se llama Raíz de composición.

Discover Functional JavaScript fue nombrado uno de los¡Los mejores libros nuevos de programación funcional de BookAuthority !

Para obtener más información sobre la aplicación de técnicas de programación funcional en React, eche un vistazo a Functional React .

Aprenda React funcional , de una manera basada en proyectos, con Arquitectura funcional con React y Redux .

Seguir en Twitter