Онлайн книга «Развод. Месть по-королевски»
|
Ко мне подошёл мужчина лет тридцати пяти, худощавый, в потёртой футболке с логотипом GitHub. Длинные волосы небрежно собраны в хвост, усталые глаза за очками в тонкой оправе. – Максим Петров, тимлид, – представился он без особого энтузиазма. – Ещё одного консультанта? Серьёзно? В его голосе читалось плохо скрытое раздражение. – Сколько можно, – продолжил бормотать он, хмуро глядя на Даниила. – Мы и так завалены работой, а тут очередной теоретик будет учить нас жизни. – Макс, какая муха тебя укусила? Не с той ноги встал? Выскажешь мне все свои претензии наедине, сейчас это неуместно, – начал было Даниил, недовольно прищурившись, но я его остановила жестом. – Понимаю ваш скептицизм, Максим, – спокойно сказала я. – Консультантыобычно много говорят, часто весьма красиво, но и только. Правильно? Тимлид удивлённо поднял брови, явно не ожидая такой прямоты и спокойствия. Он видел, что его слова меня вовсе не задели, напротив, я едва заметно усмехнулась. Нетипичная реакция на его подначивание. – Ну… в общем-то да. Не обижайтесь, но у нас был печальный опыт. И не раз. – Не обижаюсь. Предлагаю простое решение: дайте мне задачу. Любую техническую проблему, которая у вас есть. Если справлюсь, значит, не зря сюда пришла. Максим обменялся взглядами с коллегами. В их глазах читался интерес, смешанный с недоверием и щедрой щепоткой скептицизма. – Хорошо, – сказал он и провёл меня к одному из рабочих мест. – Видите этот модуль интеграции с внешними API? Он тормозит всю систему. Мы бьёмся над оптимизацией уже три недели. Время отклика неприемлемо медленное, а нагрузка растёт. Я посмотрела на экран. Код был написан грамотно, но неоптимально. Классическая проблема синхронных запросов и отсутствия кэширования. – Можно час времени? – спросила я. – Конечно. Удачи, – в голосе Максима прозвучала плохо скрытая ирония. – Но, думаю, часа мало будет, потому сколько угодно времени в вашем распоряжении. – Шестидесяти минут вполне хватит, – повторила я и села за компьютер. Вскоре работа увлекла, я погрузилась в неё с головой, позабыв об окружающем мире. Знакомое состояние концентрации, где есть только логика, алгоритмы и элегантность решений. Проблема была в том, что система делала отдельный запрос к каждому API последовательно. Я переписала модуль, внедрив асинхронную обработку и многоуровневое кэширование. Добавила пул соединений и оптимизировала работу с памятью. Через сорок минут я откинулась в кресле. – Готово, – объявила я. Максим подошёл, недоверчиво покачивая головой. – Так быстро? Сомневаюсь, что… Он посмотрел на экран и замолчал. Потом склонился ближе, изучая код. – Чёрт возьми, – пробормотал он. – Асинхронный пул… кэширование на трёх уровнях… Это же… это должно дать прирост производительности в разы! – Запустим тесты? – предложила я. Он кивнул, всё ещё, как загипнотизированный, рассматривая мои изменения. Команда собралась вокруг, наблюдая за результатами нагрузочного тестирования. Цифры на экране говорили сами за себя. Время отклика сократилосьс восьми секунд до полутора. Пропускная способность выросла в четыре раза. – Блин, – выдохнул один из разработчиков. – Мы месяц голову ломали… Тимлид выпрямился и посмотрел на меня совершенно другими глазами. – Ладно, – сказал он, и в его голосе не осталось и следа скептицизма. – Возможно, я поторопился с выводами. Добро пожаловать в команду! |