Избегайте использования изменяемых коллекций в конструкторе data-классов в Kotlin
В своих предыдущих статьях я показывал, как использование
Эти проблемы часто связаны с тем, как работают
https://proandroiddev.com/avoid-using-mutable-collections-in-the-data-class-constructor-in-kotlin-53d17897114e
✍️ @kotlin_lib
В своих предыдущих статьях я показывал, как использование
var
, Array
или лямбды в конструкторе data
-класса на Kotlin может привести к неожиданному поведению и трудноуловимым багам.Эти проблемы часто связаны с тем, как работают
equals()
, hashCode()
и copy()
— особенно в логике сравнения коллекций, диффов или рекомпозиции.https://proandroiddev.com/avoid-using-mutable-collections-in-the-data-class-constructor-in-kotlin-53d17897114e
✍️ @kotlin_lib
👍1
Тёмные стороны
Конструкции
Однако неправильное их использование может привести к следующим проблемам:
- Повреждённые stack trace’ы, из-за чего краши трудно отлаживать в продакшене.
- Тонкие баги с отменой корутин или
- Непреднамеренные утечки API и жёсткая связка встроенного (inlined) кода.
https://proandroiddev.com/the-dark-corners-of-inline-crossinline-and-reified-in-kotlin-d244eaa07bb1
✍️ @kotlin_lib
inline
, crossinline
и reified
в KotlinКонструкции
inline
, crossinline
и reified
в Kotlin позиционируются как абстракции без накладных расходов. Действительно, они позволяют избежать лишних выделений памяти, создавать типобезопасные билдеры и улучшать производительность.Однако неправильное их использование может привести к следующим проблемам:
- Повреждённые stack trace’ы, из-за чего краши трудно отлаживать в продакшене.
- Тонкие баги с отменой корутин или
IllegalStateException
.- Непреднамеренные утечки API и жёсткая связка встроенного (inlined) кода.
https://proandroiddev.com/the-dark-corners-of-inline-crossinline-and-reified-in-kotlin-d244eaa07bb1
✍️ @kotlin_lib
👍3
👩💻 Как создать свой собственный оператор Flow и использовать его в архитектуре приложения?
🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На открытом уроке вы научитесь писать свой собственный оператор Flow с нуля. Мы разберём, как интегрировать оператор в архитектуру приложения, а также научимся строить архитектуру для гибкости и масштабируемости.
Этот урок идеально подойдёт разработчикам уровня junior и выше, стремящимся углубить знания и научиться эффективно использовать Flow в своих проектах.
🔗 Ссылка на регистрацию: https://vk.cc/cOkVjY
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На открытом уроке вы научитесь писать свой собственный оператор Flow с нуля. Мы разберём, как интегрировать оператор в архитектуру приложения, а также научимся строить архитектуру для гибкости и масштабируемости.
Этот урок идеально подойдёт разработчикам уровня junior и выше, стремящимся углубить знания и научиться эффективно использовать Flow в своих проектах.
🔗 Ссылка на регистрацию: https://vk.cc/cOkVjY
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎1