KOTLIN_ADEPT Telegram 187
Мой архитектурный факап

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

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

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

В чём проблема? Если мы сразу обработаем диплинк и перейдём на нужный экран, то он тут же перетрётся изменением глобального стейта после загрузки данных.

Я не стал ничего менять и просто откладывал обработку диплинков до полной загрузки данных. Выглядело это уже не лучшим образом, а с ростом количества разных диплинков всё превратилось в полный хаос. Когда я передал проект другому разработчику, каждое новое изменение в этом коде ломало предыдущую функциональность, и поддерживать его стало невозможно.

Поэтому мы отрефакторили навигацию, отказались от подхода с навигацией по стейту, и жить стало гораздо проще.

А о каких решениях в архитектуре пожалели вы?

#Navigation #Decompose
👍241



tgoop.com/kotlin_adept/187
Create:
Last Update:

Мой архитектурный факап

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

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

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

В чём проблема? Если мы сразу обработаем диплинк и перейдём на нужный экран, то он тут же перетрётся изменением глобального стейта после загрузки данных.

Я не стал ничего менять и просто откладывал обработку диплинков до полной загрузки данных. Выглядело это уже не лучшим образом, а с ростом количества разных диплинков всё превратилось в полный хаос. Когда я передал проект другому разработчику, каждое новое изменение в этом коде ломало предыдущую функциональность, и поддерживать его стало невозможно.

Поэтому мы отрефакторили навигацию, отказались от подхода с навигацией по стейту, и жить стало гораздо проще.

А о каких решениях в архитектуре пожалели вы?

#Navigation #Decompose

BY Kotlin Adept Notes




Share with your friend now:
tgoop.com/kotlin_adept/187

View MORE
Open in Telegram


Telegram News

Date: |

Administrators bank east asia october 20 kowloon More>> A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” Joined by Telegram's representative in Brazil, Alan Campos, Perekopsky noted the platform was unable to cater to some of the TSE requests due to the company's operational setup. But Perekopsky added that these requests could be studied for future implementation.
from us


Telegram Kotlin Adept Notes
FROM American