Size: a a a

Programming Offtop

2020 August 15

AI

Arkadii Ivanov in Programming Offtop
Денис
вот сейчас не понятно, у экрана есть цепочка сообщений, которые обрабатываются и в результате чего меняется состояние экрана

компонент генерирует сообщение, которое обработает редусер компонента и вернет новое состояние компонента, но как экран получит это состояние для отрисовки?
Отрисовка внутри компонента
источник

Д

Денис in Programming Offtop
ну к примеру в compose на сколько я знаю только одна точка для обновления состояния экрана? если это не так поправьте
источник

ML

Mikhail Levchenko in Programming Offtop
Денис
единственное только что нужно во всех редусерах что принимают сообщения данного компонента реализовывать
is ComponentMessage -> {
           currentState.copy(
               componentState = componentReducer(currentState, msg)
           )
       }

что не очень удобно
Да, в этом и основая сила (полный контроль) и основная проблема интеграции
источник

Д

Денис in Programming Offtop
и эта проблема как то решается в compose?
источник

ML

Mikhail Levchenko in Programming Offtop
Денис
понимаю, потому и спрашиваю возможно ли ее построить в принципе?
Тут есть два мнения и мы, например, с Аркадием в этом расходимся
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
ну к примеру в compose на сколько я знаю только одна точка для обновления состояния экрана? если это не так поправьте
Скоуп отрисовки может быть разный. Каждый фрагмент может рисовать свой кусок UI. Например компонент кнопка только кнопку.
источник

AM

Andrew Mikhaylov in Programming Offtop
Прекрасные новости! /s
источник

AM

Andrew Mikhaylov in Programming Offtop
Теперь с Docker Hub будут удалять образы, не обновлявшиеся больше 6 месяцев:

> Docker is introducing a container image retention policy which will be enforced starting November 1, 2020. The container image retention policy will apply to the following plans:
> - Free plans will have a 6 month image retention limit
> - Pro and Team plans will have unlimited image retention

Если хотите автоматически триггерить сборку каждые 5.99 месяцев, нужно использовать неофициальные образы (официальные не триггерят). Лучше всего scratch, он 0 байт займёт:

FROM hyperized/scratch:latest as trigger


(hyperized -- это наш DevOps, но можете сами сделать proxy-образ для scratch)

Проверьте, не используете ли у себя редко обновляемые образы. Возможно, имеет смысл забрать их под свою опеку, чтобы в ноябре релизы не сломались.
источник

Д

Денис in Programming Offtop
Денис
и эта проблема как то решается в compose?
у тут вижу только возможность выкинуть эффект обновления компонента
источник

AI

Arkadii Ivanov in Programming Offtop
Mikhail Levchenko
Тут есть два мнения и мы, например, с Аркадием в этом расходимся
Дай пять 🖐️
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
у тут вижу только возможность выкинуть эффект обновления компонента
Ну я говорю что компоненты могут сами себя рисовать. Не обязательно рисовать сразу всё. Можно разделить на куски.
источник

Д

Денис in Programming Offtop
а состояние экрана в таком случае не содержит состояние компонента?
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
а состояние экрана в таком случае не содержит состояние компонента?
В таком случае не содержит.
источник

Д

Денис in Programming Offtop
Arkadii Ivanov
В таком случае не содержит.
ну в текущем, когда он сам себя рисует
источник

AI

Arkadii Ivanov in Programming Offtop
И можно компонент втыкать куда угодно, просто удовлетворив зависимости.
источник

ML

Mikhail Levchenko in Programming Offtop
Денис
я пытаюсь сам принцип понять -
мессадж+стейт -> редусер -> стейт+эффект

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


Аналогично, можешь делать независимые черные коробочки а-ля MVICore, но с каждой коробочкой стейт все больше будет дробиться и тебе придется все больше думать о том, как и в какой последовательности связывать коробочки, как у них настроить жц и DI
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
ну в текущем, когда он сам себя рисует
Внешние компоненты ничего не знают о потрохах внутренних. Хотя какие-то данные можно выдать, если надо
источник

AD

Aleksey D. in Programming Offtop
Arkadii Ivanov
И можно компонент втыкать куда угодно, просто удовлетворив зависимости.
а БД тоже на каждый компонент своя создается?)
источник

AI

Arkadii Ivanov in Programming Offtop
Aleksey D.
а БД тоже на каждый компонент своя создается?)
Зависит от ситуации. Бывает и несколько компонентов одну бд используют
источник

Д

Денис in Programming Offtop
я пока не понимаю как в реалиях compose перерисовать компонент не перерисовывая все остальное, так вообще можно?
источник