Курс Scala-программирования

Курс сайт события http://scala.wtf/

Добавить в календарь:
Поделиться:

Scala сочетает черты объектно-ориентированного и функционального программирования, что делает его подходящим не только для простых задач, но и для сложных распределенных систем и анализа больших данных. Возможности Scala оценили и уже используют в своей работе такие компании как Twitter, LinkedIn, Coursera, Foursquare, Тинькофф и многие другие.

 

Курс Scala Basic посвящен основам функционального программирования, работате с базами данных (JDBC), использованию оптимальных коллекций из стандартной библиотеки и инструментов многопоточного программирования на Scala.

 

Программа состоит из 16 занятий по 2 часа с преподавателями, использующими Scala каждый день. На уроках будет много практики, а для закрепления пройденного материала подготовлены домашние задания.

 

Курс ориентирован на программистов со знаниями Java, а также классических алгоритмов и коллекций. Плюсом будет опыт разработки на любом функциональном языке.

Для тех, кто захочет конвертировать полученные навыки в профессию — после окончания курса для студентов будут организованы собеседования с представителями компании Tinkoff и блокчейн-платформы Waves, которые используют Scala в своих проектах и ищут новых сотрудников в команду.

 

Спикеры

Сергей Толмачёв

Разработчик в Waves Platform Занимается разработкой backend приложений для Web, Big Data и FinTech-проектов. Перепробовал много языков, методов и подходов к разработке ПО, в итоге остановился на Scala. 
 

Артем Ведерников

Разработчик Facetz DMP в Data-Centric Alliance

Разрабатывает высоконагруженные серверные приложения в сфере онлайн-рекламы, а также системы анализа больших данных. В своей работе использует Scala как гибкий и производительный инструмент. 

1 занятие. Основы Scala.

- Знакомство с кодом. Hello world.
- Консольный интерпретатор. Scala REPL.
- Написание базовых выражений, создание константы и переменных.
- Обзор импортируемых пакетов языка Scala по-умолчанию.
- Ввод и вывод данных в консоль.
- Условный оператор if: основы и особенности в Scala.
- Циклы: while, do, until, for (почти цикл).
- Функции как объекты первого класса. Простые и анонимные.
- Классы. Создание методов и их наследование.
- Пишем конструкторы и поля классов.
- Переопределение методов классов.
- Модификаторы доступа полей и методов.
- Создаем пакет и несем в нем классы.
- Численные типы и строки.
- Основы SBT и Intellij IDEA.
- Создаем SBT проект.
- Разбираемся в структуре Scala-Sbt проекта. Файлы конфигурации сборки.
- Пишем первую программу.

 

2 – 3 занятия. Основы Scala, продолжение.

- Иерархия типов Scala.
- Типаж. Их отличие от абстрактных классов class, применение с sealed.
- Case class и его особенности.
- Объекты-компаньоны.
- Кортежи.
- Обобщения типов.
- Перечисления в Scala.
- Исключения и их обработка.
- Комбинируемые типы (Try, Option, Either).
- Сопоставление с шаблоном.
- For-включения.
- Разные нотации вызова методов.

 

4 – 5 занятия. Все о функциях.

- Объединение функций.
- Определение чистых функций.
- Каррирование функций.
- Переменное количество аргументов у функции.
- Частичные функции.
- Кортежи. Их запаковка и распаковка.
- Вызов по имени и по значению.
- Ленивые поля.
- Неявные функции.
- Знакомства с границами типов.
- Хвостовая рекурсия и ее оптимизация.

 

6 занятие. Все о функциях, продолжение.

- Классы-значения и ссылочные классы.
- Implicits преобразования и все о них.
- Больше примеров и интерактива.

 

7 занятие. Коллекции.

- Иерархия коллекций в Scala
- Мутабельные и иммутабельные коллекции
- Списки
- Массивы
- Наборы
- Карты
- Вектора
- Поток
- Iterable, iterator или traversable
- Вычислительная сложность Scala коллекций

 

8 – 10 занятия. Коллекции, продолжение.

- Ленивое выполнение операций над элементами.
- Операции основных интерфейсов коллекций.
- Методы списков.
- Еще больше методов. Собери их все!
- Интерактивные задачи с коллекциями.
- Создаем строки из коллекции.
- Java коллекции в Scala: как и зачем.

 

11 занятие. Параллельность в Scala.

- Конкуренция против параллелизма.
- Обзор пакета scala.concurrent.
- Future и контексты исполнения.
- Promise. Обещания надо выполнять.
- Scala-async: что и зачем.
- Параллельные коллекции.

 

12 занятие. Основы Akka.

- Актор.
- Система акторов.
- Акторы требуют надсмотра. Мы им поможем.
- Прозрачность расположения и основные принципы позади Akka.
- О чем никогда не стоит забывать.
- Плюсы и минусы акторов.

 

13 занятие. JDBC в Scala. Работа с базами данных.

- Обзор разных подходов и библиотек для взаимодействия с реляционными базами данных: Slick, Scalikejdbc, Play anorm, Doobie.
- Их сравнение и примеры использования.

 

14 занятие. Основы ScalaTest и ScalaMeter.

- Обзор доступных стилей тестов ScalaTest.
- Пишем и разбираем примеры тестов.
- Обзор ScalaMeter.
- Меряем производительность кода правильно.

 

15 занятие. Основы Play.

- Швейцарский нож Web разработчика.
- Обзор возможностей Play Framework.
- Валидация форм с Play.
- Работа с Json в Play.
- Помянем Anorm.
- Встроенный кеш ответов.
- Авторизация с OAuth.
- Работа с WebSocket.
- Инъекция зависимостей в Play.

 

16 занятие. Основы деплоя Scala приложений.

- Сборка с помощью SBT assembly и stage.
- Обзор возможностей sbt-native-packager.
- Место Scala в мире разработке.
- Где применяют Scala и зачем?
- Разберемся, что же нам делать с этим дальше?

Комментарии (0):

Оставлять комментарии могут только зарегистрированные пользователи

Для получения embed кода необходимо кликнуть правой
кнопкой мыши на видео и выбрать пункт меню
'Сгенерировать HTML код'

Забыли пароль? Регистрация