# DAS_2024_1

ПРАВИЛА ИГРЫ при сдаче лабораторных работ по предмету "Распределенные вычисления и приложения".

Всем Доброго времени суток! Настоятельно прошу прочитать этот файл от начала и до конца. 

**Задание на л/р**

0. Требования к языку программирования: **ЛЮБОЙ**.
Для выполнения лабораторных работ можно использовать любую IDE или текстовый редактор.

1. Список заданий на л/р, подготовленный совместно с [Владиславом Моисеевым](https://github.com/vladdy-moses):

| № | л/р |
|---|-----|
| 1 | [Знакомство с docker и docker-compose](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_1.md) |
| 2 | [Разработка простейшего распределённого приложения](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_2.md) |
| 3 | [REST API, Gateway и синхронный обмен между микросервисами](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_3.md) |
| 4 | [Работа с брокером сообщений](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_4.md) |
| 5 | [Параллельное умножение матриц](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_5.md) |
| 6 | [Параллельный поиск значения детерминанта матрицы](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_6.md) |
| 7 | [Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_7.md) |
| 8 | [Про устройство распределенных систем](http://student.git.athene.tech/Alexey/DAS_2023_1/src/branch/main/labs/lab_8.md) |

**Воркфлоу по сдаче лабораторных работ**

0. Клонируем себе репозиторий на компьютер

> git clone https://git.is.ulstu.ru/Alexey/DAS_2024_1.git

1. Для выполнения очередной лабораторной работы необходимо завести отдельную ветку (перед этим необходимо выполнить команду git checkout master). Указанный формат наименования ветки <фамилия_имя_lab_номер_лабораторной> ОБЯЗАТЕЛЕН, в противном случае лабораторная работа не проверяется!

> git checkout -b "zhelepov_alex_lab_1"

При этом Вы окажетесь в своей ветке, в которой Вам и предстоит выполнять лабораторную работу.

2. В ветке создаём папку в аналогичном формате <фамилия_имя_lab_номер_лабораторной>, формат также ОБЯЗАТЕЛЕН, в противном случае лабораторная работа не проверяется!

> mkdir zhelepov_alex_lab_1

3. Весь код лабораторной работы и отчет должны находится внутри этой папки! То есть файловая структура репозитория должна иметь такой вид

> ivanov_ivan_lab_1 zhelepov_alex_lab_1 README.md

4. Отчет к лабораторной работе должен быть оформлен в виде файла readme.md, в котором Вы сможете дать краткое описание того, что делает Ваша программа. Очень хорошо (большой плюс при сдаче), если Вы опишите следующие пункты:
* как запустить лабораторную работу
* какие технологии использовали
* что она делает
* тесты (если это приложение, разработанное на выбранном вами ЯВУ)

Небольшой [гайд](https://guides.github.com/features/mastering-markdown/) по синтаксису для оформления отчёта.

Пожалуйста запишите работоспособность Вашей л/р в виде видео, ссылку на которое прикрепите в README-файле, отчете (разместить видео можно на платформе VK Видео). **Видео - это обязательный пункт**.

P.S. я знаю про хак "хочу скопировать у товарища этот волшебный readme и ничего не делать", но пожалуйста не делайте так (я буду обязательно проверять это).

5. Как только Вы закончили работу над лабораторной работой, то находясь в своей ветке (убедитесь в этом пожалуйста, использую команду git branch - ваша текущая ветка будет подсвечена), вы должны закоммитить и запушить свои изменения в репозиторий, другими словами сохранить их в репозиторий.

> git commit -m "zhelepov_alex_lab_1 is ready"
> git push origin

P.S. я знаю про хак "скопируй у товарища и закоммить - все равно он (я) смотреть не будет" - не сработает - давайте быть честными и делать все самостоятельно. А во-вторых, на реальной работе так не прокатит - скорее всего Вас просто уволят.

6. После этого Вы должны перейти в наш git и создать merge request, назначив его на меня. Дополнительно лучше маякнуть меня в нашем [телеграм-чате](https://t.me/+Ytp7gjHKhq9iMGQy). Я проведу ревью и отпишу замечания, которые нужно будет исправить. Если все хорошо, то вмержу ваш pull-request в мастер-ветку. Данное состояние говорит о том, что ваша л/р принята.

7. **Важный момент**: Устно я не принимаю лабораторные работы (подойти к компьютеру, посмотреть код, поставить оценку), только через репозиторий и после успешного code review ревью кода вашей л/р и ее результатов в виде отчета. Это делается для того, чтобы вы привыкали к воркфлоу, который применяется практически всеми IT-компаниями, где между разработчиками в основном общение идет через "текст". Что касается лабораторных работ в расписании - они используются в качестве консультаций (если они нужны), а сдача и проверка л/р идет только через репозиторий (то есть все замечания вы получаете на code review). Проверяю я обычно лабораторную в течение 1-3 дней после создания pull-request-а (всегда можно маякнуть меня в нашем telegram-чате).

**Чек-лист для старост групп**

0. Убедиться, что все из списка зашли в [телеграм-чат](https://t.me/+Ytp7gjHKhq9iMGQy), где мы будем общаться + я буду публиковать различные объявления. ПОЖАЛУЙСТА, ОБРАТИТЕ НА ЭТО ВНИМАНИЕ и доведите до всех! В других каналах связя меня сложно выцепить или я могу пропустить сообщение.

1. Убедиться, что все зарегистрировались на университетском [git](http://student.git.athene.tech/) и добавились для работы с нашим репозиторием. А добавляться в этот [репозиторий](http://student.git.athene.tech/Alexey/DAS_2024_1).


**Полезные ссылки:**

0. Отличный тьюториал по гиту (рекомендую всем его пройти), вот [тут](https://learngitbranching.js.org/)

1. Гайд по markdown [тут](https://guides.github.com/features/mastering-markdown/)

БОЛЬШОЕ СПАСИБО, что дочитали этот README до конца! И Удачи Вам в сдаче л/р и не только!