Курс: Объектно-ориентированное программирование на 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.
Предварительный план
- Классы и объекты: состояние, поведение, ссылочная семантика, инкапсуляция.
- Структуры и классы: value/reference semantics, выбор модели данных.
- Инициализация, деинициализация и управление ресурсами.
- Наследование, переопределение и полиморфизм.
- Протоколы как средство абстракции.
- Расширения, protocol extensions и композиция поведения.
- SOLID в Swift.
- Обработка ошибок и моделирование доменных ошибок.
- Generics и associated types.
- Управление памятью: ARC, strong/weak/unowned, циклы ссылок.
- Порождающие паттерны проектирования.
- Структурные паттерны проектирования.
- Поведенческие паттерны проектирования.
- Dependency Injection и тестируемый код.
- Слоистая и Clean Architecture.
- Итоговое проектирование приложения.
План будет уточняться по мере подготовки лекций и практических работ.