Перейти к содержимому

Курс: Объектно-ориентированное программирование на Swift

Целевая аудитория

Студенты, знакомые с базовыми конструкциями программирования: переменными, условиями, циклами, функциями и коллекциями. Предварительный опыт работы со Swift полезен, но основные особенности языка будут повторяться по мере необходимости.

Цель курса

Освоить объектно-ориентированное проектирование на примере Swift: научиться создавать типы с ясной ответственностью, управлять состоянием и зависимостями, применять инкапсуляцию, наследование, полиморфизм, протоколы, композицию и паттерны проектирования.

Курс рассматривает Swift не только как язык для iOS, а как самостоятельный строго типизированный язык. Все базовые примеры можно запускать как консольные программы без UIKit и SwiftUI.

Среда

  • Swift 6 или новее;
  • macOS с Xcode Command Line Tools либо Linux с установленным Swift;
  • запуск отдельного файла: swift lecture.swift;
  • компиляция программы: swiftc main.swift -o app && ./app.

Предварительный план

  1. Классы и объекты: состояние, поведение, ссылочная семантика, инкапсуляция.
  2. Структуры и классы: value/reference semantics, выбор модели данных.
  3. Инициализация, деинициализация и управление ресурсами.
  4. Наследование, переопределение и полиморфизм.
  5. Протоколы как средство абстракции.
  6. Расширения, protocol extensions и композиция поведения.
  7. SOLID в Swift.
  8. Обработка ошибок и моделирование доменных ошибок.
  9. Generics и associated types.
  10. Управление памятью: ARC, strong/weak/unowned, циклы ссылок.
  11. Порождающие паттерны проектирования.
  12. Структурные паттерны проектирования.
  13. Поведенческие паттерны проектирования.
  14. Dependency Injection и тестируемый код.
  15. Слоистая и Clean Architecture.
  16. Итоговое проектирование приложения.

План будет уточняться по мере подготовки лекций и практических работ.