О курсе
Scala позволяет описывать данные, правила их проверки и последовательности вычислений в одной системе типов. Курс помогает освоить этот язык шаг за шагом: от первых выражений и методов до приложения, которое читает файл, обрабатывает ошибки и строит отчёт.
Материал рассчитан на тех, кто уже знаком с основами программирования. Синтаксис Scala 3.10 разбирается подробно, а функциональный подход объясняется через конкретные задачи: преобразовать коллекцию, сохранить исходное значение, связать зависимые проверки, отделить расчёт от чтения файла.
От синтаксиса к выразительным моделям
Вы подготовите рабочую среду, освоите Scala CLI и основы sbt, разберётесь с неизменяемыми значениями, условиями, циклами, функциями и рекурсией. Затем научитесь выбирать коллекции и сочетать их операции: фильтровать записи, разворачивать вложенные данные, группировать значения и рассчитывать сводки.
Кортежи, case classes, объекты, классы и traits помогут организовать данные и поведение. Обобщённые типы, ограничения, вариантность и union types дадут основу для чтения сигнатур. Через enum, sealed traits и pattern matching вы будете описывать варианты состояний и проверять полноту их обработки.
Ошибки и внешние операции как часть договора
Отсутствие значения, неверная строка и отказ чтения требуют разных решений. В курсе подробно рассматриваются Option, Either и Try, последовательные проверки и for-выражения. Вы научитесь сохранять причину отказа и различать ошибку отдельной записи и проблему всего документа.
Отдельные главы посвящены аргументам командной строки, файлам, датам и времени, взаимодействию с Java API и асинхронным вычислениям через Future. Завершают языковую часть организация проекта, тесты MUnit, форматирование и минимальная проверка качества в CI.
Итоговая работа — ledger-cli
Вы соберёте консольную утилиту для обработки операций из учебного CSV. Она проверяет поля и статусы, сообщает об ошибках с номерами строк, считает суммы по категориям для завершённых операций и выводит отчёт в консоль или отдельный файл. Десятичные суммы обрабатываются через BigDecimal.
В проекте соединяются основные темы курса: модели данных, коллекции, функциональные преобразования, Either, файловый ввод-вывод и тесты. Чистое ядро расчёта отделено от внешних действий, поэтому его поведение можно проверять на небольших наборах входных данных.
Учиться читать код и объяснять его поведение
В курсе 20 глав, 125 текстовых уроков и 96 тестовых задач по главам 3–18. Вопросы проверяют результат вычисления, выбор модели и последствия типичных ошибок. Пояснения раскрывают, почему работает выбранное решение. Практические задания в уроках дают возможность самостоятельно написать и изменить код на своём компьютере.
Для кого этот курс
Начальные требования
Нужно понимать базовые понятия программирования: значения и переменные, условия, циклы, функции и простые структуры данных. Достаточно опыта учебных или небольших практических программ на любом языке.
Понадобится компьютер с Windows, macOS или Linux и возможность установить JDK и инструменты Scala. Подготовка окружения, запуск программы и выбор среды разработки разобраны в начале курса. Предварительный опыт Scala и функционального программирования не требуется.
Как проходит обучение
Проходите главы последовательно: новые приёмы опираются на уже разобранные конструкции. Читайте объяснения, запускайте примеры и меняйте входные данные, чтобы проверить своё понимание поведения программы.
Практические задания из уроков выполняются на вашем компьютере. В конце глав 3–18 размещены тестовые задачи. После ответа доступны пояснения, которые помогают разобрать ошибку и проверить рассуждение.
В заключительных главах вы организуете проект, напишете тесты и соберёте ledger-cli. Готовность утилиты проверяется на примерах корректных и повреждённых данных, а основная логика — отдельными тестами. Темп прохождения можно выбирать самостоятельно.
Программа курса
В курс входят
- 127 уроков
- 120 тестов