state => ui

Система пользовательского интерфейса, состоящая из независимых компонентов без состояния, чрезвычайно гибкая. Когда отдельные части необходимо заменить или обновить, эти изменения изолированы и не вызывают поломки других частей системы. Представление об этих компонентах как о чистых функциях - то есть одно и то же состояние всегда дает одинаковый результат - может помочь обеспечить возможность компоновки.

Чистая функция - это функция, которая демонстрирует свойство подстановки: замена вызова его возвращенным значением должна сделать программу эквивалентной. Например, concat («привет», «мир») можно заменить на «привет, мир» без изменения поведения вашей программы.

Как мы можем применить это к графическому пользовательскому интерфейсу? Если функция возвращает абстрактное представление виджетов (или разметки) для отображения на экране…

- Чистый интерфейс от Гильермо Рауха

Почему все является «компонентом»?

Называть вещи сложно, здесь нет споров, но когда вы начинаете классифицировать различные части пользовательского интерфейса по страницам, представлениям, потокам, атомам, молекулам, материалам или котятам, вы уже начали подрывать концепцию компонуемости и вероятно, потребуется больше времени и усилий, чтобы заставить целую команду людей «согласовать» предложенные вами соглашения об именах, чем это того стоит.

Смысл этого в том, чтобы думать обо всем как о взаимодействующей системе. Вы можете нарезать и нарезать компоненты по своему усмотрению, и эти компоненты, вероятно, будут меняться и настраиваться по мере разработки системы. Преждевременная оптимизация - это ловушка, в которую легко попасть. Примите хаос в процессе строительства. Паттерны появятся из изначального набора пользовательского интерфейса, которым является ваш продукт, и, постоянно размышляя о компонуемой системе, вы, вероятно, придете к чему-то более гибкому и надежному, чем если бы один человек диктовал догматические рамки для работы.

Переписка с сайта jxnblk.com/writing