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

Лекції

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

    Kotlin SELF
    39 рівень, 0 лекція
    Розбираємося, як перестати перетворювати main на «командний центр» і розкласти консольний застосунок на три шари: CLI (введення/виведення та розбір команд), domain (правила й перевірки через require) і storage (зберігання даних). На прикладі обліку витрат будуємо модель Expense, сховище та сервіс, додаємо парсер команд, показуємо потік даних (mermaid) і типові помилки, через які межі шарів «розповзаються».
    Відкрита
  • Як закріпити архітектуру в структурі проєкту

    Kotlin SELF
    39 рівень, 1 лекція
    Розбираємо, як у Kotlin‑проєкті «вшити» архітектуру в пакети й каталоги: навіщо синхронізувати package зі структурою папок, як використовувати import як індикатор порушених меж, як розділити відповідальність за шарами ( app.cli, domain.model, domain.service, storage), зафіксувати напрям залежностей і не перетворити utils на «звалище». Є схема в mermaid, практичне розкладання файлів і розбір типових помилок.
    Відкрита
  • Інтерфейси як API‑межі

    Kotlin SELF
    39 рівень, 2 лекція
    Розбираємо, як проєктувати інтерфейси в Kotlin як межі між шарами: чому контракт має бути «вузьким», як відокремити доменні правила від зберігання через ExpenseRepository, як винести форматування звіту в ReportExporter, навіщо повертати List замість MutableList, коли робити «знімок» через toList(), і як CLI збирає залежності через constructor injection, не змішуючи ролі (тобто println лишається в CLI).
    Відкрита
  • Рефакторинг малими кроками

    Kotlin SELF
    39 рівень, 3 лекція
    Розбираємо практику рефакторингу «без великого вибуху»: тримаємо інваріанти компіляції та поведінки, робимо короткі перевірювані кроки, вводимо явні типи замість «всюдисущих рядків» ( ParsedCommand), виносимо маршрутизацію в CommandRouter, акуратно переносимо файли за пакетами та замінюємо прямі залежності через прошарок ( MutableList -> ExpenseRepository). Окремо обговорюємо, як використовувати require()/ check() для явних контрактів і які помилки найчастіше ламають рефакторинг.
    Відкрита
  • Фіксація v1 — єдиний контракт команд

    Kotlin SELF
    39 рівень, 4 лекція
    Розбираємо «фіксацію v1» для CLI-застосунку: запроваджуємо єдиний контракт результату через sealed interface CommandResult ( Ok/ Error), централізуємо виведення за допомогою render(), визначаємо обробку команди як handle(...) -> CommandResult, показуємо мінімальний пайплайн readln() → parse → handle → render → println() і фіксуємо типові помилки, що розмивають межі шарів.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush