- Тихон, ну что, ты запускал бенчмарки для 21-го эрланга?
- Да, запускал.
- И что там, какие результаты?
- Смотря какие результаты тебе нужны. Если хочешь кому-то рассказать, что эрланг стал быстрее, то бери вот этот бенчмарк. А если хочешь рассказать, что эрланг стал медленее, то тогда бери вот этот.
- Тихон, а давай переведем проект на более свежую версию эрланга.
- Давай, Марфа. А девопсам про это не скажем.
- Коварный план, хе-хе-хе.
- Главное, потом вовремя убежать и спрятаться, хи-хи-хи.
- Ну что, Марфа, как там нагрузочный тест?
- Хорошая новость в том, что те метрики, которые ты предложил добавить, действительно помогли.
- Угу.
- А плохая новость в том, что выяснилось, что все работает не так, как мы думали.
- Тихон, тебе скоро выступать на митапе. Ты готовишься?
- Да. Но в основном морально.
- То есть, прокрастинируешь?
- Ну можно и так это назвать.
- О чем ты думаешь, Марфа?
- Вот думаю, почему docker-compose позволяет указать, какой сервис запутить, но не позволяет указать, какой сервис не запускать?
- Но ты же справилась с этой проблемой?
- Справилась. Комментирование строк в docker-compose.yml никто не запрещал.
- Тихон, у Эликсира есть целая отдельная книжка про метапрограммирование. А зачем это все?
- А это, Марфа, называется: "мы добавили язык программирования в наш язык программирования, чтобы вы могли программировать, пока программируете".
- И что, от него вообще пользы нет?
- Польза есть. Вот, например, Ecto сделали. А в эрланге такое никак не получалось, сколько ни пытались.
- Тихон, вот ты сидишь, копаешься в чужом легаси-коде. Неудачник.
- Марфа, дело не в том, что это чужой легаси-код. Дело в том, что это проект, который мог взлететь, и не взлетел. Но у него еще есть шанс.
- Да может выбросить его нафиг, и написать все заново.
- Обязательно. Непременно. Но потом. Сперва попробуем починить.
- Коты, как там ваш предыдущий проект поживает?
- Да все хорошо. Вот, недавно баг нашли, критический.
- А, ну, значит, все в порядке.
- В порядке, в порядке. Чиним, не мешай.
- Тихон, ты опять делаешь метрики?
- Ага.
- Чего ты столько возишься с этой ерундой? Это ж просто.
- Просто раскидать в случайных местах в коде случайные метрики.
- Что делаешь, Тихон?
- Готовлюсь проводить собеседование.
- Будешь спрашивать про круглые люки?
- Ну нет, что ты, конечно нет. А хотя ...
- Марфа, зачем ты завела отдельную переменную для хранения размера очереди?
- Потому что вызов queue:len выполняется за O(n).
- Хорошо, а зачем тогда тут проверка assert(queue:len(Inbox) == InboxSize) ?
- А это чтобы убедиться, что переменная находится в консистентном состоянии.
- А ты в курсе, что твой assert выполняется за O(n)?
- Ой, блин.
- Тихон, ты уже начал делать эту задачу?
- Да, сейчас начну, только отвечу на четыре письма, и начну.
- Ты говорил то же самое два часа назад.
- Два часа назад были другие четыре письма.
- Смотри, Тихон, какой лаконичный код у меня получился.
- Отлично, Марфа. Но я могу написать еще короче.
- Это как?
- Смотри, вот так:
- Но тут ничего нет.
- Верно.
- Коты, вот что это сейчас было?
- Это стендап, ежедневный утренний стендап.
- Угу, а зачем стул опрокинули и тикеты разбросали?
- Тихон, ты опять опоздал на работу.
- Я всегда на работе. Я опоздал в офис.
- Что это значит? Ты, типа, круглые сутки только о работе думаешь?
- Не, это такая красивая отмазка.
- Тихон, расскажи, что такое модель акторов?
- Ну это как тусовка котов -- ходят туда-сюда, обмениваются сообщениями.
- И все?
- Еще у каждого из них своя голова. Нет головы, общей для нескольких котов.
- Умеешь ты метафоры придумывать.