Size: a a a

Programming Offtop

2020 August 15

O

OlegKrikun in Programming Offtop
Andrew Mikhaylov
Разве flatMap не принимает
T -> Monad<T>
? Вроде map -- это map, а вместо flatMap там flatMapMerge / flatMapConcat (если я совсем после длинного отпуска пургу не гоню)
вроде тру
источник

O

OlegKrikun in Programming Offtop
если мы про флоу
источник

ML

Mikhail Levchenko in Programming Offtop
Andrei Shikov
еще кстати интересно, как можно общий стейт по модулям раскидать
он просто лежит весь целиком в единственном модуле, от которого зависит все остальное?
я просто после оптимизации инкрементальной сборки в проекте оч сильно шарахаюсь от часто меняющихся общих зависимостей
Раскидывать куски стейта. Стейт отдельных экранов с их логикой
источник

AM

Andrew Mikhaylov in Programming Offtop
источник

AI

Arkadii Ivanov in Programming Offtop
Кстати можно сделать свой несуспенд map
источник

(

( in Programming Offtop
Andrew Mikhaylov
Разве flatMap не принимает
T -> Monad<T>
? Вроде map -- это map, а вместо flatMap там flatMapMerge / flatMapConcat (если я совсем после длинного отпуска пургу не гоню)
ну, Monad по-сути перенесен в позицию модификатора, и.е.
suspend fun jopa(): T

~
fu
n jopa(): Suspend<T>
с
некоторой долей воображения
источник

AI

Arkadii Ivanov in Programming Offtop
источник

ML

Mikhail Levchenko in Programming Offtop
Mikhail Levchenko
Раскидывать куски стейта. Стейт отдельных экранов с их логикой
Общий стейт в таких случаях висит в аргрегирцющим модуле,где оьычно лежит DI
источник

(

( in Programming Offtop
Andrew Mikhaylov
Разве flatMap не принимает
T -> Monad<T>
? Вроде map -- это map, а вместо flatMap там flatMapMerge / flatMapConcat (если я совсем после длинного отпуска пургу не гоню)
А в мапе ты можешь вызывать суспенд функции
источник

AM

Andrew Mikhaylov in Programming Offtop
(
ну, Monad по-сути перенесен в позицию модификатора, и.е.
suspend fun jopa(): T

~
fu
n jopa(): Suspend<T>
с
некоторой долей воображения
А, с этой точки зрения. Не могу ни согласиться, ни возразить на 100%, так как мы же о флоу как о монаде говорим, саспенд, который Async, тут вроде бы ни при чём.
источник

AM

Andrew Mikhaylov in Programming Offtop
Но да, если уж на то пошло, у flatMap* там T -> Async<Flow<T>>, вероятно.
источник

(

( in Programming Offtop
Andrew Mikhaylov
А, с этой точки зрения. Не могу ни согласиться, ни возразить на 100%, так как мы же о флоу как о монаде говорим, саспенд, который Async, тут вроде бы ни при чём.
Ну, корутины на нормальные типы из-за модификатора так себе ложатся, мы это уже проходили
источник

Д

Денис in Programming Offtop
последний вопрос по кастомным компонентам, подскажите если я добавляю компонент на экран, допустим как то так:
@Composable
fun render(state: ScreenState) {
   Column {
       Text(
           text = state.field
       )
       Component()
   }
}

@Composable
fun Component(){
   //...
}

где я должен запускать обработку его очереди сообщений? либо компонент нужно как то иным образом инициализировать?
источник

AM

Andrew Mikhaylov in Programming Offtop
(
Ну, корутины на нормальные типы из-за модификатора так себе ложатся, мы это уже проходили
Ну вот если забыть о модификаторе, который у флетмепов, КМК, ради structured concurrency, то всё там хорошо.
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
последний вопрос по кастомным компонентам, подскажите если я добавляю компонент на экран, допустим как то так:
@Composable
fun render(state: ScreenState) {
   Column {
       Text(
           text = state.field
       )
       Component()
   }
}

@Composable
fun Component(){
   //...
}

где я должен запускать обработку его очереди сообщений? либо компонент нужно как то иным образом инициализировать?
Имхо это UI компонент. Я бы компоненты делал фрагментами. Тогда у каждого есть жизненный цикл. А внутри уже отрисовка через компоуз
источник

Д

Денис in Programming Offtop
Arkadii Ivanov
Имхо это UI компонент. Я бы компоненты делал фрагментами. Тогда у каждого есть жизненный цикл. А внутри уже отрисовка через компоуз
всмысле кнопку отдельным фрагментом делать?
источник

AI

Arkadii Ivanov in Programming Offtop
Денис
всмысле кнопку отдельным фрагментом делать?
Ага. И получается переиспользуемый компонент с логикой.
источник

AI

Arkadii Ivanov in Programming Offtop
Но я бы подумал прежде чем так сильно дробить. Если там прямо законченный кусок логики (скажем логин в соцсеть) то ок. А так может это всё же часть фичи.
источник

Д

Денис in Programming Offtop
Arkadii Ivanov
Ага. И получается переиспользуемый компонент с логикой.
а не перебор под один компонент целый фрагмент выделять?
источник

AS

Andrei Shikov in Programming Offtop
Денис
последний вопрос по кастомным компонентам, подскажите если я добавляю компонент на экран, допустим как то так:
@Composable
fun render(state: ScreenState) {
   Column {
       Text(
           text = state.field
       )
       Component()
   }
}

@Composable
fun Component(){
   //...
}

где я должен запускать обработку его очереди сообщений? либо компонент нужно как то иным образом инициализировать?
onCommit посмотри, там можно заинитить
источник