Проектирование на 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