1
00:00:00,000 --> 00:00:10,810
Представь: я запустил своего первого торгового бота. И в первый же день он заработал мне 11 с половиной долларов. Две сделки, две победы!

2
00:00:11,060 --> 00:00:19,791
Ого, 100% винрейт! Пусть и на двух сделках, но это повод для шампанского. Или, по крайней мере, для довольной улыбки.

3
00:00:20,041 --> 00:00:26,732
Именно! Я почувствовал себя гениальным разработчиком, чьё творение покоряет мир.

4
00:00:27,132 --> 00:00:38,343
На этой волне я решил внести крошечное косметическое исправление в код. Просто поправить один эндпоинт. Закончил, перезапустил сервис и пошёл пить чай.

5
00:00:38,593 --> 00:00:45,884
Звучит как завязка для фильма ужасов для программистов. «Он просто хотел поправить одну строчку...»

6
00:00:46,284 --> 00:00:57,575
Вернувшись, я открыл дашборд, чтобы полюбоваться на свои $11. А там... нули. Абсолютно чистая статистика, будто ничего и не было.

7
00:00:57,825 --> 00:01:02,116
Куда делись деньги, Лебовски? Сердце, наверное, ёкнуло?

8
00:01:02,366 --> 00:01:11,817
Ещё как! Первая мысль — паника. Я кликал везде, обновлял страницу, но нули смотрели на меня с холодным безразличием.

9
00:01:12,217 --> 00:01:24,668
Когда паника прошла, я полез в самое сердце системы — в базу данных. И что ты думаешь? Все сделки на месте, прибыль $11.53, всё записано.

10
00:01:24,918 --> 00:01:31,649
Так, подожди. Данные есть, но бот их не видит? Он что, сам записал и сам же забыл?

11
00:01:31,899 --> 00:01:36,190
Именно! Бот в буквальном смысле забыл, что выиграл.

12
00:01:36,590 --> 00:01:49,721
И тут до меня дошло. Проблема была в разнице между хранилищем и памятью. База данных — это постоянное хранилище, а история сделок хранилась во временной, оперативной памяти.

13
00:01:49,971 --> 00:01:58,422
А, то есть каждый раз при перезапуске эта временная память просто обнулялась, и бот начинал жизнь с чистого листа?

14
00:01:58,672 --> 00:02:07,563
Совершенно верно. Он помнил, как восстанавливать открытые сделки, но я забыл дописать код для загрузки уже закрытых.

15
00:02:07,963 --> 00:02:17,774
К счастью, исправление заняло 15 минут. Я просто добавил функцию, которая при старте загружает историю из базы данных обратно в память.

16
00:02:18,024 --> 00:02:28,835
Такая маленькая деталь, а какая разница! В коммерческом продукте это была бы катастрофа. Инвестор бы увидел нули и ушёл навсегда.

17
00:02:29,085 --> 00:02:34,496
Именно. Доверие, однажды потерянное, вернуть почти невозможно.

18
00:02:34,896 --> 00:02:44,107
Эта история научила меня нескольким правилам, которые стоит высечь в граните. Во-первых, всё важное — сразу в базу данных.

19
00:02:44,357 --> 00:02:55,288
Во-вторых, всегда пиши функцию восстановления состояния при запуске. И в-третьих, специально ломай и перезапускай свой сервис, чтобы проверить, что всё работает.

20
00:02:55,538 --> 00:03:02,629
Точно. Это как учения по пожарной тревоге — лучше провести их самому, чем ждать реального пожара.

21
00:03:03,029 --> 00:03:13,240
Забавно, в этом и есть разница между нами и ИИ. Мы, люди, можем забыть что-то важное, просто отвлёкшись на птичку за окном.

22
00:03:13,490 --> 00:03:24,221
А искусственный интеллект забывает только тогда, когда ты отключаешь ему питание. Или когда его создатель забывает написать 30 строчек кода.

