JavaRush /Курси /Claude Code SELF /Збираємо гру за ТЗ

Збираємо гру за ТЗ

Claude Code SELF
Рівень 2 , Лекція 4
Відкрита

1. Без ТЗ результат ХЗ

«Так, стоп, — міркує Тьома. — Якщо воно так для антонівського лендингу працює, то спрацює й для всього іншого». Не треба чекати милості від природи — їх треба брати в неї. Ось наше завдання!

Він відкриває панель агента й, нічого не продумавши, на голому азарті пише Сашкові:

— Сашку, напиши мені гру 2048.

І чекає, що Сашко зараз усе зробить. Гра ж легша за лендинг. Чи ні? Але Сашко, ніби на зло, обирає третій варіант:

Без ТЗ результат ХЗ.

Тьома спершу навіть не вірить:

— Сашку, ти серйозно? Ти ж щойно лендинг написав. Навіщо тобі ТЗ?

— Лендинг я написав за ТЗ, — спокійно відповідає Сашко. — Ти його вранці з Льохою збирав, файл TZ_LANDING.md. Я його прочитав і зробив рівно те, що там було. А зараз ти мені дав два слова й цифру.

— Ну так гра ж простіша за лендинг!

— Перш ніж писати код, потрібно написати Технічне Завдання.

Тьома навіть фиркає:

— Та ну. Це ж гра 2048, усі знають, що це таке. Поле, плитки, рухаєш, складаєш. Що тут описувати?

— «Усі знають» — це в тебе в голові, — відповідає Сашко. — А в задачі, за якою я працюю, цього немає. Яке поле — 4×4? Звідки беруться нові плитки і коли? Які зливаються і у що? Коли настає перемога, а коли — кінець? Для тебе «2048» — ціла картинка. Для мене — порожнє слово, поки не розкладене на правила.

Тьома відкриває рота, щоб заперечити, — і осікається.

— Та ну, ясно, — каже він повільно. — Точно як уранці. З лендингом думав — головне зібрати сторінку, а виявилося — добути всі деталі. Зараз думав — головне назвати гру, а виявилося — розкласти її на правила.

Ніби Сашко й бурчить, а ніби й ні. Той самий урок, тільки з іншого боку: ШІ-агент блискуче пише код за інструкцією й зупиняється без неї. «Без ТЗ результат ХЗ» — уже не просто причіпка, а правило, за яким тут, схоже, взагалі все влаштовано.

2. Як народжується технічне завдання

Нічого не поробиш — Тьома йде до Льохи. І цього разу він уже не розгублений, як уранці з лендингом. Він зрозумів схему: якщо треба розкласти сенс на частини, це до Льохи.

— Сашко вимагає ТЗ на 2048. Допоможеш сформулювати?

Льоха не вигадує правила зі стелі — він акуратно озвучує їх по поличках:

# ТЗ: 2048
ПОЛЕ:      сітка 4×4
ПЛИТКИ:    на старті та після кожного ходу зʼявляється нова плитка (2 або 4)
ХІД:       гравець рухає всі плитки в один бік (вгору/вниз/ліворуч/праворуч)
           стрілками клавіатури або свайпом по полю
ЗЛИТТЯ:    дві однакові плитки, зіткнувшись, зливаються в одну із сумою
ПЕРЕМОГА:  на полі зʼявилася плитка 2048
ПОРАЗКА:   ходів більше немає — поле забите, зливати нічого

— Слухай, це ж та сама ранкова історія, тільки навпаки, — каже Тьома. — Уранці ти розбирав лендинг на частини: продукт, аудиторію, блоки, кнопку. Зараз — гру: поле, плитки, злиття, перемогу, кінець. Одне й те саме.

— Одне й те саме, — погоджується Льоха. — Моя робота — взяти розпливчасте «хочу 2048» і перетворити його на список вимог, за якими вже не можна зробити дурницю.

Тьома дивиться на список — і раптом бачить не одну цю метушню, а всю картину разом.

— Щось таке вже було сьогодні, — каже він. — Сашко без детального ТЗ гальмує. Ти розкладаєш забаганку на правила. Я несу інструкції назад Сашкові. Три кроки — і це працює однаково: і на антонівському лендингу, і на моїй іграшці.

Гаразд, бодай код самому писати не доводиться. Це поки магія ШІ-агента, і сьогодні Сашко з цим чудово справляється. Сподіваюся, так буде завжди.

3. Гра за готовим ТЗ

Тьома копіює ТЗ і скидає його назад Сашкові — тими самими словами, що й на лендингу. Тільки тепер це вже не просте «хочу гру 2048», а повноцінне ТЗ.

— Сашку, збери браузерну гру 2048 за правилами: поле 4×4, поява плиток, злиття однакових, мета — зібрати плитку 2048, екрани перемоги та поразки. HTML/CSS/JS, без збірки.

Натискає Enter і бачить, як Сашко починає роботу. Пʼять хвилин — і в дереві файлів лежить готова гра.

Тьома клацає по ній правою кнопкою, обирає Run.

Секунда.

Порожнє поле 4×4 — і на ньому проступають дві плитки. Тьома натискає стрілку вліво: плитки їдуть, дві двійки стикаються, зливаються в четвірку, а зверху зʼявляється нова. Біжить рахунок.

— О-па, — видихає він і тисне ще. Четвірки у вісімку, вісімки у шістнадцятку. Усе рівно за тими правилами, що він годину тому диктував Льосі, — як і було замовлено.

День, схоже, видався результативним і дуже цікавим. А що? Пробну версію лендингу він уже зробив, а фінальні дані Антон ще не приніс. Робота стоїть не з його, Тьоминої, вини.

А 2048 наприкінці дня — особистий бонус. Він замислено дивиться на вкладки. Учорашній клікер, сьогоднішня 2048. Маленька, але вже своя полиця з перемогами — поруч із робочою. Один конвеєр, дві полиці, і сьогодні він заповнив обидві.

І раз уже полиця своя — чому вона має виглядати як у всіх? Плитки в 2048 стандартні, бежево-помаранчеві, точнісінько як у мільйоні таких самих ігор в інтернеті.

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

Він захлопує кришку, не закінчивши власну думку. А рахунок сьогодні й справді на його користь: майстерня стала своєю, робочий лендинг поїхав у редакторі, а в галереї завелася перша гра, яку він зібрав не дивом, а розумно.

1
Опитування
Безпечний workflow Claude Code, рівень 2, лекція 4
Недоступний
Безпечний workflow Claude Code
Безпечний workflow Claude Code
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ