Денис Копылов, Magenius.Team — о богатом функционале Magento и новых технологиях электронной коммерции
На вопросы TAdviser о своей трудовой биографии, о технологиях в сфере электронной коммерции и особенностях популярной платформы для интернет-магазинов Magento ответил Денис Копылов, основатель Magenius.Team.
Как давно у Вас возник интерес к программированию? Как вышло, что это стало делом жизни?
Денис Копылов: Когда я был в 8 классе, у меня появился первый компьютер, работающий под управлением MS DOS, с 8 Кб оперативной памяти и 32Мб постоянной. Мне было очень интересно, как работает эта «чудо-коробка». Я разобрал компьютер до винтиков на комплектующие, собрал его обратно, и на удивление все работало. В дальнейшем мне стало интересно научить машину делать то, что я хочу. Так вот и втянулся, пошел в этом направлении.
Интерес к программированию у Вас наследственный?
Денис Копылов: Да. Мама программировала на ассемблере, самом низкоуровневом языке. У меня по этой теме только базовые знания. Если говорить о написании полноценных программ на ассемблере, сразу я бы не смог, потребовалось бы изучать, изучать и еще раз изучать. А мама это умела, даже какие-то фрагменты писала битами, нулями и единичками. Это, конечно, очень круто, «хардкор».
То есть маму Вы не превзошли в этом…
Денис Копылов: Мама давно не программирует, отошла от этого. Но в плане низкоуровневого программирования она точно меня круче, мне до нее далековато. Но ведь и сами технологии ушли далеко вперед, по сравнению с теми временами, да и сами времена сильно изменились. Мама работала на заводе СевКавЭлектроприбор (СКЭП), и ее работа была ориентирована на программирование, связанное с оборудованием, автоматизацией производства. Я же занимаюсь веб-разработкой в сфере электронной коммерции (e-commerce), созданием, развитием и поддержкой интернет-магазинов.
А ещё у Вас с детства был интерес к математике, и был успех – выигрывали призовые места на олимпиадах. Никогда не возникало желания пойти в математику? Как в науку.
Денис Копылов: Моя школьная учительница по математике Наталья Робертовна прочила мне светлое будущее. Благодаря ее усилиям я и занимал призовые места на олимпиадах — она старалась направить мое развитие в это русло, давала по математике гораздо больше школьной нормы. Но я никогда не видел себя ученым-теоретиком. Я больше прикладник. Мне интересно решать реальные задачи при помощи реальных инструментов и получать видимый результат.
Математика развивает умение абстрактно мыслить. Вам помогло это в профессии?
Денис Копылов: Очень помогло. Любая прикладная программа, прежде чем она будет написана, выстраивается в некие логические цепочки, разрабатывается последовательность действий. И математический склад ума очень важен.
Вы поступили в Таганрогский Радиотехнический Университет (ТРТУ, сейчас – Инженерно-Технологическая академия ЮФУ). Наверное, серьезно размышляли над выбором института. Почему в итоге выбрали именно это учебное заведение?
Денис Копылов: У меня был выбор, и была возможность поступить, например, в Военно-космическую академию им. Можайского, точнее – в ее филиал в Кубинке. Я рассматривал такой вариант. Но потом выделил для себя несколько приоритетных направлений, включая программирование, и рассматривал вузы, где эти направления преподаются. В итоге я выбирал между ТРТУ и Кабардино-Балкарским государственным университетом (КБГУ), который находился в Нальчике, моем родном городе. В пользу ТРТУ сработало то, что таганрогский вуз считался более престижным.
На какой факультет поступили? Выбранная специальность?
Денис Копылов: Я поступил на факультет автоматики и вычислительной техники. Сначала выбрал кафедру системного анализа и телекоммуникаций, но после защиты бакалавриата решил поменять направление обучения, увлекся информационным поиском и перешел на кафедру математического обеспечения ЭВМ, и уже на этой кафедре закончил магистратуру. Мне было интересно, почему Google знает так много, как можно улучшить результаты поисковика, какие сферы жизни можно упростить с помощью информационного поиска. Поэтому практически все время учебы в магистратуре я проводил в международной лаборатории Скан Технологий и Информационного Поиска ELDIC, основателем которой был мой научный руководитель – Вишняков Юрий Муссович. В частности, часть своих наработок и знаний удалось применить при разработке и поддержке статистической подсистемы приемной комиссии Факультета Автоматики и Вычислительной Техники, а также автоматизированной системы проверки результатов госэкзаменов.
Работа в международной лаборатории ELDIC повлияла на выбор нынешней профессии?
Денис Копылов: Да. В международной лаборатории ELDIC я занимался проблематикой поиска в интернете, улучшением его результатов. Именно тогда я понял, что за интернетом будущее, и погрузился в разработку интернет-ресурсов. И не жалею, потому что работать в этом направлении интересно. Интернет дает возможность каждому получить доступ к огромнейшему количеству информации. Только вот направление и стек технологий я поменял — пришел к тому, чем занимаюсь последние 12 лет, т.е. к разработке интернет-магазинов. В 2010-м я устроился в компанию Deimand в качестве junior-разработчика, где познакомился с прекраснейшей платформой построения интернет-магазинов Magento (нынешнее название — Adobe Commerce).
Поговорим о терминах. Было программирование – стало кодирование, были автоматизация/ компьютеризация/информатизация – пришла цифровизация, была электронная торговля – стала e-commerce, был Интернет (непременно – с большой буквы «И») – стал веб, и т.д. Как Вы относитесь к появлению новых терминов? Насколько это оправданно/неизбежно?
Денис Копылов: Не могу сказать, что испытываю отрицательные чувства от появления новых терминов, если говорить о сфере информационных технологий и ИТ-сообществе. Появление новых терминов — это естественный процесс. Их невозможно не изучать, потому что станешь отбиваться от сообщества, перестанешь понимать коллег. А вот если касается общения в быту, то дело действительно иногда доходит до абсурда. Родители могут перестать понимать своих детей.
Новая терминология необходима, это безусловно, особенно в ИТ. Но когда специалисты, выступающие на конференциях, говорят «саппорт» вместо «поддержка», «пойнт» вместо «точка» и так далее — это ведь уже не вопрос новой терминологии, а просто люди разучились говорить на родном языке… Такое ощущение.
Денис Копылов: Соглашусь, что использование некоторых терминов выглядит странно, когда есть вполне себе нормальное русское слово, адекватное и понятное. Все должно быть в меру.
Вернемся к Вашей биографии. Что послужило толчком к выбору именно интернет-торговли как сферы профессиональных интересов?
Денис Копылов: Это забавная история. С третьего курса я жил в общежитии, в городе Таганроге. И мои друзья, которые тоже там жили, уже работали в этом направлении. Достаточно часто можно было слышать злые крики в коридоре общежития типа «да чего же ты хочешь!» и удары клавиатуры об стену. Так один мой знакомый вымещал свою злость, когда работал с Magento — Саша Родин, передаю тебе привет (смеется). Мне стало интересно, что может взбесить человека настолько, что он готов разбить клавиатуру.
И речь в этих криках шла как раз о прекрасной платформе Magento?
Денис Копылов: Да, о ней. Мне стало интересно, что такого страшного в этой платформе, что на нее можно так сильно злиться. Углубляясь в изучение Magento, мне стало понятно, что не все так плохо, как многие говорят — «просто ее нужно уметь готовить». Научись работать с этим инструментом, и тогда никаких проблем не будет.
То есть Вас привлекла сложность платформы Magento?
Денис Копылов: Меня всегда привлекали комплексные задачи. Однако при работе с Magento, оказалось, что эта платформа легко поддается изучению и модификации.
Вы знакомились ближе с другими платформами для электронной коммерции? Shopify… Битрикс…
Денис Копылов: Знакомился и с Shopify, и с Битрикс, и с некоторыми другими. Платформа Magento привлекает тем, что предоставляет самый богатый функционал для построения интернет-магазинов, если говорить о решениях на открытом коде, Open Source. И то, что платформа открыта для разработчиков, тоже немаловажно, конечно.
Как велико сообщество разработчиков Magento?
Денис Копылов: Мировое сообщество разработчиков Magento достаточно велико. Первоначально платформа была особенно популярна в Европе и США, потом стала набирать популярность в Индии — после выкупа платформы американской корпорацией Adobe. А корни платформы на территории СНГ, в Киеве, где и располагался главный офис разработки до выкупа корпорацией Adobe. Поэтому русскоязычное сообщество тоже большое.
Одно время Вы работали в штате, но в итоге стали фрилансером. Почему? Где искали проекты первое время? Каким был самый первый проект?
Денис Копылов: Фриланс привлек меня тем, что самому можно выстраивать рабочий график. Заказы искал через фриланс-биржи. С первым проектом мне повезло, это был британский интернет-магазин электроники. Для него я решал, во-первых, проблему импорта данных о товарах в интернет-магазин. Все знают, что в Magento есть проблемы с производительностью, в частности проблемы со скоростью импорта данных. И вторая интересная задача, с которой я столкнулся в рамках этого проекта, – выгрузка данных во внешний ресурс с подстройкой цен товаров под конкурентную среду. Интернет-магазин интегрировался со сторонним маркетплейсом, и задача состояла в том, чтобы успешно конкурировать с другими продавцами, представленными на этой площадке. Я разработал уникальный алгоритм, который периодически анализировал цены конкурентов, и по заданным правилам подстраивал стоимость товаров так, чтобы цена была ниже, чем у конкурентов.
Многие Ваши проекты связаны с западными компаниями. Не сказалось ли на сотрудничестве с зарубежными работодателями очевидное предубеждение Запада ко всему русскому, связанному с Россией? Сотрудничество продолжается, находится на том же уровне?
Денис Копылов: Продолжается сотрудничество со старыми клиентами, у них предубеждений нет. Они умеют считать деньги. Для них важно, насколько качественно разработчик выполняет свою работу, и какую выгоду от этого получает клиент. Проблемы возникают при осуществлении расчетов за проделанную работу, получении зарплаты, потому что с банками стало все сложно.
Поговорим о самой платформе Magento, которая, как Вы честно признаете, имеет проблемы с производительностью. Но в ряде случаев Вам удалось повысить производительность платформы на уровне ядра. Расскажите об этом.
Денис Копылов: Решая проблемы для клиентов, часто видишь корень этих проблем в самом ядре Magento. Первое время я решал эти проблемы в частном порядке — на проектах клиентов. Однако постоянно применять патчи к разным проектам неудобно, и в 2019 году я стал Magento контрибьютором. Стал открывать т.н. pull request-ы — предложения по улучшению платформы Magento, которые впоследствии стали входить в ядро платформы версии Open Source. Можно также отметить работу над производительностью UI компонента списков (grid), где в ходе улучшения удалось снизить нагрузку на сервер и сократить время загрузки страницы более чем на 33%.
Каков Ваш личный статус как специалиста на сегодня в сообществе Magento?
Денис Копылов: Мой статус — Community Maintainer. Это признанный командой Magento эксперт, помогающий сообществу развивать Magento Open Source платформу.
Что входит в обязанности Community Maintainer?
Денис Копылов: В обязанности мейнтейнера входит проверка работ других разработчиков (pull requests) на соответствие принятым стандартам разработки, а также оценка правильности предлагаемого решения и его соответствия стандартам обратной совместимости. Кроме того, проверяется наличие тестов для вносимых правок (функциональных, интеграционных и юнит-тестов, и т.д.). Также предполагается активное участие мейнтенера в обсуждении пул-реквестов. Он должен давать дельные советы другим контрибьюторам, помогая им принять единственно правильное решение.
Нашим читателям было бы интересно узнать: как стать Magento Community Maintainer’ом?
Денис Копылов: Для начала нужно стать контрибьютором и внести свой существенный вклад в исправление ошибок, в развитие нового функционала Magento Open Source платформе. Далее нужно проявить активность, связанную с обязанностями мейнтейнера, о которой я говорил ранее. После этого можно предложить свою кандидатуру в качестве Community Maintainer’а. Ваша кандидатура будет рассмотрена Magento Core командой, которая примет решение принимать вас в сообщество мейнтейнеров или нет.
Сколько сейчас человек входит в сообщество Magento мейнтейнеров?
Денис Копылов: 46
Есть ли среди них мейнтейнеры из России?
Денис Копылов: Есть, но немного (смеется) — на данный момент я единственный признанный эксперт из России, входящий в эту группу лиц.
У Вас огромный опыт в Magento разработке. В любой сфере подтверждением опыта и высокой квалификации являются различные награды и сертификаты. Имеются ли таковые у Вас?
Денис Копылов: Когда существовала первая версия Magento платформы, я получил сертификат Magento Professional Developer Plus в 2014 году. Дальше вышел релиз второй версии Magento. Однако долгое время работа, организационные вопросы по работе команды, а также обязанности Magento Community Maintainer не давали возможности найти время на подготовку и прохождение сертификации по Magento 2. В 2022 году я все же выделил на это время. На данный момент у меня три основных сертификата. Первый — это Adobe Commerce Architect. Данный сертификат дается тем, кто успешно проходит тестирование на базе Magento обеих версий, бесплатной (Open Source) и платной (Enterprise). Второй — это Adobe Commerce Front End Developer, то есть сертификат, подтверждающий квалификацию разработки веб-интерфейсов. Третий — Adobe Commerce Business Practitioner, данный сертификат подтверждает, что я разбираюсь в Magento платформе очень хорошо и владею всеми передовыми практиками по внедрению данной платформы в бизнес клиента.
А есть ли у Вас награды?
Денис Копылов: (смеется) Ранее каждый год Magento отбирала и награждала несколько человек, которые внесли существенный вклад в развитии платформы, на конференции Meet Magento. За последний 2021 год я попал в Топ-5 мейнтейнеров, однако этот год выпал на год пандемии, были разные ограничение и, к сожалению, награждений не было. Не знаю, будет ли повторяться данная традиция вновь.
А какой вклад Вы внесли в развитие платформы Magento за прошедший год?
Денис Копылов:Я проверил 352 пул-реквеста, 184 из них уже приняты в ядро, остальные еще на рассмотрении внутренней команды Magento.
Технологии развиваются очень быстро. Как Вам удается поддерживать высокий уровень знаний?
Денис Копылов: Я постоянно слежу за развитием технологий, стараюсь применять все нововведения там, где это необходимо, а также участвую во всевозможных конференциях и встречах (т.н. «митапы»), где общаюсь и делюсь опытом с коллегами.
Как пришли к идее создать собственную команду?
Денис Копылов: Мы работаем под торговым знаком «Magenius. Team». Идея создать команду появилась в 2016 году после того как много клиентов захотели со мной сотрудничать. Я понял, что в одиночку не потяну, и принял решение создать свою команду. Команду решил готовить самостоятельно, согласно своего видения того, какие стандарты должны соблюдать разработчики, чтобы на выходе был качественный код. Первый клич я пустил по знакомым, дальше заработало сарафанное радио.
Сколько человек в команде сегодня? Какое количество проектов реализовано совместно?
Денис Копылов: Сегодня в моей команде шесть разработчиков, в портфолио у нас больше десяти проектов.
Имеются ли в Вашем портфолио проекты с крупными/известными компаниями?
Денис Копылов: Если говорить о российских компаниях, то во времена сотрудничества с агентством TagesJump мне посчастливилось работать с такими компаниями как крупнейшая аптечная сеть России «Ригла», TagesTrade и «Строймир» – лидеры по продаже стройматериалов. В числе крупных зарубежных клиентов — RoyalRobbins, Stackedskincare, Floranext.
Какие проекты из данного списка являются для Вас самыми интересными? Хотели бы о них рассказать?
Денис Копылов: Каждый проект по-своему интересен, но я бы хотел отдельно выделить работу над таким проектом, как Floranext. Эту платформу используют свыше тысячи цветочных компаний в более чем двенадцати странах. Данная компания предлагает такие SaaS-решения, как интернет-магазин, точки продаж (POS-система), программное обеспечение для доставки цветов, менеджер предложений свадебных и других мероприятий от цветочных магазинов, технологии управления магазинами, как для местных, независимых цветочных магазинов, так и для крупных мультимагазинов. И все это построено на базе Magento. В настоящее время Floranext является первым поставщиком облачного программного обеспечения в цветочной индустрии.
Расскажите о проекте, который команда реализует в настоящее время?
Денис Копылов: Мы работаем с Bragard USA, крупнейшим поставщиком профессиональной одежды для шеф-поваров всего мира. Это очень крупный клиент и у него большой интернет-магазин. Сначала мы помогали мигрировать с Magento 1 на Magento 2, то есть с первой версии платформы на вторую. На следующем этапе проекта интернет-магазин перешел к нам на поддержку. Сейчас мы поддерживаем и развиваем его по части запросов от клиентов.
Вы планируете выпустить руководство по Magento на русском языке. Что это будет за книга? Руководство будет только в электронном виде или и на бумаге тоже?
Денис Копылов: Я хотел бы выпустить и на бумаге, и в электронной версии. Это будет сборник «лайф-хаков», связанных с разработкой на Magento, то есть в ней будет собран опыт, накопленный мной за годы решения реальных задач на этой платформе. Книгу можно будет использовать для подготовки к сертификации.