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

Преподаватели

Список лекций

Введение

Рассмотрим практики написания хорошего кода, а также ответим на все вопросы, связанные с работой Ulearn.me и подробно расскажем про проект, который ждёт вас во второй половине семестра.