Про курс
Комбінуючи в собі можливості об'єктно-орієнтованої та функціональної парадигм програмування, Scala надає безліч можливостей для розробника. Функціональний підхід дозволяє писати код із високим рівнем абстракції. Більш лаконічний і читабельний в записі код, а також у ряді випадків швидше його виконання дозволяють істотно урізноманітнити інструментарій розробника.
Курс Scala Advanced дозволить вам глибше поринути у функціональну частину мови Scala. При проходженні курсу ви ознайомитеся з практичними аспектами застосування карування, частково певних функцій, параметризованих та додаткових типів, екстракторів та інших особливостей мови. Головне – ви навчитеся вести розробку у функціональному стилі, поєднуючи можливості ООП та функціонального підходу.
Цей курс входить до спеціальності:
Попередні Вимоги
Володіння мовою Scala на рівні курсів "Scala Стартовий" та "Scala Базовий".
Ви навчитеся
- Застосовувати в розробці спеціалізовані типи мови Scala - типи-одинаки, проекції типів, ланцюжки, складові, інфіксні, екзистенційні, абстрактні типи та типи вищого порядку.
- Використовуйте неявні перетворення для розширення можливостей існуючих класів.
- Використовувати механізми зіставлення зі зразком мови Scala щодо різних типів.
- Розуміти роботу з абстрактними елементами. Використовувати практично ліниві val-змінні, абстрактні типи, Path-dependent типи, уточнюючі типи.
- Застосовувати з Scala Future такі методи, як перетворення, створення, фільтрація, обробка виняткових ситуацій та інші.
- Застосовувати в розробці такі функціональні прийоми, як обробка помилок без використання Exception, використання чисто функціонального стану і чисто функціонального паралелізму.
- Застосовувати моноїди, їх композицію, комбінатори та правила монад.
- Розуміти та застосовувати функтори та розуміти різницю між монадою та аплікативним функтором.
- Тестувати написані вами програми за допомогою юніт-тестів та фреймворку ScalaTest.
- 9 год 15 хв
- 20.11.2019
- 12
- 12.06.2020
- російська
Що входить до курсу
×
Ви дійсно бажаєте відкрити доступ до тестування за курсом Scala Поглиблений на 40 днів?
Розглянути функції вищого порядку, саме процес карингу функцій, абстракції керуючих конструкцій, частково певні функції (partial function). Навчитися створювати partial function, дізнатися для чого і як використовувати такі функції.
Розглянути механізм зіставлення із зразком у мові Scala. Вивчити зіставлення з типами, масивами, списками, кортежами, case-класами, вкладеними структурами.
Вивчити узагальнені класи та функції. Розглянути межі зміни типів, уявлення та контексту. Розглянути ко- та контраваріантні позиції.
Розглянути всі типи, які може запропонувати Scala, в тому числі спеціалізовані. Вивчити типи-одинаки, проекції типів, ланцюжки, складові, інфіксні, екзистенційні, абстрактні типи та типи вищого порядку.
Навчитися використовувати неявні перетворення для розширення можливостей існуючих класів. Розглянути межі контексту та неявний параметр підтвердження.
Розглянути абстрактні елементи. Навчитися використовувати абстрактні елементи за допомогою практичного прикладу.
Дізнатися, що таке екстрактори, навіщо вони використовуються. Розглянути шаблони без змінних та з однією змінною, екстрактори змінної кількості аргументів, послідовностей. Порівняти екстрактори та case-класи.
Розкрити поняття та призначення Future у мові Scala. Розглянути основні методи роботи з Future, такі як перетворення, створення, фільтрація, обробка виняткових ситуацій та інші.
Навчитися застосовувати отримані знання про мову Scala для розробки у функціональному стилі. Ознайомитись з різними функціональними прийомами, такими як обробка помилок без використання Exception, використання чисто функціонального стану та чисто функціонального паралелізму. Розглянути такі властивості, як strictness і laziness, а також функціональні структури даних.
Вивчити моноїди та монади. Розглянути застосування моноїдів, їх композицію, визначення монади, її застосування та закони.
Вивчити функтори. Розглянути різницю між монадою та аплікативним функтором. Вивчити Applicative трейт, правила аплікативу, функтори Traversable.
Зрозуміти призначення тестування програмного забезпечення. Розглянути різні види тестування. Навчитися писати юніт-тести за допомогою фреймворку ScalaTest.