Я в мейнтенеры пошел, или Как прекратить разбивать клавиатуры о стену и полюбить Magento
Наш соотечественник Денис Копылов достиг в поддержке Magento таких высот, что в перечне мейнтейнеров сообщества magento/magento2 на GitHub стал единственным представителем России.
ИТ — дело нешуточное
Одно из самых ярких воспоминаний Дениса о времени, проведенном в общежитии Таганрогского радиотехнического университета (позже вошел в состав Южного федерального университета, став Таганрогским технологическим институтом Южного федерального университета, ТТИ ЮФУ, и до настоящего времени пережил целый ряд переименований), — характерный «хрусткий» звук ударов клавиатурой о стену и исполненный отчаяния вопль: «Да чего же ты хочешь!?» Таким образом, экспрессивный сосед героя нашей истории по общежитию снимал стресс, спровоцированный множественными неудачными попытками заставить написанный на Magento сайт работать именно так, как следует.
К тому моменту, как Денис Копылов столь экстравагантным способом впервые познакомился с Magento, он успел зарекомендовать себя в качестве подающего большие надежды программиста. Родился Денис в 1989 году в городе Нальчик и тягу к вычислительной технике проявил еще в начальной школе, мельком увидев работу громадного (занимавшего несколько комнат) компьютера, получавшего вводные данные с перфокарт и выдававшего результат на бобины с магнитной лентой.
«Крещение железом», непременный этап в саморазвитии любого прикладного поклонника высоких технологий, Денис прошел в восьмом классе, когда собственноручно разобрал, а затем вновь собрал свой первый ПК с 8 Кбайт оперативной памяти и жестким диском на 32 Мбайт, работавший под управлением MS DOS. После обратной сборки компьютер запустился как ни в чем не бывало, и это утвердило будущего мейнтейнера Magento в намерении и дальше двигаться по цифровой стезе. Подтверждением верности выбранного пути становились для Дениса занимаемые им призовые места на школьных олимпиадах по математике, а также регулярное применение полученных навыков на практике. В старших классах он часто помогал учителям информатики с настройкой компьютеров — и неудивительно, что в итоге выбрал профессию, связанную с цифровыми технологиями.
Первую в своей жизни работу Денис получил в буквальном смысле слова шутя. Как-то, придя в очередной раз в школу, чтобы помочь с компьютерами в кабинете информатики, он вместе с одноклассником наткнулся на директора. И на резонный вопрос, а что, собственно, молодые люди делают в учебном заведении во внеучебное время, ребята решили отшутиться: «Да вот на работу пришли устраиваться». Директор тут же предложил им провести локальную сеть в библиотеку, установить и настроить там компьютеры, что и было исполнено быстро и качественно — благо опыт у энтузиастов ИТ-самообразования имелся. Причем итог спонтанного розыгрыша оказался даже более удачным, чем рассчитывали сами шутники: Дениса действительно взяли на работу — по-настоящему, с трудовой книжкой и окладом — инженером-электронщиком в его же родную школу.
Все дороги ведут в магазин
Деятельный и амбициозный, Денис Копылов в 2011 году завоевал 11-ю позицию в ежегодном рейтинге лучших студентов ТТИ ЮФУ и был приглашен на встречу с Президентом Российской Федерации Дмитрием Медведевым. Защитив звание бакалавра на кафедре системного анализа и телекоммуникаций, увлекся информационным поиском и почти всё время в учебы в магистратуре проводил в международной лаборатории СКАН-технологий и информационного поиска ELDIC. Плодом усилий стало участие в разработке и поддержке статистической подсистемы приемной комиссии факультета автоматики и вычислительной техники, а также автоматизированной системы проверки результатов госэкзаменов.
Получив столь бесценный опыт, Денис пришел к выводу, что будущее принадлежит веб-технологиям, поскольку на них зиждились и информационный поиск, и работа над статистической подсистемой. Осознание этого стало причиной очередной смены направления развития и стека технологий. В результате вот уже 12 лет со дня зачисления junior-разработчиком в компанию Deimand Денис Копылов занимается созданием и поддержкой интернет-магазинов. Главным образом на той непростой в освоении, но безграничной по возможностям платформе Magento, из-за которой пострадало столько клавиатур.
На практике Magento оказалась для Дениса вовсе не такой пугающей, как можно было рассчитывать: всё дело в подходе. Плотнее изучить платформу помог переход с постоянной занятости на фриланс, в ходе которого нашему герою удалось потрудиться над проектами ведущих компаний России, США, Великобритании, решая не самые тривиальные задачи — такие, например, как эффективная (с автоматическим выставлением цены на товар ниже, чем у конкурентов) интеграция с маркетплейсом Rakuten. Среди российских партнеров Дениса были такие вендоры, как TagesJump, BFK, Insmartbase, что дало ему возможность попробовать себя и в DevOps, и в качестве разработчика. И практически для всех заказчиков приходится решать проблемы с производительностью платформы, поскольку Magento при всех ее достоинствах не отличается высокой скоростью обработки запросов.
В 2016 году Копылов принял решение с нуля создать собственную команду разработчиков, назвав ее Magenius.Team и привлечь для участия в ней университетских знакомых. С нуля — важная особенность избранной лидером стратегии: хотя в этом случае необходимы изрядные затраты времени и сил на разработку собственной программы подготовки, ее наличие гарантирует воспитание пусть сперва неопытного, но сознательного разработчика. «Сознательный» в данном случае означает «ценящий красоту и качество кода», «осмысленно соблюдающий coding-стандарты».
Говорить о важности стандартизации в программировании готовы многие, но применяют стандарты на практике далеко не все — в этом Денис убедился на собственном опыте, изучая коды от множества разработчиков из самых разных компаний, включая весьма именитые. Увы, «под капотом» такого кода частенько всё оказывается не так хорошо, как сулят маркетинговые заверения. Именно потому, собственно, прекрасная платформа Magento вынуждена мириться с репутацией сверхсложной в освоении, медленной и склонной к ошибкам.
Впрочем, нередко, решая проблемы клиентов, Magenius.Team действительно обнаруживает их корень в самом ядре Magento. Вот почему уже с 2019 года российский разработчик стал контрибьютором — принялся вносить правки в открытый код ядра Magento Open Source (один из примеров повышения производительности системы за счет таких изменений можно найти в статье Дениса , опубликованной в рецензируемом ИТ-журнале). Несколько позже Денис был принят в сообщество Magento Community Maintainers, отвечающее за проверку pull-реквестов в открытом репозитории Magento Open Source.
На сегодня Денис Копылов — единственный признанный эксперт из России в составе Magento Community Maintainers. Только за 2021 год он проверил 352 pull requests, из которых 184 вошли в код ядра. В том же году он, как мейнтейнер, вошел в топ-5 участников сообщества и получил признание таких именитых его членов, как Vinai Kopp, Mark Shust и др. Среди сертификатов Дениса, помимо всех основных направлений Magento-разработки, — Adobe Certified Master – Adobe Commerce Architect; Adobe Certified Expert – Adobe Commerce Business Practitioner; Adobe Certified Expert – Adobe Commerce Front End Developer.
Сейчас герой нашего рассказа трудится над сведением воедино и оформлением своего огромного опыта работы с Magento в уникальное русскоязычное руководство для разработчиков на этой платформе, чтобы навсегда избавить клавиатуры знакомящихся с ней программистов от риска бесславно завершить свой путь, будучи разбитыми в бессильной ярости о стену. Потому что программирование должно приносить не только материальную пользу, но и удовольствие — а иначе зачем вообще за него браться?
Опубликовано 01.11.2022