JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Подієве мислення — слабка звʼязаність і контракт події

    Kotlin SELF
    57 рівень, 0 лекція
    Розбираємо, як перейти від прямих викликів до публікації фактів: замість «смикати сусідів за рукав» вчимося емітувати подію та підʼєднувати реакції через список слухачів. На прикладі консольного проєкту BudgetBuddy будуємо модель «один → багато», обговорюємо, чому подія — це факт, а не команда, і фіксуємо контракт: payload, синхронність, порядок виклику, оброблення помилок і керування підписками. Наприкінці — типові помилки та способи їх уникнути.
    Відкрита
  • Мінімальна реалізація Event<T>: слухачі, subscribe і emit

    Kotlin SELF
    57 рівень, 1 лекція
    Розбираємо мінімальний подієвий механізм у Kotlin: хто такий слухач (функція типу (T) -> Unit), як зберігати підписників у MutableList, як улаштовані методи subscribe і emit, навіщо потрібен параметр типу T і які обмеження має «найпростіша» реалізація (без відписок, без обробки винятків і без захисту від модифікації списку під час розсилки).
    Відкрита
  • Відписка без болю — токен відписки та «посилкова» природа лямбд

    Kotlin SELF
    57 рівень, 2 лекція
    Розбираємося, чому в подіях важлива відписка, чому «та сама» лямбда зазвичай є іншим об’єктом і як у Kotlin працює посилкова ідентичність функцій. Реалізуємо Event<T>, де subscribe повертає токен відписки ( () -> Unit) через замикання, обговоримо дублікати підписок і акуратну роботу з посиланнями на функції через ::.
    Відкрита
  • Надійне розсилання подій: snapshot, try/catch, реентерабельність

    Kotlin SELF
    57 рівень, 3 лекція
    Розбираємося, чому наївний emit() по «живому» списку слухачів ламається в реальному коді; як виправити це через snapshot ( listeners.toList()); чому try/ catch варто ставити навколо кожного обробника; і що означає реентерабельність (вкладені виклики emit()). Наприкінці збираємо надійний Event<T>, вбудовуємо його в мінітрекер витрат і фіксуємо контракт та типові помилки.
    Відкрита
  • SharedFlow як шина подій: collect, replay і життєвий цикл підписки

    Kotlin SELF
    57 рівень, 4 лекція
    Розбираємося, як використовувати SharedFlow у Kotlin як «шину подій»: чим відрізняються MutableSharedFlow і SharedFlow, як улаштована підписка через collect і чому «відписка» зазвичай зводиться до Job.cancel(). Окремо пояснюємо роль параметра replay (наприклад, replay = 1) для «пізніх» підписників і показуємо, як не втратити підписку через винятки всередині обробника.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush