Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.
НАВЧАЛЬНИЙ ПРИКЛАД
Форма, яка уточнює завдання
Виберіть сайт, рекламу або інтеграцію — форма покаже потрібні уточнення. Заповнені поля перевіряються та збираються в JSON просто на сторінці.
Це ширина демонстраційного полотна. Вона не замінює перевірку справжнього пристрою.
DEMO / form-rules
Форма, яка уточнює завдання
Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.
Відкрити робочу демонстрацію
Форма, яка уточнює завдання
Уточнює відомості під вибрану послугу, не перевантажуючи людину запитаннями інших напрямів.
Переглянути робочий код
function buildConditionalRequest(type, values) {
if (!['site', 'ads', 'integration'].includes(type)) throw new Error('RULES_TYPE');
if (values === null || typeof values !== 'object' || Array.isArray(values) ||
Object.getPrototypeOf(values) !== Object.prototype) throw new Error('RULES_VALUES');
const company = values.company === undefined ? '' : values.company;
if (typeof company !== 'string' || company.trim().length > 100) throw new Error('RULES_COMPANY');
if (typeof values.task !== 'string' || values.task.trim().length < 10 ||
values.task.trim().length > 1500) throw new Error('RULES_TASK');
let details;
if (type === 'site') {
if (!['string', 'number'].includes(typeof values.pages)) throw new Error('RULES_PAGES');
const pages = Number(values.pages);
if (!Number.isInteger(pages) || pages < 1 || pages > 100) throw new Error('RULES_PAGES');
details = {pages};
} else if (type === 'ads') {
if (typeof values.country !== 'string' || !values.country.trim() ||
values.country.trim().length > 100) throw new Error('RULES_COUNTRY');
details = {country: values.country.trim()};
} else {
if (typeof values.source !== 'string' || !values.source.trim() ||
values.source.trim().length > 100) throw new Error('RULES_SOURCE');
if (typeof values.target !== 'string' || !values.target.trim() ||
values.target.trim().length > 100) throw new Error('RULES_TARGET');
details = {source: values.source.trim(), target: values.target.trim()};
}
return {type, company: company.trim(), task: values.task.trim(), details};
}Локальна демонстрація: сервер, збереження та справжнє надсилання не підключені.
Три типи запиту з відповідними уточнювальними полями.
Переключити всі типи, перевірити обов’язкові уточнення, межі кількості сторінок і довжину опису, потім звірити поля результату.
Завдання в цьому сценарії
Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.
Як побудовано рішення
- Залишаємо загальний опис завдання обов’язковим, а назву компанії — необов’язковою. Тип запиту визначає, які уточнювальні поля показуються.
- Для сайту потрібне ціле число сторінок від однієї до ста, для реклами обов’язково вказати країну, для інтеграції — джерело та отримувача. Опис завдання має містити від десяти до півтори тисячі символів.
- Перевіряємо заповнення й збираємо JSON із загальними відомостями та полями вибраного типу. Приховані уточнення інших типів до результату не включаємо; мережа й канал доставки не підключені.
Проміжні матеріали
- Початкове завдання та обмеження → Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.
- Склад рішення → Три типи запиту з відповідними уточнювальними полями.
- Перевірка перед запуском → Переключити всі типи, перевірити обов’язкові уточнення, межі кількості сторінок і довжину опису, потім звірити поля результату.
Що перевірити перед запуском
- Переключити всі типи, перевірити обов’язкові уточнення, межі кількості сторінок і довжину опису, потім звірити поля результату.
- Для справжньої форми погодити склад заявки й отримувача; окремо реалізувати серверну перевірку, збереження та доставку.
Що входить у приклад
- Три типи запиту з відповідними уточнювальними полями.
- Перевірка обов’язкових значень, опису завдання й кількості сторінок.
- Підготовлений JSON для перегляду без справжнього надсилання.
Технічний паспорт
DevPilot 1.5.2 · Охоплення перевірок, вихідний код і дата свідчень
- Статус
- DEMO · Вигадана компанія й навчальні дані
- Матеріали
- Власні HTML/CSS/SVG, вихідний код і локальні алгоритми. Фотографії клієнтів не використовуються.
- Обробка
- Демонстрація виконується в браузері. Відкриття прикладу не створює заявку чи оплачений проєкт.
- Докази
- Вміст і локальні перевірки відокремлені від справжнього браузерного, хостингового та комерційного приймання.