Проектирование на C#
Санкт-Петербург / осень 2018, посмотреть все семестры

О чем курс?

“Проектирование на C#” рассказывает базовые техники организации кода в больших долгоживущих проектах. Предполагается, что студенты уже решили с десяток небольших учебных задач и сейчас хотят научиться писать большие программы.

В начале курса мы вспоминаем основные особенности синтаксиса C#. Люди с опытом программирования на другом языке обычно справляются с освоением отличий.

Курс разработан в СКБ Контур. Рассматриваются темы, знания которых ожидают от своих инженеров хорошие работодатели во всём мире.

Что будем изучать?

Курс разбит на две части. Первая посвящена возможностям языка C#, которые позволяют лучше проектировать и организовывать код: объектно-ориентированное программирование, применение generic-типов, делегатов, рефлексии, корректная работа с исключениями, управление ресурсами. Чтобы закрепить знания, по каждой теме вас ждет 2-4 домашние задачи на программирование. Ревью этих задач будет проходить частично в дистанционном формате через ulearn.me.

Во второй части рассматриваются принципы организации кода: как распределять обязанности программы по классам, как должны быть организованы зависимости между классами, тонкости применение DI-контейнеров. Затрагиваются основы DDD — набора техник, для проектирования больших сложных систем, FluentApi — техники проектирования удобных публичных API библиотек. Во второй половине семестра студентам предстоит разбиться на небольшие команды и продемонстрировать освоение курса, выполнив проект. Главное требование к проекту — он должен демонстрировать уместное и обоснованное применение техник, рассмотренных в курсе.

Как будем учиться?

Это видео-курс, с очными еженедельными практиками. Лекции вы смотрите в удобное время, на удобной вам скорости, решаете небольшие домашние задачи. На очных практиках взаимодействуете с преподавателями.

Перед стартом командной проектной работы посвятим один день хакатону :)

Полезные ссылки и литература:

Руководство по C# от microsoft https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/index или более подробно в книге: https://www.ozon.ru/context/detail/id/137598683/

Принципы проектирования SOLID: https://www.dropbox.com/s/73z4g541nmqq6im/design_principles.pdf?dl=0 или в книге: https://www.ozon.ru/context/detail/id/1573723/

DDD http://carfield.com.hk/document/software%2Bdesign/dddquickly.pdf

Дата и время Название Место Материалы
13 сентября
18:30–19:50
Введение, лекция Таймс, 2 этаж, ауд.204 другие
20 сентября
18:30–19:50
Инкапсуляция. Теория и пример, лекция Таймс, 2 этаж, ауд.204 другие
27 сентября
18:30–19:50
Наследование и полиморфизм. Теория и пример, лекция Таймс, 2 этаж, ауд.204 другие
04 октября
18:30–19:50
Generics, лекция Таймс, 2 этаж, ауд.204 другие
11 октября
18:30–19:50
Делегирование, лекция Таймс, 2 этаж, ауд.204 другие
18 октября
18:30–19:50
Рефлексия, лекция Таймс, 2 этаж, ауд.204 другие
25 октября
18:30–19:50
Управление ресурсами, лекция Таймс, 2 этаж, ауд.204 другие
01 ноября
18:30–19:50
Работа с файлами, лекция Таймс, 2 этаж, ауд.204 другие
08 ноября
18:30–19:50
Исключения, лекция Таймс, 2 этаж, ауд.204 другие
15 ноября
18:30–19:50
DDD, лекция Таймс, 2 этаж, ауд.204 другие
22 ноября
18:30–19:50
FluentAPI, лекция Таймс, 2 этаж, ауд.204 другие
29 ноября
18:30–19:50
Модульность, лекция Таймс, 2 этаж, ауд.204 другие
06 декабря
18:30–19:50
Управление зависимостями, лекция Таймс, 2 этаж, ауд.204 другие
13 декабря
18:30–19:50
Финальная лекция. DI-контейнеры, лекция Таймс, 2 этаж, ауд.204 другие