Size: a a a

Kotlin Community

2020 July 20

AS

Andrey Stepankov in Kotlin Community
Ruslan Ibragimov
> Основная проблема, что твои детали ui протекают в store, который общий для всех. Например выбранный таб. Если там где-то был выбран такой-то таб, то в другой части приложения, ставим то и то. Я не считаю, что store должен отвечать за такие мелкие детали ui. Он должен быть более абстрактным. Что решаемо, если начинать думать, о redux более в CLEAN смысле. За счет своей простоты, туда очень легко положить то что не нужно.

Не вижу тут противоречия с CLEAN, т.к. в connect мы отвязываем компонент от store. Если мы прям хотим спрять какие-то данные от других - можно вообще не обращаться напрямую к store, а писать селекторы которые связаны с редьюсером (вполть до того, что при инициализации генерить уникальный ключ, и тем самым нельзя будет просто пойти в стор и достать что-то в обход этого слоя абстрации.

То что в store хранится много всего - да, и тут основаная проблема что нужно следить за lifecycle - подчищать данные, если данных много и приложение живет долго (например дашбоард).
> То что в store хранится много всего - да, и тут основаная проблема что нужно следить за lifecycle

Это точно, как я мог забыть :)

> Не вижу тут противоречия с CLEAN, т.к. в connect мы отвязываем компонент от store.

Техничестки все так. Мы отвязали. Однако когда видишь в store поле с именем selectedTabIndex немного больно.

UPD:
Или как-то мы можем передать с одной части приложения в другую без глобального стейта?
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
Важно. Вы исходите из того, что источником данных является какой-то flux на сервере. А если один из компонентов является источником данных для другого? Прокидывать стейт наверх в стор и потом прокидывать вниз?
Хранить его всего там, и шарить между двумя компонентами как выше в примере я описал
источник

AA

Andrey Antipov in Kotlin Community
Добрый день. А есть ли в Котлин перегружаемый бинарный оператор, группирующийся справа налево при вычислении выражений? Или может есть какой способ управлять группировкой?
Оператор + группируется слева направао, то есть x + y + z вычисляется как (x + y) + z
источник

AN

Alexander Nozik in Kotlin Community
Насколько я понимаю, в компоузе я могу вынести стейт отдельно в какой-то объект контекста и спокойно сделать его источником истины. В каком-то смысле это эквивалентно редуксу, но гораздо более гибко
источник

AN

Alexander Nozik in Kotlin Community
Andrey Antipov
Добрый день. А есть ли в Котлин перегружаемый бинарный оператор, группирующийся справа налево при вычислении выражений? Или может есть какой способ управлять группировкой?
Оператор + группируется слева направао, то есть x + y + z вычисляется как (x + y) + z
Насколько я понимаю нет. Это один из основных поводов для жалоб.
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
Насколько я понимаю, в компоузе я могу вынести стейт отдельно в какой-то объект контекста и спокойно сделать его источником истины. В каком-то смысле это эквивалентно редуксу, но гораздо более гибко
Не понял почему это вдруг стало гибче
источник

I

Igor in Kotlin Community
Alexander Nozik
Насколько я понимаю, в компоузе я могу вынести стейт отдельно в какой-то объект контекста и спокойно сделать его источником истины. В каком-то смысле это эквивалентно редуксу, но гораздо более гибко
Вы про что, что в react делается через хуки / кастомные хуки?
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Не понял почему это вдруг стало гибче
Я могу держать несколько таких моделей, а не единый централизованный стор
источник

RI

Ruslan Ibragimov in Kotlin Community
Andrey Stepankov
> То что в store хранится много всего - да, и тут основаная проблема что нужно следить за lifecycle

Это точно, как я мог забыть :)

> Не вижу тут противоречия с CLEAN, т.к. в connect мы отвязываем компонент от store.

Техничестки все так. Мы отвязали. Однако когда видишь в store поле с именем selectedTabIndex немного больно.

UPD:
Или как-то мы можем передать с одной части приложения в другую без глобального стейта?
Ну это уже внутрение ощущения, технически тут же ничего плохого нет. Да и если хочется - можно делать кучу сторов, засовывать их как ключи контекст и доставать. Так и было в flux изначально, но почему-то не полетело
источник

AA

Andrey Antipov in Kotlin Community
Alexander Nozik
Насколько я понимаю нет. Это один из основных поводов для жалоб.
Жаль. И инфиксные функции тоже группируются слева направо 😞 Я тут экспериментирую с односвязными гетерогенными списками и пытаюсь одобный API для их создания сделать, чтоб оно не обрастало скобками как лисп.
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
Я могу держать несколько таких моделей, а не единый централизованный стор
Вот только что ответил выше. От многих сторов отказались т.к. нету от этого пользы
источник

AN

Alexander Nozik in Kotlin Community
Igor
Вы про что, что в react делается через хуки / кастомные хуки?
В реакте по-умолчанию нет подразумевается возможность внешнего изменения стейта. Это можно сделать на тех же корутинах, но это считается фу-фу
источник

AS

Andrey Stepankov in Kotlin Community
Ruslan Ibragimov
Ну это уже внутрение ощущения, технически тут же ничего плохого нет. Да и если хочется - можно делать кучу сторов, засовывать их как ключи контекст и доставать. Так и было в flux изначально, но почему-то не полетело
Понял. Спасибо. Смотрели в сторону mobx? Там как раз разные store можно сделать
источник

AN

Alexander Nozik in Kotlin Community
Andrey Antipov
Жаль. И инфиксные функции тоже группируются слева направо 😞 Я тут экспериментирую с односвязными гетерогенными списками и пытаюсь одобный API для их создания сделать, чтоб оно не обрастало скобками как лисп.
Хороший пример гетерогенного сета - это корутин-контекст
источник

I

Igor in Kotlin Community
Alexander Nozik
В реакте по-умолчанию нет подразумевается возможность внешнего изменения стейта. Это можно сделать на тех же корутинах, но это считается фу-фу
В композе точно так же, если вы начнети бесконтрольно шарить MutableState<T> то будете ловить непонятные креши
источник

AN

Alexander Nozik in Kotlin Community
Igor
В композе точно так же, если вы начнети бесконтрольно шарить MutableState<T> то будете ловить непонятные креши
Почему?
источник

AA

Andrey Antipov in Kotlin Community
Alexander Nozik
Хороший пример гетерогенного сета - это корутин-контекст
Ну я для уплощения вложенных контекстов и экспериментирую
источник

AN

Anna Naumova in Kotlin Community
Всем привет! Простите за влет с мороза. Поступила рабочая задача написать один из микросервисов на Котлине (у нас команда Java-разработчиков). Можете посоветовать годные ресурсы обучения / видео-курсы? Про Котлин знаю только то, что он существует :D В закрепе ничего не нашел. Извиняюсь, если уже сто раз об этом спрашивали.
источник

AA

Andrey Antipov in Kotlin Community
Anna Naumova
Всем привет! Простите за влет с мороза. Поступила рабочая задача написать один из микросервисов на Котлине (у нас команда Java-разработчиков). Можете посоветовать годные ресурсы обучения / видео-курсы? Про Котлин знаю только то, что он существует :D В закрепе ничего не нашел. Извиняюсь, если уже сто раз об этом спрашивали.
А с чем связано такое требование по языку?
источник

QH

Quantum Harmonizer in Kotlin Community
Anna Naumova
Всем привет! Простите за влет с мороза. Поступила рабочая задача написать один из микросервисов на Котлине (у нас команда Java-разработчиков). Можете посоветовать годные ресурсы обучения / видео-курсы? Про Котлин знаю только то, что он существует :D В закрепе ничего не нашел. Извиняюсь, если уже сто раз об этом спрашивали.
ЧаВо в описании чата. «С мороза» могу порекомендовать kotl.in — официальную документацию и Kotlin Koans для проверки знаний.
источник