Песочница · воркшоп 19 сентября 2026

Из чего состоит твой проект

Разбираемся с архитектурой: что происходит в браузере, когда нужен бэкенд и как разложить код, чтобы с ним было удобно работать.

Ты уже можешь собрать первую HTML-страницу. Следующий шаг — понять, как устроен проект целиком: где живёт его логика, где хранятся данные и что придётся менять, когда появится новый контент.

Это конспект встречи с видео-вставками от 19 сентября.

01 / ЗАМЫСЕЛ

Сначала — что должно происходить

Для нашей работы удобно смотреть на архитектуру с трёх сторон. Первая — замысел: что делает проект и какой путь проходит участник. Вторая — техническая: что выполняется в браузере, а что требует серверной части. Третья — организация кода: какие файлы будут в проекте и за что каждый отвечает.

Замысел

Экраны, действия, состояния и контент. Что увидит участник? Что произойдёт после нажатия?

Фронт и бэкенд

Где выполняется логика и кому должны быть доступны данные?

Файлы

Где лежат разметка, стили, скрипты и материалы? Как их обновлять?

02 / ГДЕ ЧТО РАБОТАЕТ

Фронт — в браузере. Бэкенд — на серверной стороне

Фронтенд

Страница, текст, кнопки, анимация и поведение интерфейса. Он может проверять ответ, считать баллы, выбирать случайную фразу и показывать обратную связь.

Бэкенд

Серверная логика: принимает запросы, проверяет права доступа, обрабатывает и сохраняет данные, возвращает результат. Для хранения он может обращаться к базе данных.

ПРИМЕР · СОХРАНЯЕМ ПРОГРЕСС

Ты завершила лонгрид — прогресс появился на главной

Нажимаешь «Завершить лонгрид». Страница отправляет результат на сервер. Бэкенд сохраняет его, а главная страница запрашивает обновлённые данные и показывает твой прогресс.

ФРОНТ · БРАУЗЕРСтраница курсаКнопка «Завершить»
и твой прогресс
Отправить результат Получить прогресс
БЭКЕНД · СЕРВЕРОбработать запросПроверить доступ,
сохранить или вернуть результат
↕ База данных
Здесь хранится прогресс

Кнопку и шкалу прогресса ты видишь в браузере. Серверная часть работает за кулисами.

Так же можно устроить общую доску рефлексии: один участник оставляет стикер, а следующие видят его и добавляют свои. Или статистику ответов: после выбора участник узнаёт, сколько людей выбрали тот же вариант.

А фронт умеет запоминать?

Да. В браузере есть небольшое хранилище — localStorage. Например, сайт может запомнить, на каком шаге ты остановилась, и при следующем открытии продолжить с этого места.

Но эта «память» остаётся в том браузере и на том устройстве, где ты проходила курс. На другом компьютере прогресс сам не появится. А если очистить данные сайта, он может пропасть.

Вопрос для выбора: достаточно ли, чтобы результат был доступен здесь, в этом браузере, или он нужен на другом устройстве, преподавателю и другим участникам?

03 / ТРИ ТЕХНОЛОГИИ

Что есть, как выглядит и как работает

HTML

Структура: заголовок, абзац, кнопка, поле ввода.

CSS

Оформление: цвета, шрифты, отступы, расположение и адаптация к экрану.

JavaScript

Поведение: реакция на нажатие, проверка ответа, подсчёт, обновление интерфейса.

Разберём карточку по слоям

Нажми на три шага: сначала увидишь структуру, затем добавишь оформление, а в конце — действие по кнопке.

Твой первый проект

Начни с одной идеи и одного работающего действия.

HTML — что есть

Собираем элементы

div объединяет всё в карточку. Внутри — заголовок, текст и кнопка. В коде ниже видно, какой тег отвечает за каждый элемент.

<div class="card">
  <h3>Твой первый проект</h3>
  <p>Начни с одной идеи…</p>
  <button>Открыть подсказку</button>
</div>

Это учебный каркас. Пунктир помогает увидеть границы элементов.

Сейчас виден HTML-каркас. Добавь CSS, чтобы увидеть оформление.

Начни с малого

Одна карточка, одна кнопка, одно действие. Когда всё заработает, добавляй следующий шаг.

В «Песочнице» мы сначала собираем прототип и проверяем механику, затем наполняем его контентом и дорабатываем оформление. Так проще увидеть, работает ли сама идея, прежде чем тратить силы на её внешний вид.

04 / ОРГАНИЗАЦИЯ КОДА

Один файл или папочная структура?

Это способ организовать проект. Количество файлов не определяет, есть ли в нём бэкенд: и одна HTML-страница, и большая папка с фронтендом могут обращаться к серверу.

Всё в одном файле

Разметка, стили и скрипт находятся рядом. Удобно для небольшого лонгрида, теста, мини-игры или прототипа, который нужно перенести одним фрагментом.

index.html
├─ HTML: содержание
├─ <style>: оформление
└─ <script>: поведение

По мере роста становится сложнее искать нужные места и править разные части независимо.

Несколько файлов

Каждая часть лежит отдельно. Удобно для большого проекта, сложной механики или серии курсов с общим оформлением.

project/
├─ index.html
├─ style.css
├─ script.js
└─ assets/

Нужно следить за путями и переносить все необходимые файлы вместе.

Для Тильды можно подготовить HTML-фрагмент со стилями и скриптом и вставить его в блок T123 «HTML-код». Если проект размещён отдельно, его можно встроить через iframe, когда площадка разрешает такое встраивание. Ещё один вариант — подготовить сборку или подключить внешние файлы.

А если нужен SCORM?

Оба способа организации можно использовать для курса в LMS. Но упаковка включает описание ресурсов в манифесте, а передача баллов и завершения требует настройки обмена с LMS через SCORM API. Одного добавленного манифеста для этих функций недостаточно.

Редактор помогает видеть структуру

Блокнота хватает, чтобы сохранить первый файл. В редакторе кода удобнее открыть всю папку, видеть подсветку синтаксиса и переключаться между разметкой, стилями и логикой. В демонстрации используется VS Code: меняем текст, сохраняем файл и смотрим результат в браузере.

Видео 1 · Папочная структура и где работать с кодом

Смотрим, как организовать файлы проекта, открыть их в редакторе и проверить изменения в браузере.

05 / ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ

Механика одна — контент меняется

Представь серию курсов: расположение блоков, кнопки и проверка ответов одинаковые, а темы, вопросы и примеры разные. Можно вынести данные в отдельный файл и обновлять его, сохраняя общую механику.

В воркшопе это показано на мини-проекте «Фраза дня». Страница загружает список фраз, а кнопка выводит случайную. Чтобы пополнить список, меняем файл с данными.

quotes.json
[
  { "id": 1, "text": "Начни с маленького шага." },
  { "id": 2, "text": "Путь осилит идущий." }
]

JSON — текстовый формат структурированных данных. Такой файл может содержать вопросы, ответы, подписи и настройки. Сам по себе он не является полноценной базой данных: в этом примере это подготовленный список, который читает страница.

Видео 2 · JSON: собираем «Фразу дня» и обновляем контент

Выносим фразы в отдельный файл, подключаем его к странице, запускаем проект и добавляем новую фразу.

Почему иногда недостаточно двойного клика по HTML?

Когда скрипт загружает соседний JSON через fetch, открытие страницы как локального файла может упереться в ограничения браузера. Для такого примера запускаем локальный HTTP-сервер и открываем страницу по адресу http://localhost:…. В видео используется Go Live. Этот сервер помогает тестировать проект на компьютере; он сам по себе не публикует курс в интернете.

При добавлении фразы важно сохранить структуру JSON: между элементами нужна запятая, после последнего элемента её нет. Имена полей должны совпадать с теми, которые ожидает скрипт.

Что поручить ИИ

Можно попросить ИИ структурировать контент, затем создать страницу, которая его читает. Укажи имена файлов, поля данных, ожидаемое поведение и способ запуска. Например:

У меня есть quotes.json — массив объектов с полями id и text. Создай index.html, style.css и script.js. Страница должна загрузить список фраз и по нажатию кнопки «Дать знак» показывать случайную фразу. Предусмотри состояния загрузки, пустого списка и ошибки. Объясни, как запустить проект через локальный HTTP-сервер.

Работать можно в чате с ИИ, редакторе кода с ИИ или генераторе приложений. При выборе учитывай, в каком виде нужен результат: один фрагмент для Тильды или проект из нескольких файлов.

06 / ПРИМЕНИ К СВОЕЙ ИДЕЕ

Опиши архитектуру в пяти строках

  1. Мой проект делает… Какую задачу решает участник?
  2. В браузере происходит… Какие действия, проверки и расчёты нужны?
  3. Сохранять нужно… Какие данные, для кого и на каких устройствах?
  4. Код будет организован… Один файл или несколько — и почему?
  5. Контент будет обновляться… Внутри страницы или в отдельном файле?

Например: «Делаю тренажёр на пять вопросов. Ответы проверяются в браузере, результат показывается сразу. Общую статистику не собираю. Для первой версии достаточно одного файла для Тильды. Если появится серия тренажёров, вынесу вопросы в отдельный источник данных».

Проверь, что разобралась

Дополнительные вопросы для самопроверки.

Кнопка считает баллы. Значит, у проекта есть бэкенд?

Нет. JavaScript может посчитать баллы прямо в браузере. Бэкенд понадобится, если серверная часть должна обрабатывать или хранить результат — например, для отчёта преподавателю.

В проекте четыре файла. Значит, это уже бэкенд?

Нет. HTML, CSS, JavaScript и JSON могут обслуживать полностью клиентский проект. Важно, где выполняется код и как организована работа с данными.

Участник должен продолжить курс с другого устройства. Хватит localStorage?

Сам по себе localStorage не синхронизируется между устройствами. Нужен механизм общего хранения и идентификации участника — например, возможности учебной платформы или бэкенд.

Нужно ли заранее делать сложную структуру «на вырост»?

Начни с требований первой рабочей версии. Отдельные файлы полезны, когда они упрощают конкретные изменения: обновление контента, повторное использование стилей или работу с большой логикой.

Теперь у тебя есть схема будущего проекта

Что делает участник → что выполняет браузер → какие данные нужны → где они хранятся → как организованы файлы. С этой схемой проще и писать код, и ставить задачу ИИ.

Открыть доску воркшопа ↗