Статический учебный сайт по .NET: 176 тем в 13 разделах — от основ C# до system design. У каждой темы отдельная страница с подробным разбором, диаграммами, примерами кода на C#, типичными ошибками и вопросами «на засыпку», которые задают на собеседованиях.
| Уровень | Тем | О чём |
|---|---|---|
| Junior | 63 | Платформа .NET, типы, строки, ООП, исключения, коллекции, LINQ, HTTP/REST, SQL, основы EF Core, Git |
| Middle | 76 | async/await, GC, DI, EF Core, индексы и транзакции, архитектурные паттерны, очереди, тестирование, Docker, наблюдаемость, безопасность |
| Senior | 37 | Внутренности runtime, производительность, распределённые системы, system design, надёжность, архитектурные решения, лидерство |
Откройте index.html в браузере — сайт работает без сервера (в том числе с file://) и без внешних зависимостей.
- Отдельная страница на каждый вопрос со структурой: «Коротко» (ответ на 30 секунд) → подробный разбор → подводные камни → вопросы на засыпку → итог.
- Диаграммы Mermaid, заранее отрисованные в SVG (светлая и тёмная темы), — страницы не грузят Mermaid в браузере.
- Поиск по всем вопросам и тегам (клавиша
/). - Треки по уровням (
levels/junior.html,middle.html,senior.html): все темы уровня по разделам, с прогрессом. - Фильтр по уровню на странице каждого раздела.
- Прогресс изучения: отметки «изучено» по темам, разделам и уровням (хранятся в
localStorageбраузера). - Тренажёр-карточки (
trainer.html): случайный вопрос выбранных уровней и разделов → вспомнить ответ → проверить себя. - Светлая и тёмная темы, оглавление страницы, навигация «предыдущий / следующий», адаптивная вёрстка для телефона.
| № | Раздел | Тем | Junior | Middle | Senior |
|---|---|---|---|---|---|
| 1 | Основы C# и .NET | 17 | 17 | — | — |
| 2 | C# и .NET углублённо | 25 | 7 | 11 | 7 |
| 3 | ASP.NET Core | 19 | 9 | 10 | — |
| 4 | Entity Framework Core | 14 | 6 | 5 | 3 |
| 5 | Базы данных и SQL | 17 | 5 | 7 | 5 |
| 6 | Архитектура и паттерны | 17 | 3 | 11 | 3 |
| 7 | System Design и распределённые системы | 12 | — | — | 12 |
| 8 | Тестирование | 10 | 5 | 4 | 1 |
| 9 | Очереди и асинхронная обработка | 9 | 4 | 5 | — |
| 10 | Производительность и диагностика | 10 | — | 7 | 3 |
| 11 | DevOps и инфраструктура | 10 | 2 | 8 | — |
| 12 | Безопасность | 8 | 1 | 7 | — |
| 13 | Работа в команде и процессы | 8 | 4 | 1 | 3 |
content/ исходники в Markdown (редактировать здесь)
01-csharp-basics/
_category.md название, иконка, цвет и описание раздела
01-...md вопрос: front matter + текст
assets/ стили, скрипты, индекс поиска
scripts/build.mjs генератор сайта
scripts/check.mjs проверка собранных страниц в браузере
index.html, trainer.html, topics/, levels/ собранный сайт (генерируется)
Нужны Node.js 20+ и Chromium для Playwright (используется для отрисовки диаграмм в SVG).
npm install
npx playwright install chromium # если браузер ещё не установлен
npm run build # content/ → index.html, trainer.html, topics/, levels/
npm run check # ошибки в консоли и горизонтальная прокрутка на 390px и 1280px
npm run serve # локальный сервер на http://localhost:8080 (необязательно)Отрисованные диаграммы кэшируются в .cache/mermaid, поэтому повторная сборка занимает секунды. Сборка завершается с ошибкой при синтаксической ошибке в диаграмме или битой внутренней ссылке и предупреждает о слишком широких диаграммах.
Создайте файл content/<раздел>/NN-slug.md (номер задаёт порядок, slug — адрес страницы):
---
title: "Чем Task отличается от ValueTask?"
level: middle # junior | middle | senior
tags: [async, task, valuetask]
---
:::tldr
- Краткий ответ в 3–5 пунктах (обязательный блок).
:::
## Подробный разбор
```mermaid Подпись под диаграммой
flowchart LR
A["Запрос"] --> B["Ответ"]:::good
```
```csharp Подпись к примеру кода
var x = await GetAsync();
```
:::warning Подводный камень
Текст предупреждения.
:::
## Вопросы на засыпку
:::qa Вопрос интервьюера?
Скрытый ответ, раскрывается по клику.
:::
## Итог
Резюме в одном абзаце.Доступные блоки: :::tldr, :::tip, :::note, :::warning, :::example, :::qa, :::compare. В диаграммах flowchart доступны классы оформления good, bad, warn, accent, muted.