M0: Старт
Первая веха — настройка окружения, доступов и инфраструктуры для работы. Кода на M0 почти нет: всё время уходит на инструменты. Но без аккуратного M0 каждая следующая веха будет буксовать.
Срок
Недели 1–2 Фазы 1 (~20–30 часов суммарно).
Цели
- Настроить рабочее окружение: IDE, .NET SDK, PostgreSQL, Git.
- Получить и проверить доступы: стенд, Swagger, wiki.
- Создать изолированный репозиторий проекта защиты.
- Освоить git-базу: clone, commit, push, branch.
- Познакомиться со стендом продукта как пользователь.
- Завести первый баг-репорт (запуск QA-трека).
Целевые навыки
| Навык | Как осваивается |
|---|---|
| Командная строка | Установка инструментов, проверка версий |
| IDE (Rider или Visual Studio) | Создание первого проекта |
| Git: clone/commit/push/branch | Работа с репозиторием проекта защиты |
| Чтение Swagger / OpenAPI | Знакомство с API боевого стенда |
| Форма баг-репорта | Первый заведённый баг |
Задание
1. Установить рабочее окружение
Установить и проверить работоспособность:
- .NET 8 SDK (именно SDK, не Runtime). Скачать: dotnet.microsoft.com/download/dotnet/8.0.
- IDE на выбор: JetBrains Rider (бесплатная лицензия для студентов — jetbrains.com/community/education) или Visual Studio Community 2022 (visualstudio.microsoft.com). При установке VS выбрать workload «ASP.NET and web development».
- PostgreSQL. Скачать: postgresql.org/download. Порт по умолчанию 5432. Пароль пользователя
postgresсохранить в надёжное место. Дополнительно — клиент БД: DBeaver или pgAdmin. - Git. Скачать: git-scm.com/downloads.
Критерий готовности: каждая команда (dotnet --version, git --version, подключение к PostgreSQL через клиент) отрабатывает без ошибок.
2. Получить доступы
У наставника запросить:
- Доступ к стенду продукта и URL Swagger/OpenAPI.
- Invite в
geotimlab.wikiс правами write вvault/bugs/,vault/feedback/,vault/reports/.
GitHub-аккаунт для своего репозитория — зарегистрировать самостоятельно (если ещё нет).
3. Создать репозиторий проекта защиты
Завести изолированный git-репозиторий для проекта защиты (geolab-defense). Самостоятельно принять решения по:
- размещению (GitHub / GitLab / другой хостинг);
- видимости (public / private);
- содержимому начального коммита (
.gitignore,README.md).
В README кратко описать назначение проекта: «Проект защиты Фазы 1 — изолированный мини-проект в предметной области инженерной геологии на стеке DeepGeo».
Клонировать репозиторий локально.
4. Создать скелет решения .NET
В репозитории создать пустое решение (sln) со структурой проектов под будущие вехи. На M0 достаточно двух проектов:
- проект для доменного слоя (будет наполняться агрегатами на M1);
- проект для unit-тестов (будет наполняться тестами на M1).
Как именно создать структуру (имена проектов, команды dotnet) — самостоятельное решение. Подсказка: посмотреть, как устроено решение DeepGeo (на уровне концепции — детальную структуру DeepGeo недоступна без доступа к коду, но общие принципы Clean Architecture описаны в материалах ниже).
Клонируемые критерии готовности:
- решение открывается в IDE;
dotnet buildзавершается без ошибок;dotnet testна пустом проекте тестов запускается (и сообщает, что тестов нет).
Закоммитить скелет в репозиторий с осмысленным сообщением (например: «M0: скелет решения — домен и unit-тесты»).
5. Познакомиться со стендом
После получения доступов:
- Зайти на стенд под выданной учёткой, изучить интерфейс как пользователь.
- Открыть Swagger. Найти эндпоинты, связанные с
Borehole,Sample. Вызвать GET-эндпоинт, изучить структуру JSON-ответа — это образец данных для проекта защиты. - Прочитать
docs/в wiki — разделы про лабораторную часть. - Сравнить: что видно в UI ↔ что возвращает API ↔ что описано в
docs/. Расхождения фиксировать.
6. Завести первый баг-репорт
По итогам знакомства со стендом завести первый баг-репорт в vault/bugs/ по форме из QA-трека. Это может быть мелочь — опечатка, несоответствие документации. Главное: пройти весь цикл от наблюдения до опубликованного репорта.
Контрольная точка
На второй неделе — короткая встреча с наставником:
- показать, что окружение работает (запустить IDE, прогнать
dotnet build); - показать скелет решения в репозитории;
- показать Swagger-ответ по
BoreholeилиSampleи сказать, какие поля там видны; - показать первый баг-репорт.
Чек-лист завершения M0
-
dotnet --versionвыводит 8.0.x - Rider или Visual Studio открываются без ошибок
- PostgreSQL запущен, пароль сохранён
- Git настроен (
user.name,user.email) - Репозиторий
geolab-defenseсоздан и клонирован - Скелет решения компилируется (
dotnet build) - Доступы к стенду и Swagger получены и проверены
- Доступ к
geotimlab.wikiполучен, заведён первый баг-репорт
Материалы по темам
Что изучить под задачи M0. Подход: материалы читаются по мере возникновения вопросов при выполнении задания, а не «подряд».
.NET и командная строка
Git
- Pro Git (RU) — главы 1 и 2 обязательны.
- Git How To (RU) — интерактивный курс, практика в браузере.
PostgreSQL
Чтение Swagger / OpenAPI
Структура .NET-решения
- metanit.com — Архитектура приложений — концептуально про слои.
- Clean Architecture — введение (RU, Хабр) — общие принципы.
Прогресс
[■□□□□] M0 из 5 вех — старт.
- ⬅️ Проект защиты — что строится во всех вехах
- ➡️ M1 — парсер — следующая веха, основная по трудоёмкости
- 🐛 QA-трек — параллельный поток работы с багами
- ✅ Чек-листы — критерии прохождения вех
📚 Полный список ресурсов — в разделе Ресурсы.