This media is not supported in your browser
VIEW IN TELEGRAM
Debounce vs Sample в Kotlin Flow
Ну что ж, пора снова погрузиться в мир Flow! Сегодня мы выносим на первый план два недооценённых инструмента: debounce и sample.
Про debounce многие из вас уже слышали, а вот про sample — гораздо реже. И, если быть честными, некоторые вообще используют debounce неправильно. Так что сейчас мы разложим всё по полочкам и сделаем эти концепции предельно понятными. Погнали! 🔥
https://proandroiddev.com/debounce-vs-sample-in-kotlin-flow-a89b4a94c893
✍️ @kotlin_lib
Ну что ж, пора снова погрузиться в мир Flow! Сегодня мы выносим на первый план два недооценённых инструмента: debounce и sample.
Про debounce многие из вас уже слышали, а вот про sample — гораздо реже. И, если быть честными, некоторые вообще используют debounce неправильно. Так что сейчас мы разложим всё по полочкам и сделаем эти концепции предельно понятными. Погнали! 🔥
https://proandroiddev.com/debounce-vs-sample-in-kotlin-flow-a89b4a94c893
✍️ @kotlin_lib
👍2
Kotlin: val != Immutable? 🤔
Многие новички (и не только) живут с убеждением, что ключевое слово
В недавней статье на ProAndroidDev разбирают популярное заблуждение:
Вот два кейса, когда ваш «неизменяемый»
1️⃣ Изменяемость самого объекта
2️⃣ Кастомные геттеры
Это самый коварный момент. Свойство
В статье также приводят интересную статистику: в опросе 41% разработчиков ответили, что считают
По-настоящему неизменяемым объект становится только тогда, когда он состоит из примитивов или других неизменяемых объектов (например, Data Class, где все поля
https://proandroiddev.com/the-val-property-immutable-in-kotlin-2e4cf49207d0
✍️ @kotlin_lib
Многие новички (и не только) живут с убеждением, что ключевое слово
val гарантирует неизменяемость данных. Но так ли это на самом деле?В недавней статье на ProAndroidDev разбирают популярное заблуждение:
val - это read-only (доступ только для чтения), но никак не immutable (неизменяемость).Вот два кейса, когда ваш «неизменяемый»
val может измениться:1️⃣ Изменяемость самого объекта
val гарантирует только то, что ссылка на объект останется той же. Но если объект внутри изменяемый - его состояние можно менять без проблем.
val list = mutableListOf(1, 2, 3)
list.add(4) // Ссылка та же, содержимое изменилось
2️⃣ Кастомные геттеры
Это самый коварный момент. Свойство
val может возвращать разные значения при каждом обращении, если у него переопределен get().
val random: Int
get() = Random.nextInt()
В статье также приводят интересную статистику: в опросе 41% разработчиков ответили, что считают
val именно immutable, что технически неверно.По-настоящему неизменяемым объект становится только тогда, когда он состоит из примитивов или других неизменяемых объектов (например, Data Class, где все поля
val и нет ссылок на мутабельные типы).https://proandroiddev.com/the-val-property-immutable-in-kotlin-2e4cf49207d0
✍️ @kotlin_lib
🤡3👍2🫡1
SourceCraft обновился — теперь всё ещё проще, быстрее и безопаснее
🤖 ИИ-обновления помогают тестировать код: улучшенный поиск уязвимостей и генерация описаний к изменениям теперь встроены в платформу.
🔧 Для команд: поддержка Gitlab CI/CD YAML, обновлённая система релизов, web-интерфейс для решения конфликтов в PR и управление командами в одном окне.
🔒 Для безопасности: новый дэшборд уязвимостей по всей организации, страница Code Scanning с результатами SAST, rescan и список уязвимых библиотек в SCA. Платформа прошла оценку соответствия ФЗ-152, PCI DSS и ГОСТ 57580.
А еще, обновлён UI для CI/CD и добавлены Telegram-уведомления.
Расскажем в подробностях и ответим на вопросы в канале
🤖 ИИ-обновления помогают тестировать код: улучшенный поиск уязвимостей и генерация описаний к изменениям теперь встроены в платформу.
🔧 Для команд: поддержка Gitlab CI/CD YAML, обновлённая система релизов, web-интерфейс для решения конфликтов в PR и управление командами в одном окне.
🔒 Для безопасности: новый дэшборд уязвимостей по всей организации, страница Code Scanning с результатами SAST, rescan и список уязвимых библиотек в SCA. Платформа прошла оценку соответствия ФЗ-152, PCI DSS и ГОСТ 57580.
А еще, обновлён UI для CI/CD и добавлены Telegram-уведомления.
Расскажем в подробностях и ответим на вопросы в канале
👍1