Як полегшити складні задачі, розкладаючи та складаючи

Відкрийте функціональний JavaScript було визнано однією з найкращих нових книг про функціональне програмування від BookAuthority !

Наш природний спосіб боротьби зі складністю полягає в тому, щоб розбити її на менші шматочки, а потім скласти все назад.

Це двоступеневий процес:

  • розкласти задачу на менші частини
  • складіть дрібні деталі для вирішення проблеми

Ми розкладаємося на менші частини, оскільки їх легше зрозуміти та реалізувати. Менші деталі можна розробляти паралельно.

Процес розкладання стосується розподілу відповідальності та надання імен. Це дозволяє легко говорити і міркувати про. Як тільки ми визначимо відповідальність, ми можемо використовувати її повторно.

Композиція полягає у поєднанні дрібних частин разом та встановленні взаємозв’язку між ними. Ми вирішуємо спосіб взаємодії цих фрагментів, порядок їх виконання та спосіб обміну даними між ними.

Нам важко зрозуміти систему, навіть якщо вона розділена на більш дрібні частини, якщо між цими частинами існує велика кількість зв'язків. Для того, щоб полегшити розуміння системи, нам потрібно мінімізувати кількість можливих зв’язків між її частинами.

Розкладання об’єкта

Об'єкти - це більше, ніж стан і поведінка, що працюють разом. Предмети - це речі, на які покладено обов'язки.

Розкласти

У розділі Як створити тришарову програму за допомогою React я беру програму зі списком справ і розподіляю обов'язки між такими об'єктами:

  • TodoDataService : відповідає за зв'язок із сервером Todo API
  • UserDataService : відповідає за зв'язок із серверним API користувача.
  • TodoStore: сховище доменів для управління завданнями. Це єдине джерело істини щодо завдань.
  • UserStore : магазин доменів для управління користувачами.
  • TodoListContainer : кореневий компонент контейнера, що відображає список завдань.

Як бачите, при розкладанні я розподіляю обов'язки та називаю імена.

Скласти

Далі я складаю їх разом у єдину функцію. Тут створюються всі об’єкти та вводяться залежності. Він називається Композиційний корінь.

Discover Functional JavaScript був названий одним ізнайкращі нові книги про функціональне програмування від BookAuthority !

Докладніше про застосування методів функціонального програмування в React погляньте на Functional React .

Вивчіть функціональний React на основі проекту за допомогою функціональної архітектури з React та Redux .

Підпишіться на Twitter