Тема 8 · урок 1 з 2 · передостанній урок модуля · 120 хвилин
Дванадцять уроків ти складав продукт по частинах. Бриф, дані ринку,
економіка, айдентика. Потім пітч, база знань, беклог, форма відгуків
і автозвіт. Кожна з цих частин лежить у ~/www/ окремим файлом.
Сьогодні вони вперше стають одним лендингом. Це та сторінка, яку побачить людина, що прийшла за адресою твого продукту. Про сам продукт вона не знає нічого.
На першому уроці ти завів index.html порожнім каркасом
із трьома секціями. Сьогодні він наповнюється. Не переписується з нуля,
а добудовується.
Різниця тут не косметична. За сторінкою, яку збирали 13 уроків, стоять твої власні дані. За сторінкою, зверстаною за вечір, — нічого.
team.html.
Друга — IT-професії: хто робить продукт і що з цього ти вже робив сам.
Сходяться вони в одній думці. Усе, що ти бачиш на лендингу, — це чиясь
робота. І кожна така робота має назву ролі.index.html із семи секцій на спільному
brand.css, без жодного мертвого посилання;market.csv, tasks.json і звіту, а не
вписані руками.Слова hero, соціальний доказ і fetch поки нічого
не означають — розберемо кожне тоді, коли воно знадобиться.
| Етап | Хв | Що робимо |
|---|---|---|
| Мапа IT-ролей | 20 | вісім ролей через «понеділок, 9:40»: інструменти, зона відповідальності |
| Що з цього ти вже робив | 10 | дванадцять уроків → назви ролей; картка ролей |
| AI, автоматизація і вибір | 15 | що ІІ забирає, що підсилює; що росте, а що змінюється |
Практика: team.html | 20 | 3–5 карток ролей, ≥ 3 навички, чесна позначка своєї |
| Анатомія лендинга | 15 | перші пʼять секунд, заголовок-пояснення, докази, заклик |
Практика: каркас index.html | 30 | сім секцій, спільний brand.css, навігація без битих посилань |
| Практика: живі дані | 15 | fetch у секції numbers, roadmap, feedback |
| Автоперевірка й план Demo Day | 5 | check11 8, регламент виступу на уроці 14 |
assets/logo.svg, assets/og.png
(1200×630, до 500 КБ) і CSS.
Критерій no_media діє й сьогодні. У ~/www/
і ~/upload/ не має бути
.mp4 .mov .avi .mkv .webm .mp3 .wav .flac. Файлів понад 2 МБ
теж.Не «займається розробкою програмного забезпечення», а що людина реально відкриває на екрані в перші пів години робочого дня
Означення професій нічого не пояснюють: у них усі слова однакові. Різницю видно тільки в роботі. Що людина відкриває, кого питає, що віддає далі. І за що з неї спитають, коли зламається.
| Роль | Понеділок, 9:40 | Інструменти | За що спитають |
|---|---|---|---|
| Продакт-менеджер | читає відгуки за вихідні, викидає з плану тижня дві задачі з пʼяти й пояснює команді, чому саме ці | беклог, аналітика, розмови з користувачами | що робимо і навіщо саме це |
| Аналітик | перевіряє, чому вчорашня конверсія впала вдвічі: спершу дивиться, чи не зламався збір даних | SQL, таблиці, дашборди | чи можна вірити числу, на яке спираються рішення |
| Дизайнер | малює стан «нічого не знайдено» для пошуку — той екран, про який усі забули | Figma, дизайн-система, токени | чи людина зрозуміє екран без пояснень |
| Фронтенд-розробник | переносить макет у код і виявляє, що довге імʼя користувача ламає шапку на 360 px | HTML, CSS, JavaScript, git | що бачить і чим клацає користувач |
| Бекенд-розробник | додає поле в API так, щоб старий застосунок на телефонах не перестав працювати | мова сервера, база даних, API | де дані живуть і чи не загубляться |
| QA (тестувальник) | проганяє нову версію по списку перевірок і заводить дефект із кроками відтворення | чек-листи, DevTools, автотести | щоб зламане не доїхало до користувача |
| DevOps | дивиться, чому нічний деплой упав, читає лог, відкочує версію за три хвилини | Linux, cron, CI, моніторинг | щоб продукт був доступний і оновлювався без болю |
| Підтримка | відповідає на «у мене нічого не працює», витягує з людини версію браузера й крок, на якому все стало | звернення, база знань, скриншоти | щоб користувач не лишився сам зі своєю проблемою |
У таблиці стоять слова, яких ти ще не зустрічав. Розберемо їх по черзі. Майже кожне виявиться тим, що ти вже робив руками, тільки названим інакше.
База даних — програма, яка зберігає рядки й швидко знаходить
потрібні. Твій ~/data/responses.csv — та сама ідея, тільки
в одному файлі й без пошуку. Коли рядків стає мільйон, файлом уже
не обійтися.
Питання до бази ставлять не мишкою, а текстом: «покажи всі відгуки
з оцінкою нижче 3 за минулий тиждень». Мова, якою пишуть такі питання,
зветься SQL. Ти робив те саме командою awk по CSV.
Сирі відповіді аналітик нікому не показує. Він робить дашборд —
одну сторінку, де кілька графіків оновлюються самі. Твій
report.html з уроку 12 — це найпростіший дашборд.
А конверсія в його рядку — це частка відвідувачів, які зробили те, чого від них чекали. Зайшло двісті людей, форму заповнили шестеро — конверсія 3%. Наступного дня при тих самих двохстах заповнили троє: конверсія впала вдвічі, і треба шукати чому.
Дизайнер малює екрани не в редакторі на своєму компʼютері, а у Figma. Вона працює прямо в браузері, тому макет можна відкрити вдвох одночасно. Розробник бере з нього точні розміри й кольори, а не міряє на око.
Щоб екрани не розʼїжджалися, кольори, шрифти й відступи записують один
раз в окремий файл. Такий набір спільних домовленостей зветься
дизайн-системою, а одне записане в ній значення — токеном.
Твій brand.css із рядками var(--brand-…) — це вона
і є, у мініатюрі.
API — адреса, за якою по дані приходить не людина, а програма.
Замість сторінки вона забирає голі числа. Твій
~/www/data/feedback-stats.json — найпростіший API, який буває:
одна адреса, два числа.
git памʼятає історію файлів: хто, коли і що змінив. Якщо сьогоднішня правка все зламала, вчорашню версію повертають однією командою. Тека «лендинг_фінал_3» після цього не потрібна.
DevTools — панель, яка відкривається в браузері клавішею
F12. У ній видно розмітку сторінки, помилки в консолі й кожен
запит до сервера. Туди заглядають першими, коли сторінка виглядає не так,
як задумано.
Автотести — програма, яка натискає кнопки замість людини й звіряє результат з очікуваним. Сто перевірок вона проганяє за хвилину. Людина руками — за день, і на пʼятдесятій втрачає увагу.
Запускати ці тести після кожної зміни доручають окремому серверу. Служба, яка це робить, зветься CI. Вона ж збирає нову версію й кладе її на бойовий сервер.
Саме таке викладання нової версії й називають деплоєм. Якщо після деплою все посипалося, DevOps відкочує версію: повертає на сервер попередню, ту, що працювала. Тому це швидко — три хвилини, а не переписування коду.
А моніторинг — служба, яка щохвилини сама відкриває твій сайт і перевіряє, чи він відповідає. Не відповів двічі поспіль — DevOps дістає повідомлення о третій ночі. Саме тому uptime з уроку 1 узагалі є що рахувати.
report.sh, тільки в мініатюрі.
Інженер з безпеки шукає місця, де чужий текст може щось зламати.
Ти вже займався цим, коли гасив формулу з = у CSV.
SRE — сусід DevOps. Він відповідає за доступність числом: це той
самий uptime з уроку 1.Користувач пише в підтримку: «кнопка “надіслати відгук” нічого не робить». У кого на столі ця задача?
У вакансіях поруч зустрічаються «продакт-менеджер» і «проєктний менеджер». У чому головна різниця?
«Професії майбутнього» — незручна назва теми: те, про що йдеться, ти робив руками останні три місяці
Про IT-ролі зазвичай розповідають як про далекий вибір: колись, після школи, треба буде щось обрати. Але робота ролі — це не диплом, а набір дій.
І майже кожну з цих дій ти вже виконував. Масштаб був інший, зарплати й замовника не було. Але сама робота — та сама.
| Урок | Що ти робив | Як це зветься в роботі | Роль |
|---|---|---|---|
| 1 | SSH, права rwx, теки www/ data/ | доступ до середовища й розділення публічного та приватного | DevOps |
| 2 | режим пропонування, коментарі, CHANGELOG.md | рецензування й журнал змін документа | продакт, техпис |
| 3 | чистка market.csv, TRIM, дублікати | підготовка даних перед аналізом | аналітик |
| 4 | зведена, діаграма, маржа, точка беззбитковості | продуктова аналітика й висновок із числом | аналітик, продакт |
| 5 | brand.css, контраст 4,5:1, logo.svg | дизайн-система в коді: токени замість «гарних кольорів» | дизайнер |
| 6 | pitch.html, deck.html, OG-теги | комунікація продукту й превʼю посилання | продакт, маркетинг |
| 7–8 | атомарні нотатки, MOC, генерація kb/index.html | документація і скрипт, що її збирає | техпис, розробник |
| 9–10 | tasks.json, WIP-ліміт, DoD, дорожня карта | беклог і планування роботи | продакт, проєктний менеджер |
| 11 | форма, обробник, валідація, екранування = у CSV | фронтенд, бекенд і трохи безпеки в одному завданні | розробник |
| 12 | report.sh, шаблон, cron, лог запусків | автоматизація за розкладом і діагностика збою | DevOps |
| 11–12 | режим «Зламай конвеєр»: знайти, який вузол упав | локалізація дефекту й опис кроків відтворення | QA |
На співбесіді на літнє стажування питають: «У тебе є досвід роботи з даними?» Ти пройшов уроки 3 і 4. Що відповісти?
Відміть роботи, які тобі справді сподобалося робити протягом модуля. Сторінка покаже, до яких ролей вони ближчі
Це не тест на профорієнтацію. Тут немає прихованої шкали, психології й «твого типу особистості». Механіка проста й уся на видноті. Кожна робота приписана до однієї-двох ролей. Сторінка складає твої галочки й ділить на максимум по кожній ролі. Відсоток означає рівно одне: яка частка робіт цієї ролі тобі сподобалася.
Відсоток = скільки робіт цієї ролі ти відмітив, поділити на всі роботи цієї ролі в переліку. Кожна робота важить 2, якщо вона для ролі головна, і 1, якщо дотична.
Картка показала: «Дизайнер — 83 %, Аналітик — 25 %». Однокласник каже: «Все, тобі в дизайн, аналітика не твоє». Як це прочитати правильно?
Обережно: нижче немає передбачень. Є те, що вже видно, і те, чого ніхто не знає
Правило, яке діяло весь модуль: AI пише чернетку — ти перевіряєш, правиш і відповідаєш за результат. Це і є коротка відповідь на питання «чи замінить ІІ програмістів».
Зникає не робота, а її склад. Менше набирання тексту. Більше постановки задачі, перевірки й відповідальності за наслідки.
| Що вже автоматизується добре | Що ІІ підсилює, але не робить сам | Що не передається взагалі |
|---|---|---|
| чернетка коду за описом; типова верстка; переклад; переписування тексту; генерація тестових даних; пояснення чужого коду | пошук причини помилки (гіпотези — від ІІ, перевірка — від тебе); чернетка дизайну; чернетка анкети; підсумок 200 відгуків | рішення, яку задачу користувача вирішувати; відповідальність за наслідки; доступ до реальних людей і їхньої довіри |
Перевір на власному досвіді. На уроці 12 ІІ міг написати тобі
report.sh за двадцять секунд. А ось три речі довелося зробити
тобі. Вирішити, що середній рейтинг рахується без тестових рядків.
Помітити, що «Експорт» і «експорт» — та сама функція. І перевірити три
рядки вручну.
Робота не зникла. Вона перемістилася з набирання на перевірку.
Нижче — не пророцтво, а прогноз статистичного бюро. Він показує, скільки робочих місць у цих групах професій очікують у США за 2023–2033 роки. Країна інша, ринок інший, та й прогнози регулярно не збуваються. Читай це як напрям стрілки, а не як обіцянку.
| Група професій | Прогноз 2023–2033 | Як це читати |
|---|---|---|
| Аналітики даних (data scientists) | +36 % | дані зростають швидше, ніж кількість людей, які вміють їх чистити |
| Фахівці з інформаційної безпеки | +33 % | кожен новий сервіс — нова поверхня для атаки |
| Розробники ПЗ, QA-аналітики й тестувальники | +17 % | рахуються разом однією групою: тестування не зникає, воно змінюється |
| Веброзробники й цифрові дизайнери | +8 % | зростає, але помітно повільніше: типову верстку справді автоматизували |
| Фахівці підтримки користувачів | +6 % | перша лінія частково пішла в ботів, друга — ні |
| Усі професії разом, для порівняння | +4 % | орієнтир, відносно якого «швидко» і «повільно» мають сенс |
Джерело — Бюро статистики праці США, розділ Occupational Outlook Handbook; посилання в секції «Джерела». Всесвітній економічний форум у звіті Future of Jobs 2025 оцінює: до 2030 року зміняться близько 39 % ключових навичок працівників. Це і є головна цифра розділу. Вона каже не «професії зникнуть», а «зміст професій поїде».
AI-редактор за двадцять секунд написав тобі скрипт звіту, і він запустився без помилок. Що змінилося у твоїй відповідальності?
Однокласник каже: «Після школи йду в айті, там платять». Що з цією заявою не так у першу чергу?
Лендинг оцінюють не так, як твою роботу оцінює вчитель. Його не читають — його швидко переглядають і закривають
Уся структура лендинга тримається на двох виміряних фактах. Перший. Враження про сторінку формується приблизно за 50 мілісекунд. Це швидше, ніж людина встигає прочитати перше слово. Тобто оцінюють загальний вигляд, а не зміст.
Другий. Більшість відвідувачів ідуть зі сторінки в перші 10–20 секунд. Лишаються тільки ті, хто за цей час побачив чітко названу користь для себе.
Звідси єдина вимога до верхньої частини сторінки. За пʼять секунд і без прокрутки має бути зрозуміло що це, для кого і що тут робити. Усе інше — докази, дорожня карта, команда — нижче, для тих, кого зачепило.
{шаблон}:
на робочій сторінці вони підтягуються, а не вписуються.Найчастіша помилка шкільного лендинга — заголовок-настрій. Він звучить красиво і не повідомляє нічого. Перевірка одна: чи може незнайома людина після цього рядка сказати, що ти пропонуєш і кому.
| Заголовок | Що з ним не так | Як переписати |
|---|---|---|
| «Ми змінюємо правила гри» | підходить будь-якому продукту на світі | «Розклад гуртків твоєї школи в одному місці» |
| «Інноваційна платформа нового покоління» | чотири слова без жодного іменника про суть | «Обмін підручниками між учнями твоєї школи» |
| «Твоє життя стане простішим» | обіцянка без предмета: простішим у чому? | «Нагадує, коли здавати роботи, за день до дедлайну» |
| «SkillUp» | назва замість пояснення; назва вже є в шапці | «SkillUp — щоденник підготовки до НМТ на 15 хвилин на день» |
У hero твого лендинга написано: «Ми змінюємо підхід до навчання». Кнопка — «Дізнатися більше». Що виправляти першим і чому саме це?
Нічого нового писати не треба: майже все вже лежить
у ~/www/ з попередніх уроків
Лендинг — не ще один документ поруч із дванадцятьма попередніми. Це вхід до них: коротко головне, а деталі — посиланням на сторінку, яку ти вже зробив. Тому робота сьогодні здебільшого не «написати», а «дістати, скоротити й зшити».
fetch: вони не
містять чисел у розмітці, а тягнуть їх із джерела під час відкриття
сторінки. Саме це перевіряє критерій «дані живі»: підміна значення
у джерелі має змінити те, що показує лендинг.| Спосіб | Коли доречний | Приклад із твого проєкту |
|---|---|---|
| Скорочена копія тексту | текст майже не змінюється, а на лендингу потрібні 2–3 речення замість двох сторінок | problem, solution — із brief.html |
| Посилання | матеріал великий і живе окремою сторінкою | deck.html, pitch.html, kb/, team.html |
Живі дані через fetch | число змінюється саме й має змінюватися на сторінці без правки HTML | numbers, roadmap, feedback |
Третій спосіб із таблиці — живі дані — тримається на трьох джерелах,
по одному на секцію. Перше джерело — data/market.csv
з уроків 3 і 4. Секція numbers бере з нього кількість
потенційних користувачів і складає її вже під час відкриття сторінки.
<section id="numbers">
<h2>Ринок і економіка</h2>
<p>Потенційних користувачів у сегментах: <b id="n-users">—</b></p>
</section>
<script>
fetch('data/market.csv')
.then(r => { if (!r.ok) throw new Error(r.status); return r.text(); })
.then(text => {
const rows = text.trim().split('\n').slice(1); // без заголовка
const users = rows.reduce((s, line) => s + Number(line.split(',')[1] || 0), 0);
document.getElementById('n-users').textContent = users.toLocaleString('uk-UA');
})
.catch(() => {
document.getElementById('n-users').textContent = 'дані тимчасово недоступні';
});
</script>
Друге джерело — твій власний звіт. report.html уже лежить поруч
і оновлюється сам за cron. Щоб дістати з нього числа, познач їх
у bin/report.tpl.html ідентифікаторами — і лендинг прочитає
готову сторінку як документ:
<script>
fetch('report.html')
.then(r => { if (!r.ok) throw new Error(r.status); return r.text(); })
.then(html => {
const doc = new DOMParser().parseFromString(html, 'text/html');
const val = id => (doc.getElementById(id) || {}).textContent || '—';
document.getElementById('f-count').textContent = val('r-count'); // скільки відгуків
document.getElementById('f-avg').textContent = val('r-avg'); // середня оцінка
})
.catch(() => { document.getElementById('f-count').textContent = '—'; });
</script>
Третє джерело — data/tasks.json з уроків 9 і 10. Секція
roadmap читає його тим самим fetch і показує,
скільки задач із карти вже зроблено. Код майже не відрізняється: інше імʼя
файлу й інші поля, з яких беруться числа.
responses.csv містить імена й коментарі реальних людей і лежить
у приватній ~/data/, поза вебкоренем. Лендинг не має права
тягнути її навіть якщо дуже хочеться показати «живі відгуки». На сторінку
потрапляють кількість відгуків і середня оцінка. Ще можна взяти
окремі цитати — але тільки ті, на які людина дала згоду. Імʼя в цитаті
скорочуй до імені й класу.Ти вписав у секцію numbers руками: «127 відгуків, середня
4,6». Через тиждень відгуків 140, а середня — 4,4. Що станеться?
Відміть артефакти, які реально лежать у ~/www/.
Нижче збереться каркас майбутньої сторінки — з попередженнями про порожні
місця й готовим кодом
Відмічай чесно: не «я збирався зробити», а «файл лежить на сервері й відкривається за посиланням». Збирач не знає, що в тебе на сервері, — він показує наслідок твоїх галочок. Якщо позначити все підряд, він видасть красивий каркас із мертвими посиланнями, і на уроці 14 це побачить автоперевірка.
index.html під те, що в тебе вже є
Це каркас, а не готова сторінка: текст, заголовок
і докази пишеш ти. Згенерований код підключає brand.css.
У навігацію він бере тільки ті сторінки, які в тебе справді є.
А fetch ставить лише туди, де для нього є джерело.
Збирач попереджає: «секція roadmap порожня — немає
tasks.json». До кінця уроку 40 хвилин. Що робити?
team.html: ролі, потрібні продукту, і чесна позначка своєїСторінка про команду — не про кількість людей, а про те, яка робота в продукті існує і хто її зараз робить
Інвестор, учитель і будь-яка доросла людина дивляться твій проєкт із двома питаннями в голові. Перше: чи розумієш ти, з чого складається робота над продуктом. Друге: що з цього ти справді робиш сам.
Саме сторінка команди й відповідає на обидва. Друге питання важливіше — на ньому шкільні проєкти падають найчастіше.
<article class="role">
<h2>Аналітик</h2>
<p class="what">Готує дані ринку, рахує юніт-економіку і стежить,
щоб кожен висновок на лендингу спирався на число з market.csv.</p>
<ul class="skills">
<li>чистка й перевірка CSV</li>
<li>зведені таблиці та вибір діаграми під питання</li>
<li>маржа й точка беззбитковості</li>
</ul>
<!-- позначка своєї ролі: її шукає автоперевірка -->
<p class="me">Цю роль виконую я — Данило К., 11-А</p>
</article>
У team.html пʼять карток: CEO, CTO, дизайнер, маркетолог,
аналітик — з іменами й фото людей, яких не існує. На Demo Day журі питає:
«Хто з них писав скрипт звіту?» Що буде далі?
brand.css, одна навігація, нуль мертвих посиланьДевʼять сторінок стають продуктом тоді, коли в них спільні кольори, спільна навігація й жодного посилання на 404
У тебе в ~/www/ накопичилося девʼять сторінок, зроблених
у різні тижні й у різному настрої. Сьогодні вони мають виглядати як один
сайт. Для цього потрібні рівно три речі: спільні кольори, спільна навігація
й перевірені посилання.
Правило з уроку 5 тепер стає технічною вимогою. У власному CSS лендинга
не має бути «сирих» кольорів на кшталт #0b7285. Усе йде
через var(--brand-…).
Причина не в естетиці. На Demo Day ти вирішиш, що акцент занадто блідий.
Один рядок у brand.css має перефарбувати всі девʼять сторінок.
А якщо кольори розповзлися по файлах, правити доведеться девʼять місць —
і два ти забудеш.
Один і той самий блок посилань угорі кожної сторінки. Людина, яка
відкрила analytics.html із пошуку, має за один клік потрапити
на головну. Порядок посилань теж однаковий — інакше сторінки виглядають
як чужі одна одній.
Deck.html з великої літери
відкривається на Windows і не відкривається на сервері.
Про це був перший урок — і ось воно повернулося.Перевіряй у SSH-сесії на сервері, а не у PowerShell на своїй машині.
Причина проста: у Windows PowerShell 5.1 curl — це інше імʼя
команди Invoke-WebRequest. Ключі справжнього curl там
не працюють. А на сервері один рядок перевіряє всі сторінки одразу.
А цей рядок покаже, куди насправді веде кожне посилання з лендинга — зокрема ті, які ти встиг забути:
Приклади виводу складені як типові для навчального сервера — на твоєму акаунті список буде свій.
| Що перевірити | Як саме | Найчастіша помилка |
|---|---|---|
Усі сім секцій із потрібними id | пошук по файлу: hero problem solution numbers roadmap deck feedback | секція названа section-1 |
| Жодного мертвого посилання | цикл із curl вище | велика літера або пробіл в імені файлу |
brand.css підключений і використаний | у CSS немає #-кольорів поза brand.css | лендинг зверстано «з нуля» новими кольорами |
| Числа підтягуються, а не вписані | зміни значення в market.csv — сторінка має змінитися | копія чисел у HTML |
| Вигляд на 360 px | DevTools, режим телефона, немає горизонтального скролу | широка таблиця без обгортки |
| Доступність | у кожної картинки alt, у кожного поля форми <label> | іконки без alt |
Наскрізний no_media | у ~/www/ і ~/upload/ немає медіа й файлів понад 2 МБ | фон для hero у 3 МБ |
Портфоліо — не «колись потім». Це посилання на працюючу сторінку, за яким
видно, що людина довела справу до кінця. У тебе воно вже є. Сайт
відкривається з мережі за постійною адресою. Дані в ньому справжні.
А історія роботи лежить у CHANGELOG.md і теці
kb/.
| Що показувати | Як це звучить |
|---|---|
| посилання на лендинг | «Ось продукт: 91.219.61.4/s/<логін>. Відкривається з телефона, дані живі» |
| що саме ти зробив | «Дані, дизайн-токени, форму й скрипт звіту робив я; це навчальний проєкт» |
| одну технічну деталь | «Звіт генерується скриптом за cron, числа на лендинг тягне fetch» |
| чесно про AI | «Чернетку скрипта писав AI-редактор, я перевіряв логіку й правив розрахунок» |
| що зламалося й що ти полагодив | найцікавіша частина розмови: помилка й твоє рішення |
responses.csv з іменами
однокласників у публічний доступ не викладають — ані на сайт, ані
посиланням «подивіться, які в мене дані». Показуй агрегат: скільки відгуків,
середня оцінка, три знеособлені цитати з дозволу авторів.Верстаючи лендинг, ти написав у стилях color:#0b7285 —
«так гарніше, ніж змінна». Сторінка виглядає добре. Що не так?
team.htmlВиконуй по черзі. Галочки зберігаються — сторінку можна закрити й повернутися.
index.html і team.html ти пишеш у редакторі
в себе на компʼютері. Зберігай їх у UTF-8. По FTP вони їдуть
у ~/upload/, а звідти ти переносиш їх у ~/www/. Ілюстрації для hero, якщо ти їх
генерував, лишаються на твоїй машині — у hero працюють
assets/logo.svg, assets/og.png і CSS. Перевірку
посилань запускай у SSH-сесії на сервері.check11 8, перша частинаСистема робить реальний запит на твій сабдомен і читає розмітку. Далі вона обходить усі посилання. А потім підміняє значення в джерелі даних — щоб побачити, чи сторінка справді жива. Спроби не обмежені.
Демонстраційний режим: результат згенеровано для показу.
На сервері ця кнопка запускає check11 8 від імені учня
і читає ~/.progress/11-8.json.
data/market.csv і робить копію. Потім
змінює в ньому одне число й кладе файл назад. Далі відкриває лендинг
у браузері без вікна й дивиться, чи змінилося те, що показує секція
numbers. Після цього
повертає файл як був. Скопійовані в HTML числа цю перевірку не проходять
ніколи — не тому, що «так не можна», а тому, що вони справді не оновлюються.market.csv, tasks.json і звіту — і що
відповідає сервер;team.html: ти показуєш свою позначку і вголос кажеш,
яку роль виконуєш і чого в команді немає;Це те, що бачить учитель, коли виставляє оцінку.
| Складник | Вага | Результат |
|---|
deck.html — і скоротити те, що не вкладається.~/www/kb/ нотатку my-role.md:
яку роль ти виконував у продукті, що з цієї роботи сподобалося,
а що ні, і чому. Три-чотири речення, чесно.check11 8 прожене повторно всі попередні перевірки, і зламане
новою версткою буде видно.
Потім пітч: 3 хвилини виступу плюс 2 хвилини питань. Лендинг показуєш
живим, із проєктора. Далі голосування «інвестор». І письмовий відгук двом
іншим командам за формулою «сильне — питання — пропозиція».
Перевір посилання й вигляд на 360 px до уроку: на самому Demo Day
часу лагодити не буде.Кожне число, яке ти можеш перевірити, має посилання. Прогнози ринку праці позначені окремо: це прогнози, а не факти.
<section> з
id, заголовки без стрибків рівнів — MDN.
developer.mozilla.org · section,
developer.mozilla.org · h1–h6fetch, перевірка response.ok і те,
що мережева помилка й код 404 обробляються по-різному — MDN.
developer.mozilla.org · Using the Fetch APIDOMParser: розбір готового HTML як документа — MDN.
developer.mozilla.org · DOMParsercurl — псевдонім
Invoke-WebRequest, а не справжній curl — документація
Microsoft.
learn.microsoft.com · Invoke-WebRequestПриклади виводу команд (коди 200 і 404, список посилань),
назва продукту «Розклад гуртків», числа у плашках доказів і картки в
team.html складені як типові навчальні приклади — на твоєму
акаунті вони будуть свої. Відсотки в картці ролей рахуються за формулою,
описаною прямо під нею, і не є психологічним тестом. Повний список джерел
із поясненнями — у файлі urok-13-джерела.md поруч із цією
сторінкою.