JavaRush /Курсы /Claude Code SELF /Какие данные и откуда

Какие данные и откуда

Claude Code SELF
7 уровень , 1 лекция
Открыта

1. Как превратить хотелку в техническую задачу

— «Радар землетрясений всего мира... Масштабно!», — выдает Лёха. — А что конкретно он показывает-то? Просто точку на карте?

Тёма открыл рот. Закрыл. Точку. Ну… где тряхнуло. Вслух это прозвучало бы совсем слабо, и он промолчал.

— Вот именно, — продолжает Лёха. — «Ну где-то» и «ну как-то». Это, брат, не задача. Это настроение.

Тёма хмыкнул. Настроение у него было — хоть сейчас в бой. А что именно делать руками — туман.

— Смотри. Есть хотелка, а есть задача. «Хочу радар, который показывает землетрясения вживую» — это хотелка. Красиво, но Сане с этим делать нечего. А задача звучит иначе: нужны вот такие-то данные про каждый толчок, брать их вот там-то, а если данных нет — вести себя вот так. Чуешь разницу? Первое — фантазии. Второе — то, с чем уже можно работать.

— То есть пока мои слова — это «иди туда, не знаю куда, принеси то, не знаю что»?

— Именно. И чтоб дошло наконец — представь, что ты, допустим, заказываешь еду. Ты же курьеру не пишешь «привезите чего-нибудь поесть»?

— Ну так-то да. Напишешь так — приедет какой-нибудь холодный суп, которого я в рот не возьму.

— И сам виноват. Нормальный заказ — это три вещи: что именно ты хочешь, где брать, и, на всякий случай, что делать, если облом — кухня закрыта, блюдо кончилось. Хотя это я уже наперед забегаю.

Тёма поймал себя на том, что кивает чату. Курьер, кухня, «если облом» — он мысленно подставил вместо еды свой радар, вместо ресторана сервис с толчками, и всё начало вставать на места.

2. Что такое поля данных и как их выбирать

— Продолжим, — Лёха заводит рядом с проектом короткую заметку и даёт ей имя: DATA_REQUEST. — Это бланк заказа. Что мы хотим получить и зачем. Чтоб не держать в голове.

И всё. Дальше молчит. Тёма уставился на пустой бланк. С чего вообще начать — непонятно.

— А что сюда писать-то? С чего начинать?

— С полей. И рядом с каждым — зачем оно тебе нужно, и что даст на экране.

Этого хватило. Тёма понял куда думать и придвинул клавиатуру.

Поле, — пишет Лёха, — это одна отдельная штука про одно событие. Не «всё данные про землетрясение, скопом», а по ячейкам. Сила толчка — отдельно. Место — отдельно. Время — отдельно. Как в анкете: фамилия в одной клетке, дата рождения в другой.

— Ага. Почти понятно. И что нам брать?

Бери только то, что реально окажется на экране. Если поле никуда на картинку не ляжет — сейчас оно тебе не нужно. Не тащи всё подряд на всякий случай.

Тёма стал перебирать в голове: вот случился толчок — что я про него хочу нарисовать? Силу толчка. Где и когда. Чтоб поставить точку — координаты. И ещё, пожалуй, глубину. Каждое поле он мысленно ронял на карту: ляжет — беру, не ляжет — мимо. Пять штук легли красиво.

# DATA_REQUEST
ИСТОЧНИК: публичный сервис землетрясений
ПОЛЯ:     магнитуда, место, координаты, время, глубина

— А теперь обоснуй, — пишет Лёха. — Зачем тебе каждое?

Тёма ткнул в строку и пошёл сверху вниз:

  • магнитуда — сила толчка, число вроде 4.2. Чем сильнее — тем крупнее точка.
  • место — где случилось, словами: «120 км к юго-западу от Акари, Перу». Подпись, чтоб по-человечески.
  • координаты — точка на глобусе в цифрах. Без них не ясно куда отметку ставить.
  • время — когда тряхнуло. По нему поймём, сколько минут назад, то есть насколько свежий.
  • глубина — насколько глубоко очаг. Мелочь, но пусть будет.

— Во, — отзывается Лёха. — Слышишь сам себя? Не «дай чего-нибудь настоящего», а пять конкретных полей, и под каждым — зачем. Вот это уже не хотелка.

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

— Бланк говорит, ЧТО мы заказали, — продолжает Лёха. — Теперь вторая половина: КУДА каждое поле ляжет на экране. Иначе данные так и останутся просто числами, которые непонятно куда девать.

В чат падает второе незнакомое имя — DATA_SCHEMA-lite.

— Это про «как будет выглядеть». Дальше сам. Думай!

Ну ладно — значит, опять самому. Магнитуда — это что на экране? Размер. Свежесть — яркость. Координаты — куда воткнуть. Тёма набил три стрелки:

# DATA_SCHEMA-lite
· магнитуда → размер точки
· свежесть (минут назад) → яркость
· координаты → позиция на карте

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

Точки разного размера и яркости уже висели у него перед глазами.

— Красиво, — сказал он вслух.

— Красиво, — соглашается Лёха.

3. Закладываем поведение при сбое источника

— А теперь скажи, — продолжает Лёха. — Что радар покажет, если сервис с данными вдруг не ответит? Завис, лёг под нагрузкой, интернет моргнул — мало ли.

Тёма открыл рот с готовым «ну…» и завис.

— Ничего не покажет?

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

— То есть пустой белый экран — это вообще не вариант?

— Не вариант. На этот случай дописываем в заказ ещё строчку — план Б.

Тёма добавил её в бланк:

FALLBACK: сервис молчит → держим последний снимок + плашка «жду свежие»

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

Тёма откинулся на спинку. Раньше у всех было как-то проще: код запускается — значит работает, всё на месте. А тут другое. Выходит, чем живее вещь, тем легче её сломать: завязал красивую картинку на чужой сервис — и привет, белый экран, как только тот замолчит. Значит, что делать в тишине, надо решить заранее. Не у погасшего экрана соображать, а до того.

— Это, получается, надо сразу это все учитывать? — говорит он. — Не потом?

— Сразу. Потом будет поздно.

— Кстати, — добавляет Лёха, будто между делом. — Место где мы будем брать данные. Это не «интернет вообще», а конкретный сервис, который умеет отвечать на конкретные запросы. Называется API. Пока просто запомни слово, позже мы к этому вернемся.

Тёма мысленно перевесил ярлык. Раньше в голове было размытое «где-то в сети». Теперь — «есть конкретная контора API, которая знает про землетрясения». Пока просто запомним.

— И ещё, — Лёха на секунду серьёзнеет. — Полезешь к настоящим сервисам — появятся штуки, которые в чат агенту кидать нельзя. Без страшилок, просто заруби на будущее: скоро будут ключи и пароли, и обращаться с ними надо очень аккуратно: не так как с обычным текстом.

— Ключи. Понял, не кидать.

— Угу.

Тёма ещё раз глянул на оба бланка. Полчаса назад он не мог придумать ничего, кроме «данные там всякие». А теперь на экране — пять полей, схема, как они станут точками, и строчка про то, что делать, если сервис затупит. Earthquake Radar перестал быть просто красивым названием: его уже можно отдать Сане в работу. Почти.

Оставался один вопрос, и он торчал занозой: как мой код вообще дотянется до этого сервиса?

1
Задача
Claude code, 7 уровень, 1 лекция
Недоступна
Evidence-based вопрос к Claude Code о login flow
Evidence-based вопрос к Claude Code о login flow
1
Задача
Claude code, 7 уровень, 1 лекция
Недоступна
Review ошибочного AI-ответа про способ хранения сессии
Review ошибочного AI-ответа про способ хранения сессии
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ