Size: a a a

JavaScript.Ninja

2020 July 03

VS

Vitaliy Stoliarov in JavaScript.Ninja
Alexander Dorogin
git fetch branch - 30s
yarn install - 2m
graphql lint - 2m
generate runnable tests - 40s
build - 9m
deploy docker images - 30s
lint - 4m
unit-test: 2m
visual testing - 4m
report/check coverage - 15s

в упрощенном виде наш ci выглядит так
visual testing один для всех? build тоже на все части выполняется? Если да, то почему не только на измененные? Например при изменении какой-то части делать ее билд и пушить в Docker реестр, а оттуда уже для E2E брать все, в том числе то, что было собрано в предыдущие разы
источник

AD

Alexander Dorogin in JavaScript.Ninja
Билд как я понял на все делается, да. Думаю пока не успели разбить это, но в целом там не так много времени выиграно будет я думаю. По поводу visual - применяются только к измененным файлам
источник

AD

Alexander Dorogin in JavaScript.Ninja
Ну 5 мин можно сэкономить, допустим)
источник

N

Nick in JavaScript.Ninja
Alexander Dorogin
У нас огромнейшая монорепа фронтовая, ну и ci пайплайны в самом лучшем случае проходят за 20 минут. Чаще это будет около 25-30. Хоть там и делаются импрувы, чтобы тесты гонялись только на изменные файлы, скажем, и другие вещи, ноооо все равно.
А если не секрет, что за компания?
источник

AD

Alexander Dorogin in JavaScript.Ninja
Наши специально обученные люди ещё не успели сделать это. Компания Adform - продукт в Adtech сфере
источник

VS

Vitaliy Stoliarov in JavaScript.Ninja
надеюсь в скором времени проверю у себя, но что-то  мне подсказывает, что в монорепе при прогоне всех тестов с учетом только измененных файлов будет столько же времени как и в мультирепе
источник

IK

Illya Klymov in JavaScript.Ninja
A A
Лично я нигде нормального обоснования не нашел
Потому что нижние компоненты (дом) генерируют события. Бритва Оккама говорит, что на надо плодить сущностей без надобности - чтобы делать все одинаково используем события
источник

R

Rostislav Futornoy in JavaScript.Ninja
A A
Реакт то всю дорогу так живет)
это уж точно)
источник

M

Misha in JavaScript.Ninja
A A
Не надо использовать контекст как стэйт менеджер!
Context is designed to share data that can be considered “global” for a tree of React components, such as the current authenticated user, theme, or preferred language. For example, in the code below we manually thread through a “theme” prop in order to style the
источник

A

A A in JavaScript.Ninja
Misha
Context is designed to share data that can be considered “global” for a tree of React components, such as the current authenticated user, theme, or preferred language. For example, in the code below we manually thread through a “theme” prop in order to style the
Может полную ссылку просто?)
источник

M

Misha in JavaScript.Ninja
A A
Может полную ссылку просто?)
источник

A

A A in JavaScript.Ninja
Можешь попробовать использовать как замена редакс, я так делал. Сложно очень стало, когда проект вырос и редьюсеров стало штук 12. Пришлось на редакс все перетащить. Но это сугубо мой личный опыт.
источник

A

A A in JavaScript.Ninja
И трудности возникают, если захочешь из контекста достать данные для классового компонента, это прям такая, я бы сказал - проблема
источник

M

Misha in JavaScript.Ninja
A A
И трудности возникают, если захочешь из контекста достать данные для классового компонента, это прям такая, я бы сказал - проблема
классовыекомпонентыненужнымымодныемолодыекрасивые
источник

A

A A in JavaScript.Ninja
Misha
классовыекомпонентыненужнымымодныемолодыекрасивые
Лол, удачи 👍
источник

II

Ivan Ivanov in JavaScript.Ninja
A A
И трудности возникают, если захочешь из контекста достать данные для классового компонента, это прям такая, я бы сказал - проблема
Всмысле? react-redux использует для этого HOC, что мешает использовать HOC под любой контекст?
источник

A

A A in JavaScript.Ninja
Ivan Ivanov
Всмысле? react-redux использует для этого HOC, что мешает использовать HOC под любой контекст?
Это же костыль
источник

II

Ivan Ivanov in JavaScript.Ninja
Еще раз не понял. Какую проблему решает редакс в отношении класс компонентов которую не решает обычный контекст?
источник

VK

Vladimir Klimov in JavaScript.Ninja
Ivan Ivanov
Еще раз не понял. Какую проблему решает редакс в отношении класс компонентов которую не решает обычный контекст?
Контекст - способ доставить данные компонентам, а редакс - библиотека для управления этими данными🤷‍♂
Зачем писать "свой редакс"? Чем это лучше? Не нравится редакс - возьмите другой менеджер состояния, их хватает
источник

II

Ivan Ivanov in JavaScript.Ninja
Зачем тянуть в бандл менеджер состояния если есть react state?
источник