Выбор ответа Senior SOLID и принципы обновлено
Закон Деметры в компоненте
Вопрос
Какой код нарушает закон Деметры («говори только с ближайшими друзьями»)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: <City value={order.customer.address.city} /. Цепочка order.customer.address.city означает, что список заказов знает внутреннюю структуру заказа, клиента и адреса.
Варианты ответа
<City value={order.customer.address.city} />правильный ответconst { city, street } = propsв компонентеitems.map(i => i.id)по своим даннымuseOrder(orderId)внутри компонента заказа
Разбор
Цепочка order.customer.address.city означает, что список заказов знает внутреннюю структуру заказа, клиента и адреса. Поменяется структура адреса, и правки расползутся по компонентам. Лучше дать заказу селектор или поле deliveryCity. Деструктуризация своих пропсов и map по своим данным это работа с ближайшими объектами. Хук данных нормальная абстракция.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Композиция вместо наследования
Следующий вопрос
Инверсия зависимостей в React-приложении