<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.cs.hse.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kkarpea</id>
	<title>Wiki - Факультет компьютерных наук - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cs.hse.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kkarpea"/>
	<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Kkarpea"/>
	<updated>2026-09-21T17:42:03Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82080</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82080"/>
		<updated>2023-12-03T23:42:35Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ведомость:&#039;&#039;&#039; [https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
* &#039;&#039;&#039;23.11 Фронтенд. Мобильные архитектуры&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-23T16-10-00Z.mp4 Запись]] Архитектура UI. Мобильная платформа. Кросс платформенные приложения. MVC, MVVM, MVI. Тестирование. Дистрибуция. Server Side Rendering. Микрофронтенды.&lt;br /&gt;
* &#039;&#039;&#039;30.11 Масштабирование, Балансировка, API Gateway&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-30T14-59-18Z.mp4 Запись]]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи&#039;&#039;&#039;: [https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
=== 4. Распределенные транзакции ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 12 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Для интернет-магазина из ДЗ-3 доработать сервисы &amp;quot;Склад&amp;quot;, &amp;quot;Доставка&amp;quot;. При создании заказа необходимо:&lt;br /&gt;
* в сервисе &amp;quot;Склад&amp;quot; зарезервировать конкретный товар на складе&lt;br /&gt;
* в сервисе &amp;quot;Доставка&amp;quot; зарезервировать курьера на конкретный слот времени.&lt;br /&gt;
* если хотя бы один из пунктов не получилось сделать, необходимо откатить все остальные изменения.&lt;br /&gt;
&lt;br /&gt;
В задании необходимо реализовать [https://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B8_%D0%B2_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85 механизм распределенных транзакций]. Рекомендуется использовать [https://neerc.ifmo.ru/wiki/index.php?title=2_Phase_Commit алгоритм двухфазного коммита] или паттерн &amp;quot;Сага&amp;quot; ([https://habr.com/ru/articles/427705/ rus], [https://microservices.io/patterns/data/saga.html eng])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – отобразить [https://en.wikipedia.org/wiki/Sequence_diagram sequence-диаграмой] схему взаимодействия сервисов при создании заказа, коротко описать текстом, какой паттерн использовался и почему на ваш взгляд он больше всего подходит&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
ДЗ сдается полностью аналогично предыдущим. Для тестирования нужно добавить такой же скрипт, как и в ДЗ-3, с проверкой статусов в новых сервисах.&lt;br /&gt;
&lt;br /&gt;
=== 5. Архитектурные ката ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 19 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Возьмите любой кейс из [https://www.architecturalkatas.com/ архитектурных ката] и спроектируйте его решение.&lt;br /&gt;
&lt;br /&gt;
В решении необходимо предоставить:&lt;br /&gt;
* Пользовательские сценарии&lt;br /&gt;
* Общую схему взаимодействия сервисов.&lt;br /&gt;
** Для каждого сервиса опишите назначение сервиса и его зону ответственности.&lt;br /&gt;
** Опишите контракты взаимодействия сервисов друг с другом. &lt;br /&gt;
* Диаграмму контейнеров приложения на основе выбранной модели функциональной декомпозиции&lt;br /&gt;
* Декомпозицию слоя данных: какие данные в каких БД хранятся&lt;br /&gt;
&lt;br /&gt;
Решение можно опубликовать в dropbox/яндекс диске/google диске/github/etc.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82079</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82079"/>
		<updated>2023-12-03T23:40:49Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ведомость:&#039;&#039;&#039; [https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
* &#039;&#039;&#039;23.11 Фронтенд. Мобильные архитектуры&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-23T16-10-00Z.mp4 Запись]] Архитектура UI. Мобильная платформа. Кросс платформенные приложения. MVC, MVVM, MVI. Тестирование. Дистрибуция. Server Side Rendering. Микрофронтенды.&lt;br /&gt;
* &#039;&#039;&#039;30.11 Масштабирование, Балансировка, API Gateway&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-30T14-59-18Z.mp4 Запись]]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи&#039;&#039;&#039;: [https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
=== 4. Распределенные транзакции ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 12 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Для интернет-магазина из ДЗ-3 доработать сервисы &amp;quot;Склад&amp;quot;, &amp;quot;Доставка&amp;quot;. При создании заказа необходимо:&lt;br /&gt;
* в сервисе &amp;quot;Склад&amp;quot; зарезервировать конкретный товар на складе&lt;br /&gt;
* в сервисе &amp;quot;Доставка&amp;quot; зарезервировать курьера на конкретный слот времени.&lt;br /&gt;
* Если хотя бы один из пунктов не получилось сделать, необходимо откатить все остальные изменения.&lt;br /&gt;
&lt;br /&gt;
В задании необходимо реализовать [https://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B8_%D0%B2_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85 механизм распределенных транзакций]. Рекомендуется использовать [https://neerc.ifmo.ru/wiki/index.php?title=2_Phase_Commit алгоритм двухфазного коммита] или паттерн &amp;quot;Сага&amp;quot; ([https://habr.com/ru/articles/427705/ rus], [https://microservices.io/patterns/data/saga.html eng])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – отобразить [https://en.wikipedia.org/wiki/Sequence_diagram sequence-диаграмой] схему взаимодействия сервисов при создании заказа, коротко описать текстом, какой паттерн использовался и почему на ваш взгляд он больше всего подходит&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
ДЗ сдается полностью аналогично предыдущим. Для тестирования нужно добавить такой же скрипт, как и в ДЗ-3, с проверкой статусов в новых сервисах.&lt;br /&gt;
&lt;br /&gt;
=== 5. Архитектурные ката ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 19 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Возьмите любой кейс из [https://www.architecturalkatas.com/ архитектурных ката] и спроектируйте его решение.&lt;br /&gt;
&lt;br /&gt;
В решении необходимо предоставить:&lt;br /&gt;
* Пользовательские сценарии&lt;br /&gt;
* Общую схему взаимодействия сервисов.&lt;br /&gt;
** Для каждого сервиса опишите назначение сервиса и его зону ответственности.&lt;br /&gt;
** Опишите контракты взаимодействия сервисов друг с другом. &lt;br /&gt;
* Диаграмму контейнеров приложения на основе выбранной модели функциональной декомпозиции&lt;br /&gt;
* Декомпозицию слоя данных: какие данные в каких БД хранятся&lt;br /&gt;
&lt;br /&gt;
Решение можно опубликовать в dropbox/яндекс диске/google диске/github/etc.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82078</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82078"/>
		<updated>2023-12-03T23:38:38Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: /* Домашние задания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ведомость:&#039;&#039;&#039; [https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
* &#039;&#039;&#039;23.11 Фронтенд. Мобильные архитектуры&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-23T16-10-00Z.mp4 Запись]] Архитектура UI. Мобильная платформа. Кросс платформенные приложения. MVC, MVVM, MVI. Тестирование. Дистрибуция. Server Side Rendering. Микрофронтенды.&lt;br /&gt;
* &#039;&#039;&#039;30.11 Масштабирование, Балансировка, API Gateway&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-30T14-59-18Z.mp4 Запись]]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи&#039;&#039;&#039;: [https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
=== 4. Распределенные транзакции ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 12 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Для интернет-магазина из ДЗ-3 доработать сервисы &amp;quot;Склад&amp;quot;, &amp;quot;Доставка&amp;quot;. При создании заказа необходимо:&lt;br /&gt;
* в сервисе &amp;quot;Склад&amp;quot; зарезервировать конкретный товар на складе&lt;br /&gt;
* в сервисе &amp;quot;Доставка&amp;quot; зарезервировать курьера на конкретный слот времени.&lt;br /&gt;
* Если хотя бы один из пунктов не получилось сделать, необходимо откатить все остальные изменения.&lt;br /&gt;
&lt;br /&gt;
В задании необходимо реализовать [https://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B8_%D0%B2_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%D1%85 механизм распределенных транзакций]. Рекомендуется использовать [https://neerc.ifmo.ru/wiki/index.php?title=2_Phase_Commit алгоритм двухфазного коммита] или паттерн &amp;quot;Сага&amp;quot; ([https://habr.com/ru/articles/427705/ rus], [https://microservices.io/patterns/data/saga.html eng])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – отобразить [https://en.wikipedia.org/wiki/Sequence_diagram sequence-диаграмой] схему взаимодействия сервисов при создании заказа, коротко описать текстом, какой паттерн использовался и почему на ваш взгляд он больше всего подходит&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
ДЗ сдается полностью аналогично предыдущим.&lt;br /&gt;
&lt;br /&gt;
=== 5. Архитектурные ката ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 19 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Возьмите любой кейс из [https://www.architecturalkatas.com/ архитектурных ката] и спроектируйте его решение.&lt;br /&gt;
&lt;br /&gt;
В решении необходимо предоставить:&lt;br /&gt;
* Пользовательские сценарии&lt;br /&gt;
* Общую схему взаимодействия сервисов.&lt;br /&gt;
** Для каждого сервиса опишите назначение сервиса и его зону ответственности.&lt;br /&gt;
** Опишите контракты взаимодействия сервисов друг с другом. &lt;br /&gt;
* Диаграмму контейнеров приложения на основе выбранной модели функциональной декомпозиции&lt;br /&gt;
* Декомпозицию слоя данных: какие данные в каких БД хранятся&lt;br /&gt;
&lt;br /&gt;
Решение можно опубликовать в dropbox/яндекс диске/google диске/github/etc.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82076</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82076"/>
		<updated>2023-12-03T23:03:47Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: /* Лекции и семинары */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ведомость:&#039;&#039;&#039; [https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
* &#039;&#039;&#039;23.11 Фронтенд. Мобильные архитектуры&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-23T16-10-00Z.mp4 Запись]] Архитектура UI. Мобильная платформа. Кросс платформенные приложения. MVC, MVVM, MVI. Тестирование. Дистрибуция. Server Side Rendering. Микрофронтенды.&lt;br /&gt;
* &#039;&#039;&#039;30.11 Масштабирование, Балансировка, API Gateway&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-30T14-59-18Z.mp4 Запись]]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи&#039;&#039;&#039;: [https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82006</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=82006"/>
		<updated>2023-11-30T12:13:56Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ведомость:&#039;&#039;&#039; [https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи&#039;&#039;&#039;: [https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU https://docs.google.com/forms/d/1h6qrFM5RuME33CLgh04-XPCGReUcbSqOZkJu5A8uOWU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81827</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81827"/>
		<updated>2023-11-22T00:28:15Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ведомость:&#039;&#039;&#039; [https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU https://docs.google.com/spreadsheets/d/1H-_6stGdmCN96wvdsjuY_qcv7LiUlzY_ZSDZ8AvR3AU]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81761</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81761"/>
		<updated>2023-11-20T19:42:46Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 3 декабря 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и описанием API.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81760</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81760"/>
		<updated>2023-11-20T19:37:28Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: /* Домашние задания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
=== 3. Взаимодействие сервисов ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Разработать API для интернет-магазина. За основу взять нужно взять ДЗ-2, доработать сервис авторизации и сделать новые сервисы заказа и биллинга.&lt;br /&gt;
&lt;br /&gt;
* Сервис авторизации должен проверять логин и пароль пользователя и выдавать ему токен для обращения к другим сервисам. Во всех дальнейших запросах токен должен передаваться в хедере &#039;Authorization: Bearer &amp;lt;token&amp;gt;&#039;. Сервис должен удовлетворять базовым требованиям безопасности.&lt;br /&gt;
&lt;br /&gt;
* В сервисе биллинга должна быть возможность положить деньги на аккаунт пользователя, проверить баланс и снять деньги.&lt;br /&gt;
&lt;br /&gt;
* Сервис заказа должен позволять создать заказ, посмотреть предыдущие заказы. При заказе нужно снимать с пользователя деньги, при недостаточном балансе возвращать ошибку и сохранять неуспешный заказ.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что все это называется сервисами, вы можете сами выбирать, использовать микросервисную или монолитную архитектуру, одну БД или несколько и тд.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Оценивание&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Оценивание состоит из двух частей&lt;br /&gt;
* Теоретическая часть (5 баллов) – спроектировать взаимодействие сервисов, отобразить схему картинкой и текстовым описанием к ней.&lt;br /&gt;
* Практическая часть (5 баллов) – реализовать спроектированный сервис.&lt;br /&gt;
&lt;br /&gt;
Также нужно приложить bash/python скрипт, тестирующий ваш сервис по следующему сценарию:&lt;br /&gt;
# Создать пользователя&lt;br /&gt;
# Положить деньги на счет пользователя&lt;br /&gt;
# Сделать заказ, на который хватает денег&lt;br /&gt;
# Убедиться, что деньги сняли&lt;br /&gt;
# Сделать заказ, на который не хватает денег&lt;br /&gt;
# Проверить, что заказ сохранился как неуспешный&lt;br /&gt;
# Проверить, что баланс не изменился&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Как и прошлое домашнее задание, это нужно сдать в виде github репозитория, картинки и описания нужно добавить туда же. Это может быть тот же репозиторий с отдельной веткой под ДЗ-3. Все приложение должно запускаться через docker-compose.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81711</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81711"/>
		<updated>2023-11-18T20:17:19Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: /* Лекции и семинары */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
* &#039;&#039;&#039;02.11 Безопасность&#039;&#039;&#039; [[https://disk.yandex.ru/i/CPd1y53fmCipZw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-02T15-09-25Z.mp4 Запись]] &lt;br /&gt;
* &#039;&#039;&#039;09.11 Наблюдаемость и надежность&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-11-09T15-09-16Z.mp4 Запись]] Kubernetes. Мониторинг. Алертинг. Service mesh.&lt;br /&gt;
* &#039;&#039;&#039;16.11 Аналитика&#039;&#039;&#039; ETL. MapReduce. Data Warehouse (DWH).&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81140</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81140"/>
		<updated>2023-10-25T21:54:41Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
=== 2. CRUD ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1YGDpg-odldRJiqW6ZqBb5znJsAfHt2l-3TlQsINajaA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 8 ноября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Задание&#039;&#039;&#039;: Сделать RESTful CRUD по созданию, удалению, просмотру и обновлению пользователей. Данные должны сохраняться в базе данных, которую вы можете выбрать на ваше усмотрение и запускать в docker-compose локально. Сервис должен предоставлять [http://18.193.188.156:8000/docs API аналогичное данному] (такие же методы и такая же структура пользователя).&lt;br /&gt;
&lt;br /&gt;
На данный момент не требуется делать какую-либо аутентификацию, это будет в следующем дз.&lt;br /&gt;
&lt;br /&gt;
В форму нужно сдать ссылку на репозиторий, содержащий код, Dockerfile и docker-compose.yml для запуска сервиса и базы данных.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81094</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81094"/>
		<updated>2023-10-23T13:08:58Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/i/BNFq0Wc2oS0Xqw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81064</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=81064"/>
		<updated>2023-10-21T14:49:45Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
* &#039;&#039;&#039;12.10 Хранилища, модели хранения данных&#039;&#039;&#039; [[https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-12T15-30-24Z.mp4 Запись]]&lt;br /&gt;
* &#039;&#039;&#039;19.10 Надежность и отказоустойчивость&#039;&#039;&#039; [[https://disk.yandex.ru/i/Ols3m0BWcatqgw Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-19T15-11-43Z.mp4 Запись]] Терминология. Нагрузочное тестирование. Rate limiting и throttling. Retry, circuit breaker, load shedding. Надежность пишущей нагрузки. Надежность асинхронного взаимодействия.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80806</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80806"/>
		<updated>2023-10-11T22:15:58Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%20GMT20230929-163154.mp4 Лекция] [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%20GMT20230930-063014.mp4 Семинар]] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80805</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80805"/>
		<updated>2023-10-11T22:14:37Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | Запись ждем из УО :(] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма для сдачи:&#039;&#039;&#039; https://docs.google.com/forms/d/1c52c2IKsGEqNQb6NdBh07biV_rd3mHS2jcIHBdtbhgE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дедлайн: 25 октября 23:59&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 1.&#039;&#039; Создать веб сервис, который доступен в сети на порту 8000 и имеет один http-метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
GET /health/&lt;br /&gt;
&lt;br /&gt;
RESPONSE: {&amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно использовать любой язык программирования и любые фреймворки. Проще всего будет начать с Python и FastAPI, пример его использования был на семинаре по Docker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 2.&#039;&#039; Cобрать локально образ приложения в докер контейнер под архитектуру AMD64.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 3. (8 баллов)&#039;&#039; Сохранить код сервиса и Dockerfile в &#039;&#039;&#039;приватный&#039;&#039;&#039; репозиторий на github и добавить в коллабораторы karpp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Шаг 4. (2 балла)&#039;&#039; Запушить образ в dockerhub. ([https://docs.docker.com/get-started/04_sharing_app/ Документация])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечания&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что при сборке на M1 при запуске вашего контейнера на стандартных платформах будет ошибка такого вида: &amp;lt;code&amp;gt;standard_init_linux.go:228: exec user process caused: exec format error&amp;lt;/code&amp;gt;. Чтобы избежать этого для сборки нужно указать тип платформы linux/amd64: &amp;lt;code&amp;gt;docker build --platform linux/amd64 -t tag&amp;lt;/code&amp;gt;. Более подробно можно прочитать в статье: https://programmerah.com/how-to-solve-docker-run-error-standard_init_linux-go219-exec-user-process-caused-exec-format-error-39221/.&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80659</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80659"/>
		<updated>2023-10-08T15:22:42Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
* &#039;&#039;&#039;29.09 Взаимодействие сервисов&#039;&#039;&#039; [[https://disk.yandex.ru/i/SSqbt71muPBRLg Презентация] | Запись ждем из УО :(] Синхронное и асинхронное API. Паттерны. Оркестрация и хореография. Версионирование. IDL и API first дизайн. Rich vs Data Centric API. REST. gRPC.&lt;br /&gt;
* &#039;&#039;&#039;05.10 Событийная модель и кафка&#039;&#039;&#039; [[https://disk.yandex.ru/i/aU_5L9KXDH4c0w Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-10-05T15-40-24Z.mp4 Запись]] События. Паттерны проектирования событий. Event sourcing. Stream processing. RabbitMQ. Kafka.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80141</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=80141"/>
		<updated>2023-09-24T20:20:59Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: добавлена лекция 21.09&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
* &#039;&#039;&#039;21.09 Функциональная декомпозиция&#039;&#039;&#039; [[https://disk.yandex.ru/i/7KQtzYMsFEtAQA Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-21T14-59-52Z.mp4 Запись]] Модифицируемость и ее оценка. Louse coupling &amp;amp; high cohesion. Строительные блоки. DDD. Модель предметной области.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=79843</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=79843"/>
		<updated>2023-09-15T22:02:26Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00 онлайн, объявления о любых изменениях будут в Telegram-канале.&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=79841</id>
		<title>Дизайн систем 23/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=%D0%94%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_23/24&amp;diff=79841"/>
		<updated>2023-09-15T22:00:58Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: Создана страница курса &amp;quot;Дизайн систем&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Это страница курса &amp;quot;Дизайн систем&amp;quot; 2023-2024 года (1-2 модуль 4 курса ПМИ).&lt;br /&gt;
&lt;br /&gt;
Занятия проходят по четвергам в 18:10 - 21:00&lt;br /&gt;
&lt;br /&gt;
Преподаватели: [https://t.me/schetinnikov Стас Щетинников], [https://t.me/artemasmith Артем Кузнецов], [https://t.me/izhigalko Илья Жигалко], [https://t.me/ekarp Егор Карпов]&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Канал курса:&#039;&#039;&#039; [https://t.me/+ZikB0F8elb1kOTE6 https://t.me/+ZikB0F8elb1kOTE6]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Чат курса:&#039;&#039;&#039; [https://t.me/+0azNletbfBQ1NDRi https://t.me/+0azNletbfBQ1NDRi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Все записи:&#039;&#039;&#039; [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ https://disk.yandex.ru/d/jMjWZTmQP_-GoQ]&lt;br /&gt;
&lt;br /&gt;
== Лекции и семинары ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;07.09. Основы системного проектирования.&#039;&#039;&#039; [[https://disk.yandex.ru/i/w6vFjLcuKxVkhQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%2020230907-162454.mp4 Запись]] Архитектура. Жизненный цикл архитектуры. Архитектурные драйверы и архитектурно значимые требования (ASR). Проектирование и оценка архитектуры. Waterfall.&lt;br /&gt;
* &#039;&#039;&#039;14.09. Docker&#039;&#039;&#039; [[https://disk.yandex.ru/i/3oLiSxU1HsZEEQ Презентация] | [https://disk.yandex.ru/d/jMjWZTmQP_-GoQ/%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F%2B%D0%A1%D0%B5%D0%BC%D0%B8%D0%BD%D0%B0%D1%80%202023-09-14T15-28-07Z.mp4 Запись]] Архитектурные паттерны. CI/CD. VM vs Containers. Конфигурирование приложения. Паттерны деплоя. Service discovery. Health check. Docker.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Docker ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
== Итоговая оценка за курс ==&lt;br /&gt;
&lt;br /&gt;
Итог = min(Округл(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.5 * ДЗ3 + 0.6 * ДЗ4 + 0.3 * ДЗ5 + 0.3 * Э), 10)&lt;br /&gt;
&lt;br /&gt;
ДЗ –– оценки за домашние задания&lt;br /&gt;
&lt;br /&gt;
Э –– устный экзамен&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое.&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Wiki_%D0%A4%D0%9A%D0%9D&amp;diff=79833</id>
		<title>Wiki ФКН</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Wiki_%D0%A4%D0%9A%D0%9D&amp;diff=79833"/>
		<updated>2023-09-15T21:28:54Z</updated>

		<summary type="html">&lt;p&gt;Kkarpea: Добавлена страница курса дизайн систем&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
&lt;br /&gt;
= Учебные курсы факультета компьютерных наук =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Курсы за 2023/24 учебный год ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable courses&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! width=&amp;quot;21%&amp;quot; | 1 курс !! width=&amp;quot;21%&amp;quot; | 2 курс !! width=&amp;quot;21%&amp;quot; | 3 курс !! width=&amp;quot;21%&amp;quot; | 4 курс  !! rowspan=&amp;quot;2&amp;quot; | майноры и факультативы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;ПМИ&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;М+&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Линейная_алгебра_и_геометрия_на_ПМИ_2023/2024_(пилотный_поток) | Линейная алгебра и геометрия (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_1_2023/24_(пилотный_поток) | Математический анализ-1 (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Дискретная математика на ПМИ 2023/24 (пилотный поток) | Дискретная математика (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгебра_на_ПМИ_2023/2024_(пилотный_поток) | Алгебра (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория чисел (пилотный поток) 2023/24 | Теория чисел (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;М&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Линейная_алгебра_и_геометрия_на_ПМИ_2023/2024_(основной_поток) | Линейная алгебра и геометрия (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_1_2023/24_(основной_поток) | Математический анализ-1 (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[DM1PMIbase-2023-24 | Дискретная математика (ПМИ основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[DM1EAD-2023-24 | Дискретная математика (ЭАД)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Алгебра_на_ПМИ_2023/2024_(основной_поток) | Алгебра (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория чисел (основной поток) 2023/24 | Теория чисел (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;П+&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_пилотный_поток_2023/24 | Алгоритмы и структуры данных (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;П&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Язык программирования Python 2023/24 (основной поток) ]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы и структуры данных 1 (основной поток) (4 модуль) 2023/2024]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&#039;&#039;&#039;М+&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Математическая_статистика_2023/24_(пилотный_поток)| Математическая статистика (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вероятностей_2023/24_(пилотный_поток)| Теория вероятностей (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический Анализ 2 на ПМИ 2023/24 (пилотный поток) | Математический анализ - 2 (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;М&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Математическая_статистика_2023/24_(основной_поток)| Математическая статистика (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вероятностей_2023/24_(основной_поток)| Теория вероятностей (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_-_2_(2023/24) | Математический анализ - 2 (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;П+ и П&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CAOS-2023/24 | Архитектура компьютеров и операционные системы]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_2_2023/24 | Алгоритмы и структуры данных - 2 ]]&lt;br /&gt;
&lt;br /&gt;
[[Инструменты_промышленной_разработки_2023/24 | Инструменты промышленной разработки 2022/2023 ]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 из 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Язык_программирования_C%2B%2B_(углубленный_курс)_2023/24 | Язык программирования C++ (углубленный курс)]]&lt;br /&gt;
&lt;br /&gt;
[[Продвинутый_Python_2023/24 | Продвинутый Python ]]&lt;br /&gt;
&lt;br /&gt;
[[Язык программирования Rust 2023/24]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2 из 5:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Дискретная математика - 2 (ПМИ) 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Дифференциальные уравнения (ПМИ) 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Основы матричных вычислений 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Комплексный анализ 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Функциональный анализ 2023/24]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Машинное_обучение_1 | Машинное обучение 1]] &amp;lt;!-- ссылка без года - верно, так и должно быть --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Компьютерные сети 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Operation Research and Game Theory]]&lt;br /&gt;
&lt;br /&gt;
[[ Statistical learning theory 2023/24 | Statistical Learning Theory]]&lt;br /&gt;
&lt;br /&gt;
[[ Функциональное_программирование_23-24 | Функциональное программирование ]]&lt;br /&gt;
&lt;br /&gt;
[[ Основы_тензорных_вычислений_(2023/24) | Основы тензорных вычислений ]]&lt;br /&gt;
&lt;br /&gt;
[[Глубинное обучение 1 23/24 | Введение в глубинное обучение 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Математическое моделирование 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Моделирование временных рядов 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_чисел_и_криптография 2023/24 | Теория чисел и криптография]]&lt;br /&gt;
&lt;br /&gt;
[[Методы_оптимизации_23/24 | Методы оптимизации]]&lt;br /&gt;
&lt;br /&gt;
[[Уравнения с частными производными (2023-2024)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / МОП&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Машинное_обучение_2 | Машинное обучение 2]] &amp;lt;!-- ссылка без года - верно, так и должно быть --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Прикладная_статистика_в_машинном_обучении_23/24 | Прикладная статистика в машинном обучении 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[НИС_Машинное_обучение_и_приложения_3_курс_2023/2024 | НИС Машинное обучение и приложения 3 курс]]&lt;br /&gt;
&lt;br /&gt;
[[Глубинное обучение 1 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Методы оптимизации в машинном обучении 2023/24]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / РС&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Distributed_Systems_2023 | Распределенные системы]]&lt;br /&gt;
&lt;br /&gt;
[https://osukhoroslov-hse.notion.site/2da6d9d4dc5944e59414daea40376d96 НИС Распределенные системы]&lt;br /&gt;
&lt;br /&gt;
[[Database Systems 2023/24]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / ТИ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Theory of Computation 2023 | Theory of Computation]]&lt;br /&gt;
&lt;br /&gt;
[[ NIS-TCS-23-24 | НИС Теоретическая информатика ]]&lt;br /&gt;
&lt;br /&gt;
[[KKTI-23-24 | Комбинаторные конструкции в теоретической информатике]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[ ВКР]&lt;br /&gt;
&lt;br /&gt;
[[ Случайные_процессы_(зима_2024) | Случайные процессы (зима 2023)]]&lt;br /&gt;
&lt;br /&gt;
[[ Функциональное_программирование_23-24 | Функциональное программирование ]]&lt;br /&gt;
&lt;br /&gt;
[[ Haskell_23/24 | Промышленное программирование на Haskell ]]&lt;br /&gt;
&lt;br /&gt;
[[ Основы_тензорных_вычислений_(2023/24) | Основы тензорных вычислений ]]&lt;br /&gt;
&lt;br /&gt;
[[ Глубинное_обучение_в_обработке_звука_23/24 | Глубинное обучение в обработке звука ]]&lt;br /&gt;
&lt;br /&gt;
[[ Глубинное обучение для текстовых данных 23/24 | Глубинное обучение для текстовых данных ]]&lt;br /&gt;
&lt;br /&gt;
[[ Методы_предобучения_без_учителя_23/24 | Методы предобучения без учителя ]]&lt;br /&gt;
&lt;br /&gt;
[[ Символьные_вычисления_23/24 | Символьные вычисления ]]&lt;br /&gt;
&lt;br /&gt;
[[Эффективные системы глубинного обучения 23/24|Эффективные системы глубинного обучения]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_и_практика_онлайн-экспериментов_23/24 | Теория и практика онлайн-экспериментов]]&lt;br /&gt;
&lt;br /&gt;
[[Децентрализованные_системы 2023/24| Децентрализованные системы ]]&lt;br /&gt;
&lt;br /&gt;
[[Введение_в_дифференциальную_геометрию_23/24 | Введение в дифференциальную геометрию ]]&lt;br /&gt;
&lt;br /&gt;
[[Дизайн_систем_23/24 | Дизайн систем ]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / МОП&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[НИС_Машинное_обучение_и_приложения_4_курс_2023/2024 | НИС Машинное обучение и приложения 4 курс]]  &lt;br /&gt;
&lt;br /&gt;
[[Глубинное_обучение_2023/24 | Глубинное обучение]]&lt;br /&gt;
&lt;br /&gt;
[[Глубинное_обучение_в_анализе_графовых_данных_23/24 | Глубинное обучение в анализе графовых данных]]&lt;br /&gt;
&lt;br /&gt;
[[LSML_2023/2024 | Машинное обучение для больших данных]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / РС&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://osukhoroslov-hse.notion.site/2-013e88a10c204059bff194f838de4ef5?pvs=4 НИС Распределенные системы 2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / ТИ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[A_Theorist&#039;s_Toolkit_2023_2024 | A Theorist&#039;s Toolkit, AMI]]&lt;br /&gt;
&lt;br /&gt;
[[OWF2023 | Односторонние функции и их применения]]&lt;br /&gt;
&lt;br /&gt;
[[InfTheory2023 | Теория информации]]&lt;br /&gt;
&lt;br /&gt;
[[ NIS-TCS-23-24 | НИС Теоретическая информатика ]]&lt;br /&gt;
&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | &lt;br /&gt;
&amp;lt;!-- майноры и факультативы --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Майнор_Биоинформатика_1_год_2023/24|Биоинформатика 1 год 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Майнор_Биоинформатика_2_год_2023/24|Биоинформатика 2 год 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Основы_глубинного_обучения/2023 | Основы глубинного обучения (майнор ИАД)]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;ПИ&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[Дискретная математика 2023-2024 | Дискретная математика ]]&lt;br /&gt;
&lt;br /&gt;
[[Алгебра ПИ 2023-2024 | Алгебра]]&lt;br /&gt;
&lt;br /&gt;
[[Математический анализ 2023-2024 | Математический анализ]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_на_ПИ_2023/2024 | Алгоритмы и структуры данных на ПИ]]&lt;br /&gt;
&lt;br /&gt;
[[Теория вероятностей и математическая статистика 2023-2024 | Теория вероятностей и математическая статистика]]&lt;br /&gt;
&lt;br /&gt;
[[НИС_Методы_и_алгоритмы_защиты_информации_2023/2024 | НИС Методы и алгоритмы защиты информации ]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[ SPA_2023/24 |Принципы статического анализа исходного кода ]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;ПАД&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[DSBA_Algebra_2023_2024 | Algebra (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Calculus DSBA 2023/2024 | Calculus (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[English_DSBA_2023/2024 | English (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[LAaG DSBA 2023/2024 | LAaG (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Discrete Mathematics DSBA 2023/2024 | Discrete Mathematics (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Python Programming DSBA 2023/24 | Python Programming (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[C++ Programming Language DSBA 2023/24 | C++ Programming Language (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Foundations_of_Law_DSBA_2023/24 | Foundations of Law (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Introduction to Economics DSBA 2023/24]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Discrete Mathematics 2 DSBA 2023/24 | Discrete Mathematics 2 (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Calculus-2 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Algorithms and Data Structures DSBA 2023/24 | Algorithms and Data Structures]]&lt;br /&gt;
&lt;br /&gt;
[[Probability and Statistics (DSBA) 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Introduction to Micro and Macroeconomics DSBA 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
[[Differential Equations 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[ACOS_DSBA_2023/24 | Computer Architecture and Operating Systems]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[tssp-2023-24 | Time series and stochastic processes 2023-24]]&lt;br /&gt;
&lt;br /&gt;
[ Elements of Econometrics]&lt;br /&gt;
&lt;br /&gt;
[[BAFE-2023-24 | Business Analytics and Financial Engineering 2023-2024]]&lt;br /&gt;
&lt;br /&gt;
[[Machine learning 1 DSBA 2023/2024]]&lt;br /&gt;
&lt;br /&gt;
[[Databases 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[Optimisation methods 2023/24]]&lt;br /&gt;
&lt;br /&gt;
[[ MACE1_DSBA_23-24 | Research Seminar &amp;quot;Mathematical and Computational Engineering in Science and Business 1&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[ DAF1_DSBA_23-24 | Research Seminar &amp;quot;Data Analysis in Finance 1&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[ Statistics4MR-2023-24 | Statistics for Market Research 2023-24]]&lt;br /&gt;
&lt;br /&gt;
[[ Strategy_23-24_DSBA  | Decision Making Strategy 2023-2024]]&lt;br /&gt;
&lt;br /&gt;
[[ APFM_23-24 | Asset Pricing and Financial Markets 2023-2024]]&lt;br /&gt;
&lt;br /&gt;
[[ CMC_DSBA_23-24 | Core management concepts ]]&lt;br /&gt;
&lt;br /&gt;
[[Machine learning 2 DSBA 2023/2024]]&lt;br /&gt;
&lt;br /&gt;
[[ MACE2_DSBA_23-24 | Research Seminar &amp;quot;Mathematical and Computational Engineering in Science and Business 2&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[ DAF2_DSBA_23-24 | Research Seminar &amp;quot;Data Analysis in Finance 2&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[ DANS_DSBA_23-24 | Research Seminar &amp;quot;Data Analysis in the Natural Sciences&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
[[Risk-Management_DSBA_23-24 | Research Seminar &amp;quot;Risk-Management&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
[[Quantitative finance DSBA 2023/24]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;КНАД&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[Дискретная математика КНАД 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Математический анализ КНАД 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Линейная алгебра КНАД 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Программирование на Python КНАД 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы и структуры данных - 1 2023/2024 2 модуль (ЭАД КНАД ВСН)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы и структуры данных - 1 2023/2024 4 модуль (ЭАД КНАД ВСН)]]&lt;br /&gt;
&lt;br /&gt;
[[Python для сбора и анализа данных КНАД 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[Программирование на С++ КНАД 23/24]]&lt;br /&gt;
&lt;br /&gt;
[[ИПР_КНАД_23/24 | Инструменты промышленной разработки]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Алгебра КНАД 2023/2024 | Алгебра]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ -- 2 (2023/24) | Математический анализ -- 2]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_2_КНАД 23/24 | Алгоритмы и структуры данных 2]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вероятностей_КНАД 23/24 | Теория вероятностей ]]&lt;br /&gt;
&lt;br /&gt;
[[ACOS_COMPDS_2023/2024 | Архитектура Компьютера и Операционные Системы]]&lt;br /&gt;
&lt;br /&gt;
[[Математическая_статистика_КНАД_23/24 | Математическая статистика]]&lt;br /&gt;
&lt;br /&gt;
[[Численные_методы_КНАД_23/24 | Численные методы]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Курсы в рамках проекта [https://www.hse.ru/dataculture/ Data Culture]==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-  &lt;br /&gt;
! Осенний семестр !! Весенний семестр&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
[[Основы Python для юристов 2023-24|Основы Python для юристов 23/24]] (2 курс, 1 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Цифровая_грамотность_(2023)_Журналистика|Цифровая грамотность для журналистов]] (1 курс, 1-2 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Цифровая_грамотность_(2023)_Медиакоммуникации|Цифровая грамотность для медиакоммуникаций]] (1 курс, 1-2 модуль)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Курсы магистратуры ФКН ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| [[ NIS-TCS-23-24 | НИС Теоретическая информатика ]] || СКН&lt;br /&gt;
|-&lt;br /&gt;
| [[RecSys_2023 | Рекомендательные системы]] || ФТИАД || 2 year&lt;br /&gt;
|-&lt;br /&gt;
| [[MOTV_2023 | Mathematical foundations of probability theory]] || Math of Machine Learning, MML || 1 year&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Курсы других факультетов ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Дисциплина !! Курс !! Период&lt;br /&gt;
|-&lt;br /&gt;
| [[econ_metrics_2023-24|Эконометрика ип 2023-24]] || фэн, 3 курс || 1-4 модуль&lt;br /&gt;
|-&lt;br /&gt;
| [[Econ_probability_2023-24|Теория вероятностей и математическая статистика 2023-24]] || фэн, 2 курс || 1-4 модуль&lt;br /&gt;
|-&lt;br /&gt;
| [[dse_2023-24|Data Science for Economists, fall 2023]] || icef, 3-4 year || 1-2 modules&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Архив =&lt;br /&gt;
&lt;br /&gt;
== Курсы за 2022/23 учебный год ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable courses&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! width=&amp;quot;21%&amp;quot; | 1 курс !! width=&amp;quot;21%&amp;quot; | 2 курс !! width=&amp;quot;21%&amp;quot; | 3 курс !! width=&amp;quot;21%&amp;quot; | 4 курс  !! rowspan=&amp;quot;2&amp;quot; | майноры и факультативы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;ПМИ&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Линейная_алгебра_и_геометрия_на_ПМИ_2022/2023_(пилотный_поток) | Линейная алгебра и геометрия (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Линейная_алгебра_и_геометрия_на_ПМИ_2022/2023_(основной_поток) | Линейная алгебра и геометрия (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгебра_на_ПМИ_2022/2023_(пилотный_поток) | Алгебра (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгебра_на_ПМИ_2022/2023_(основной_поток) | Алгебра (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_1_2022/2023_(основной_поток) | Математический анализ-1 (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_1_2022/2023_(пилотный_поток) | Математический анализ-1 (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[DM1base-2022-23 | Дискретная математика (ПМИ основной поток + ЭАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Дискретная математика на ПМИ 2022/23 (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Язык программирования Python 2022/2023 (основной поток) ]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_пилотный_поток_2022/2023 | Алгоритмы и структуры данных (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория чисел (пилотный поток) 2022/23 | Теория чисел (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория чисел (основной поток) 2022/23 | Теория чисел (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_1_(основной_поток)_(4_модуль) | Алгоритмы и структуры данных 1 (основной поток) (4 модуль) 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Математическая_статистика_2022/2023_(пилотный_поток)| Математическая статистика (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математическая_статистика_2022/2023_(основной_поток)| Математическая статистика (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вероятностей_2022/2023_(пилотный_поток)| Теория вероятностей (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вероятностей_2022/2023_(основной_поток)| Теория вероятностей (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_Анализ_2_на_ПМИ_2022/2023_(пилотный_поток) | Математический анализ - 2 (пилотный поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_-_2_(2022/23) | Математический анализ - 2 (основной поток)]]&lt;br /&gt;
&lt;br /&gt;
[[Язык_программирования_C%2B%2B_(углубленный_курс)_2022 | Язык программирования C++ (углубленный курс)]]&lt;br /&gt;
&lt;br /&gt;
[[Математическая_логика_ПМИ_22/23 | Математическая логика ]]&lt;br /&gt;
&lt;br /&gt;
[[Продвинутый_Python_2022/2023 | Продвинутый Python ]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_2_2022/2023 | Алгоритмы и структуры данных - 2 ]]&lt;br /&gt;
&lt;br /&gt;
[[Инструменты_промышленной_разработки_2022/2023 | Инструменты промышленной разработки 2022/2023 ]]&lt;br /&gt;
&lt;br /&gt;
[[CAOS-2022 | Архитектура компьютеров и операционные системы]]&lt;br /&gt;
&lt;br /&gt;
[[Дифференциальные уравнения (ПМИ) 2022/23]]&lt;br /&gt;
&lt;br /&gt;
[[Основы_матричных_вычислений_2022/2023 | Основы матричных вычислений ]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Машинное_обучение_1/2022_2023 | Машинное обучение 1]]&lt;br /&gt;
&lt;br /&gt;
[[Компьютерные_сети_2022/2023 | Компьютерные сети 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
[[ Operation Research and Game Theory | Operation Research and Game Theory]]&lt;br /&gt;
&lt;br /&gt;
[[ Statistical learning theory 2022 | Statistical Learning Theory]]&lt;br /&gt;
&lt;br /&gt;
[[ Функциональное_программирование_22-23 | Функциональное программирование ]]&lt;br /&gt;
&lt;br /&gt;
[[ Основы_тензорных_вычислений_(2022/2023) | Основы тензорных вычислений ]]&lt;br /&gt;
&lt;br /&gt;
[[Глубинное обучение 1 22/23 | Введение в глубинное обучение 22/23]]&lt;br /&gt;
&lt;br /&gt;
[[Математическое_моделирование_2022  | Математическое моделирование 2022]]&lt;br /&gt;
&lt;br /&gt;
[[time_series_modelling_22_23 | Моделирование временных рядов 22/23]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_чисел_и_криптография | Теория чисел и криптография]]&lt;br /&gt;
&lt;br /&gt;
[[Методы_оптимизации_22/23 | Методы оптимизации]]&lt;br /&gt;
&lt;br /&gt;
[[Уравнения с частными производными (2022-2023)|Уравнения с частными производными (2022-2023)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / МОП&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Машинное_обучение_2 | Машинное обучение 2]]&lt;br /&gt;
&lt;br /&gt;
[[Прикладная_статистика_в_машинном_обучении_22/23 | Прикладная статистика в машинном обучении 22/23]]&lt;br /&gt;
&lt;br /&gt;
[[НИС_Машинное_обучение_и_приложения_3_курс_2022/2023 | НИС Машинное обучение и приложения 3 курс]]&lt;br /&gt;
&lt;br /&gt;
[[Глубинное обучение 1 22/23 | Глубинное обучение 1 22/23]]&lt;br /&gt;
&lt;br /&gt;
[[Методы оптимизации в машинном обучении 2023]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / РС&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://osukhoroslov-hse.notion.site/a35a6a40088b44a7a9e374727a0f2548 Распределенные системы]&lt;br /&gt;
&lt;br /&gt;
[https://osukhoroslov-hse.notion.site/dbce4f5101ed47dca0b363122f139aac НИС Распределенные системы]&lt;br /&gt;
&lt;br /&gt;
[[Database Systems 2023]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / ТИ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Theory of Computation 2022 | Theory of Computation]]&lt;br /&gt;
&lt;br /&gt;
[[ NIS-TCS-22-23 | НИС Теоретическая информатика ]]&lt;br /&gt;
&lt;br /&gt;
[[KKTI-22-23 | Комбинаторные конструкции в теоретической информатике]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[https://www.notion.so/2022-2023-12475421ada6400c8bd5bf24a2a30c01  ВКР]&lt;br /&gt;
&lt;br /&gt;
[[ Случайные_процессы_(зима_2023) | Случайные процессы (зима 2023)]]&lt;br /&gt;
&lt;br /&gt;
[[ Функциональное_программирование_22-23 | Функциональное программирование ]]&lt;br /&gt;
&lt;br /&gt;
[[ Haskell_23 | Промышленное программирование на Haskell ]]&lt;br /&gt;
&lt;br /&gt;
[[ Основы_тензорных_вычислений_(2022/2023) | Основы тензорных вычислений ]]&lt;br /&gt;
&lt;br /&gt;
[[ Глубинное_обучение_в_обработке_звука_22/23 | Глубинное обучение в обработке звука ]]&lt;br /&gt;
&lt;br /&gt;
[[ Методы_предобучения_без_учителя_22/23 | Методы предобучения без учителя ]]&lt;br /&gt;
&lt;br /&gt;
[[ Символьные_вычисления_22/23 | Символьные вычисления ]]&lt;br /&gt;
&lt;br /&gt;
[[Эффективные системы глубинного обучения 22/23|Эффективные системы глубинного обучения]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_и_практика_онлайн-экспериментов_22/23 | Теория и практика онлайн-экспериментов]]&lt;br /&gt;
&lt;br /&gt;
[[Децентрализованные_системы | Децентрализованные системы ]]&lt;br /&gt;
&lt;br /&gt;
[[Введение_в_дифференциальную_геометрию_22/23 | Введение в дифференциальную геометрию ]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / МОП&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[НИС_Машинное_обучение_и_приложения_4_курс_2022/2023 | НИС Машинное обучение и приложения 4 курс]]  &lt;br /&gt;
&lt;br /&gt;
[[Глубинное_обучение_2022 | Глубинное обучение]]&lt;br /&gt;
&lt;br /&gt;
[[Глубинное_обучение_в_анализе_графовых_данных_22/23 | Глубинное обучение в анализе графовых данных]]&lt;br /&gt;
&lt;br /&gt;
[[LSML_2022/2023 | Машинное обучение для больших данных]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / РС&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://osukhoroslov-hse.notion.site/2-b1c2d4487ac8478f89cd4fa427da3e27 НИС Распределенные системы]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ПМИ / ТИ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[A_Theorist&#039;s_Toolkit_2022_2023 | A Theorist&#039;s Toolkit, AMI]]&lt;br /&gt;
&lt;br /&gt;
[[OWF2022 | Односторонние функции и их применения]]&lt;br /&gt;
&lt;br /&gt;
[[InfTheory2022 | Теория информации]]&lt;br /&gt;
&lt;br /&gt;
[[ NIS-TCS-22-23 | НИС Теоретическая информатика ]]&lt;br /&gt;
&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | &lt;br /&gt;
&amp;lt;!-- майноры и факультативы --&amp;gt;&lt;br /&gt;
[[Дополнительные_главы_теории_чисел|Дополнительные главы теории чисел]]&lt;br /&gt;
&lt;br /&gt;
[[Дополнительные_главы_теории_вероятностей_2023|ДГТВ]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вычислений_2023|Теория вычислений]]&lt;br /&gt;
&lt;br /&gt;
[[Случайные_графы_2022 | Случайные графы]]&lt;br /&gt;
&lt;br /&gt;
[[Майнор_Биоинформатика_1_год_2022/23 | Биоинформатика 1 год 2022/23]]&lt;br /&gt;
&lt;br /&gt;
[[Майнор Биоинформатика 2 год 2022/23 | Биоинформатика 2 год]]&lt;br /&gt;
&lt;br /&gt;
[[Основы_машинного_обучения | Основы машинного обучения (майнор ИАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Основы_глубинного_обучения | Основы глубинного обучения (майнор ИАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Прикладные_задачи_анализа_данных | Прикладные задачи анализа данных (майнор ИАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Введение_в_программирование_22/23_(майнор_ИАД) | Введение в программирование 22/23 (майнор ИАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Базы данных 22/23 (майнор ИАД)| Базы данных 22/23 (майнор ИАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Adaptation course in Discrete Math (факультатив)]]&lt;br /&gt;
&lt;br /&gt;
[[Уравнения с частными производными (2022-2023)|Уравнения с частными производными (2022-2023)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;ПИ&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[Дискретная математика 2022-2023 | Дискретная математика ]]&lt;br /&gt;
&lt;br /&gt;
[[Алгебра ПИ 2022-2023 | Алгебра]]&lt;br /&gt;
&lt;br /&gt;
[[Математический анализ 2022-2023 | Математический анализ]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_на_ПИ_2022/2023 | Алгоритмы и структуры данных на ПИ]]&lt;br /&gt;
&lt;br /&gt;
[[Теория вероятностей и математическая статистика 2022-2023 | Теория вероятностей и математическая статистика]]&lt;br /&gt;
&lt;br /&gt;
[[НИС_Методы_и_алгоритмы_защиты_информации_2022/2023 | НИС Методы и алгоритмы защиты информации ]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[ SPA_2022 |Принципы статического анализа исходного кода ]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;ПАД&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[DSBA_Algebra_2022_2023 | Algebra (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Calculus DSBA 2022/2023 | Calculus (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[English_DSBA_2022/2023 | English DSBA (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[LAaG DSBA 2022/2023 | LAaG (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Discrete Mathematics DSBA 2022/2023 | Discrete Mathematics (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Introduction to Programming DSBA 2022/2023 | Introduction to Programming on Python (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Introduction to Programming 2 DSBA 2022/2023 | Introduction to Programming on C++ (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Foundations_of_Law_DSBA_2022/2023 | Foundations of Law (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Introduction to Economics DSBA 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Discrete Mathematics 2 DSBA 2022/2023 | Discrete Mathematics 2 (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Business_and_Management_in_Global_Context_22/23 | Business and Management in Global Context 22/23]]&lt;br /&gt;
&lt;br /&gt;
[[Calculus-2]]&lt;br /&gt;
&lt;br /&gt;
[[Algorithms and Data Structures DSBA 2022/2023 | Algorithms and Data Structures]]&lt;br /&gt;
&lt;br /&gt;
[[Probability and Statistics (DSBA)]]&lt;br /&gt;
&lt;br /&gt;
[[Introduction to Micro and Macroeconomics DSBA 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
[[Differential_Equations_2023 | Differential Equations ]]&lt;br /&gt;
&lt;br /&gt;
[[ACOS_DSBA_2022/2023 | Computer Architecture and Operating Systems]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[tssp-2022-23 | Time series and stochastic processes 2022-23]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/xenakas/dsba_ecm_2022 Elements of Econometrics]&lt;br /&gt;
&lt;br /&gt;
[[BAFE-2022-23 | Business Analytics and Financial Engineering 2022-2023]]&lt;br /&gt;
&lt;br /&gt;
[[Machine learning 1 DSBA 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
[[Databases]]&lt;br /&gt;
&lt;br /&gt;
[[Optimisation methods]]&lt;br /&gt;
&lt;br /&gt;
[[ MACE1_DSBA_22-23 | Research Seminar &amp;quot;Mathematical and Computational Engineering in Science and Business 1&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[ DAF1_DSBA_22-23 | Research Seminar &amp;quot;Data Analysis in Finance 1&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[ Statistics4MR-2022-23 | Statistics for Market Research 2022-23]]&lt;br /&gt;
&lt;br /&gt;
[[ Strategy_22-23_DSBA  | Decision Making Strategy 2022-2023]]&lt;br /&gt;
&lt;br /&gt;
[[ APFM_22-23 | Asset Pricing and Financial Markets 2022-2023]]&lt;br /&gt;
&lt;br /&gt;
[[ CMC_DSBA_22-23 | Core management concepts ]]&lt;br /&gt;
&lt;br /&gt;
[[Machine learning 2 DSBA 2022/2023]]&lt;br /&gt;
&lt;br /&gt;
[[ MACE2_DSBA_22-23 | Research Seminar &amp;quot;Mathematical and Computational Engineering in Science and Business 2&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[ DAF2_DSBA_22-23 | Research Seminar &amp;quot;Data Analysis in Finance 2&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[ DANS_DSBA_22-23 | Research Seminar &amp;quot;Data Analysis in the Natural Sciences&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
[[Risk-Management_DSBA_22-23 | Research Seminar &amp;quot;Risk-Management&amp;quot; ]]&lt;br /&gt;
&lt;br /&gt;
[[Quantitative finance DSBA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align: center;&amp;quot; | &#039;&#039;&#039;КНАД&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[Дискретная_математика_КНАД 22/23| Дискретная математика (КНАД) ]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ_КНАД 22/23| Математический анализ (КНАД) ]]&lt;br /&gt;
&lt;br /&gt;
[[Линейная_алгебра_КНАД 22/23| Линейная алгебра (КНАД) ]]&lt;br /&gt;
&lt;br /&gt;
[[Программирование_на_Python_КНАД 22/23| Программирование на Python (КНАД) ]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы и структуры данных - 1 2022/2023 2 модуль (ЭАД КНАД ВСН) | Алгоритмы и структуры данных 2022/2023 2 модуль (ЭАД КНАД ВСН)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы и структуры данных - 1 2022/2023 4 модуль (ЭАД КНАД ВСН) | Алгоритмы и структуры данных 2022/2023 4 модуль (ЭАД КНАД ВСН)]]&lt;br /&gt;
&lt;br /&gt;
[[Python_для_сбора_и_анализа_данных_КНАД_22/23 | Python для сбора и анализа данных (КНАД)]]&lt;br /&gt;
&lt;br /&gt;
[[Программирование_на_С++_КНАД_22/23 | Программирование на С++]]&lt;br /&gt;
&lt;br /&gt;
[[ИПР_КНАД_23 | Инструменты промышленной разработки]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
[[Алгебра КНАД 2022/2023 | Алгебра]]&lt;br /&gt;
&lt;br /&gt;
[[Математический_анализ -- 2 (2022/23) | Математический анализ -- 2]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_и_структуры_данных_2_КНАД 22/23 | Алгоритмы и структуры данных 2]]&lt;br /&gt;
&lt;br /&gt;
[[Теория_вероятностей_КНАД 22/23 | Теория вероятностей ]]&lt;br /&gt;
&lt;br /&gt;
[[ACOS_COMPDS_2022/2023 | Архитектура Компьютера и Операционные Системы]]&lt;br /&gt;
&lt;br /&gt;
[[Математическая_статистика_КНАД_22/23 | Математическая статистика]]&lt;br /&gt;
&lt;br /&gt;
[[Численные_методы_КНАД_22/23 | Численные методы]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Курсы в рамках проекта [https://www.hse.ru/dataculture/ Data Culture]==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-  &lt;br /&gt;
! Осенний семестр !! Весенний семестр&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
[[Цифровая грамотность для международных отношений 22/23]] (1 курс, 1-2 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Основы анализа данных в международных отношениях 22/23]] (2 курс, 1-2 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Основы программирования на Python осень 2022 матфак]] (2-4 курс бакалавриата или 1-2 курс магистратуры, 1-2 модуль) &lt;br /&gt;
&lt;br /&gt;
[[Анализ данных 2022 (ОП &amp;quot;Журналистика&amp;quot; и &amp;quot;Медиакоммуникации&amp;quot;) | Анализ данных]] (2 курс, 1-2 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Машинное обучение (ФЭН) - 2022-2023]] (3,4 курс, 1-2 модули)&lt;br /&gt;
| &lt;br /&gt;
[[Прикладное программное обеспечение (основы Python) для социологии 2022/23]] (1 курс, 3 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Программирование на языке Python для ГосМунУпр 2022/23 | Программирование на языке Python для гос. и муницип. управления 2022/23]] (1 курс, 3-4 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Основы программирования в Python для политологии 2022/23]] (2 курс, 3-4 модули)&lt;br /&gt;
&lt;br /&gt;
[[Основы программирования в Python для школы дизайна 2022/23]] (2 курс, 3-4 модули)&lt;br /&gt;
&lt;br /&gt;
[[Основы программирования в Python для ВШБ 2022/23]] (2 курс, 3 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Программирование на Python для МО 22/23]] (1 курс, 3 модуль)&lt;br /&gt;
&lt;br /&gt;
[[Машинное обучение 22/23 Матфак]] (3 курс, 3-4 модули)&lt;br /&gt;
&lt;br /&gt;
[[Анализ Данных 22/23 Политологи]] (3 курс, 3-4 модули)&lt;br /&gt;
&lt;br /&gt;
[[Введение в Data Science для ВШБ 2022/23]] (2 курс, 4 модуль)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Курсы магистратуры ФКН ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| [[Ликбез_разработчика_(2022) | Ликбез разработчика]] || Машинное обучение и высоконагруженные системы|| 1 year&lt;br /&gt;
|-&lt;br /&gt;
| [[RecSys_2022_2023 | Рекомендательные системы]] || ФТИАД || 2 year&lt;br /&gt;
|-&lt;br /&gt;
| [[Linear_Algebra_for_Data_Science_(2022) | Linear Algebra for Data Science]] || Data Science || 1 year&lt;br /&gt;
|-&lt;br /&gt;
| [[Ordered_Sets_in_Data_Analysis_(2022) | Ordered Sets in Data Analysis]] || Data Science || 1 year&lt;br /&gt;
|-&lt;br /&gt;
| [[ NIS-TCS-22-23 | НИС Теоретическая информатика ]] || Науки о данных, специализация ТИ || &lt;br /&gt;
|-&lt;br /&gt;
| [[Mathematical Foundations of Probability theory | Mathematical foundations of probability theory]] || Math of Machine Learning || 1 year &lt;br /&gt;
|-&lt;br /&gt;
| [[Markov Chains | Markov Chains]] || Math of Machine Learning || 1 year &lt;br /&gt;
|-&lt;br /&gt;
| [[Reinforcement_learning_2022_2023 | Математические основы обучения с подкреплением ]] || Math of Machine Learning || 2 year&lt;br /&gt;
|-&lt;br /&gt;
| [[Theoretical computer science spring 2023 | Theoretical computer science spring 2023]] || PhD || 1 year&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Курсы других факультетов ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Дисциплина !! Курс !! Период&lt;br /&gt;
|-&lt;br /&gt;
| [[econ_probability_2022-23|Теория вероятностей и математическая статистика]] || фэн, 2 курс || 1-4 модуль&lt;br /&gt;
|-&lt;br /&gt;
| [[econ_metrics_2022-23|Эконометрика ип 2022-23]] || фэн, 3 курс || 1-4 модуль&lt;br /&gt;
|-&lt;br /&gt;
| [[econ_dynamic_opt_2022-23|Динамическая оптимизация в экономике и финансах]] || фэн, 3-4 курс || 1-2 модуль&lt;br /&gt;
|-&lt;br /&gt;
| [[icef-dse-2022-23|Data Science for Economics 2022-23]] ||icef, 3-4 year || 1-2 module&lt;br /&gt;
|-&lt;br /&gt;
| [[Лицей ВШЭ. Практикум по программированию 10 класс 2022-23 | Лицей ВШЭ. Практикум по программированию 10 класс]] || Лицей ВШЭ || 10 класс&lt;br /&gt;
|-&lt;br /&gt;
| [[icef-scalc-2022-fall|Stochastic Calculus Fall 2022]] ||icef, master 1 year || 2 module&lt;br /&gt;
|-&lt;br /&gt;
| [[econ_metrics_smfe_2022-23|Эконометрика (продвинутый уровень) 2022-23]] || фэн, магистратура, 1 курс || 3-4 модуль&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Архив до 2021/22 учебного года включительно =&lt;br /&gt;
[[Wiki ФКН/Архив]]&lt;/div&gt;</summary>
		<author><name>Kkarpea</name></author>
	</entry>
</feed>