Size: a a a

React — русскоговорящее сообщество

2020 September 21

IN

Igor N in React — русскоговорящее сообщество
Dmitry Balakov
думаю не изменить ли ник на Singleton - зло)
уже было тут
источник

ei

export default - зло... in React — русскоговорящее сообщество
Dmitry Balakov
думаю не изменить ли ник на Singleton - зло)
Можешь конечно, только это будет бредом
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Dmitry Balakov
думаю не изменить ли ник на Singleton - зло)
боюсь спросить почему)
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
export default - зло is the side effect
Можешь конечно, только это будет бредом
https://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons

мне хватает 2-го пункта, чтобы считать что это антипаттерн (сколько крови у меня это попило)
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
тем более в реакт, где useMemo + useEffect дают тебе вохможность гибко управлять жизненным циклом, а любой singleton можно представить в виде фабрики
источник

A

Andrey in React — русскоговорящее сообщество
в контексте жс и фронтенда это едва ли проблема
источник

A

Andrey in React — русскоговорящее сообщество
Dmitry Balakov
тем более в реакт, где useMemo + useEffect дают тебе вохможность гибко управлять жизненным циклом, а любой singleton можно представить в виде фабрики
окей, как тот же инстанс хттп клиента шарить между фичами?)
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
кто вообще в реакте эти паттерны соблюдает? Как третья нога
источник

OT

Oruj Tatiyev in React — русскоговорящее сообщество
export default - зло is the side effect
Зачем ты post добавляешь?
убрал из названия экшена. в а api.js в export const postSomethig
export const getSomething
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
Andrey
окей, как тот же инстанс хттп клиента шарить между фичами?)
вообще говоря ты должен шарить не сам клиент, а его конструктор
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
это гарантирует, тестируемость кода без возможных постэфеектов от других тестов
источник

A

Andrey in React — русскоговорящее сообщество
Dmitry Balakov
вообще говоря ты должен шарить не сам клиент, а его конструктор
зачем?)
чтобы везде его вызывать при необходимости отправить запрос?

какую проблему это решит?
тесты мокаются тривиально, coupling - это в мире жс априори, хз шо тут еще
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
Andrey
зачем?)
чтобы везде его вызывать при необходимости отправить запрос?

какую проблему это решит?
тесты мокаются тривиально, coupling - это в мире жс априори, хз шо тут еще
я про тестируемость самой логике в сингтон инстансе
источник

A

Andrey in React — русскоговорящее сообщество
Dmitry Balakov
я про тестируемость самой логике в сингтон инстансе
можно пример?
источник

ei

export default - зло... in React — русскоговорящее сообщество
Это все фигня, очень узкая проблема
источник

ei

export default - зло... in React — русскоговорящее сообщество
А дефолтный экспорт это глобальная проблема всего жс
источник

BA

Bogdan Aleksandrovic... in React — русскоговорящее сообщество
Dmitry Balakov
назови хук по правилам useAny
он его светит внутри хока, хотя все работает и нет правил запрещающих это
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
возмем эффектор
если писать по их way - то у тебя получается singleton модель со сложным поведением и кучей сторов
для такого синглтона необходим event  - возвращения всех эвентов в начальное состояние (и просто наличие этого кода уже нарушение принципа Single Responsibility)
если  же переписать на фабрику и создавать ее по необходимости - то большая гарантия, что тесты адекватны + меньше кода (нет этого сброса)
источник

DB

Dmitry Balakov in React — русскоговорящее сообщество
условно Singleton не зло только в одном случае, если он не содержит состояния (ну это почти всегда фабрика)
источник

A

Andrey in React — русскоговорящее сообщество
Dmitry Balakov
возмем эффектор
если писать по их way - то у тебя получается singleton модель со сложным поведением и кучей сторов
для такого синглтона необходим event  - возвращения всех эвентов в начальное состояние (и просто наличие этого кода уже нарушение принципа Single Responsibility)
если  же переписать на фабрику и создавать ее по необходимости - то большая гарантия, что тесты адекватны + меньше кода (нет этого сброса)
так то будет не сброс состояния а просто дроп юнитов
для этих целей там есть fork, который позволяет с теми же юнитами и связями иметь другую "ветку" стейтов

но об этом лучше в эффектор чате конечно
источник