Основа успешного магазина. Олег Ехлаков рассказал о роли web-разработчиков
Большинство новых интернет-магазинов закрывается через полгода или год. Специалисты отмечают, что при открытии важно учитывать особенности торговли в онлайне и особое внимание уделять работе сайта.
Число интернет-магазинов в России за последние три года выросло в семь раз – такие данные приводит Федеральное общество сетевой торговли (ФОСТ). Сейчас в этой сфере зарегистрировано более 44 тысяч индивидуальных предпринимателей и почти 4 тысячи юридических лиц. Торговлей в интернете занимаются также более миллиона селлеров — партнеров маркетплейсов. Но большинство стартапов закрывается через полгода или год.
При открытии интернет-магазина важно учитывать особенности торговли в онлайне и особое внимание уделять работе сайта. О том, как современные подходы в программировании влияют на бизнес и какую роль играют web-разработчики в успешной работе интернет-магазина, рассказал профессионал с 18-летним стажем работы в IT, эксперт в области разработки проектов в e-commerce, инженер-программист одной из ведущих российских IT-компаний «Интаро Софт», член известной международной ассоциации инженеров IEEE Олег Ехлаков. Он участвовал в разработке и поддержке нескольких крупных интернет-магазинов России, вывел в лидеры один из мебельных интернет-магазинов России.
— Олег, онлайн-торговля прочно входит в сферу бизнеса. С вашей точки зрения, как программиста, работающего с крупными проектами в этой области, что наиболее важно при открытии интернет-магазина?
— Я могу выделить несколько критически важных моментов, которые часто недооценивают на старте. Во-первых, скорость и стабильность работы сайта. Даже красивый сайт умрет, если он грузится пять секунд или падает при нагрузке. Для магазинов с тяжелыми медиа: 3D-визуализацией, фото в HD — это особенно актуально. Во-вторых, простота оформления заказа. Если процесс усложнен — клиент уйдет. В-третьих, адаптивность под мобильные устройства. За мою долгую работу этот пункт родился, вырос и стал основным. Более 70 % трафика сейчас — с телефонов, а на них особенно сложно работать с большими каталогами. В-четвертых, автоматизация. Ручная работа с данными убивает оперативность. Ну и, наконец, безопасность — защита от DDoS и взломов. Техническая основа зачастую важнее «красивостей». Можно иметь скромный дизайн, но, если сайт быстрый, удобный и не глючит, он уже обгоняет половину конкурентов.
— Вы работаете на своем основном проекте «Столплит» уже десять лет, количество данных на нем выросло на 2000 %. Расскажите, как поддерживать в рабочем состоянии и развивать такую сложную структуру?
— Я занимаюсь в основном техническими вопросами по серверной части кода. Те технические решения, которые хорошо работают на 30 тысячах товаров, совсем не работают на 300 тысячах. Приходится постоянно последовательно развивать код, добавлять современные подходы, интегрировать новые программные продукты. Чтобы все работало быстрее, я решил использовать фоновые и отложенные задачи. То, что раньше вычислялось сразу при обработке запроса от клиента, сейчас выполняется в фоновом режиме.
— Благодаря вашей работе по оптимизации кода затраты компании на серверную инфраструктуру увеличились всего на 140 % вместо десятикратного роста. Какое решение вы предложили?
— С развитием бизнеса ассортимент магазина и число партнеров значительно возросли. Это вызвало технические трудности: добавление одного товара означает создание сотен страниц с учетом городов, где представлен бизнес. Чтобы справляться с такой быстрорастущей нагрузкой, можно просто горизонтально масштабироваться — добавлять количество серверов, которые обрабатывают запросы клиентов. Но это выражается также и в увеличении затрат на их аренду, буквально в десятки раз. Я предложил альтернативное решение — найти узкие места в быстродействии, произвести работу по оптимизации кода. Оптимизация плюс пересмотр нагрузки на серверах позволили уйти от роста затрат на инфраструктуру синхронно с ростом объема данных. Оптимизация кода — это как ремонт в квартире: можно жить и с торчащими проводами и протекающими трубами, но, если все грамотно переделать — будет быстрее, дешевле и безопаснее.
— Насколько часто надо обновлять техническую «начинку» сайта?
— Сайты с долгой историей, которая исчисляется многими годами, рискуют завязнуть в техническом долге, превратиться в монстра, которого программисты пренебрежительно называют «легаси». Я всегда стараюсь идти в ногу со временем. Вовремя переходить на новые версии языка программирования, обновлять ядро движка сайта, сервера баз данных и прочее. Постоянно держать кодовую базу «причесанной»: заменять старые функции и подходы на актуальные. Документировать все внутри кода. Делать самодокументированные страницы админки: любой новый сотрудник должен, глядя на административную страницу, понять, как ею пользоваться. Хорошо документированная и обновленная система ускоряет адаптацию новичков и снижает нагрузку на команду за счет прозрачности процессов и устойчивости инфраструктуры.
— Вы проводите анализ кода новых проектов, которые ваша компания берет на поддержку. Зачем это нужно?
— Анализ кода новых проектов перед принятием на поддержку — это как технический осмотр подержанного автомобиля перед покупкой. Он критически важен и для компании, и для клиентов, поскольку выявляет возможные проблемы и узкие места. Таким образом я прорабатываю риски до подписания договора, чтобы оценить реальные трудозатраты на поддержку. Без такого анализа можно провалить сроки по новым задачам или уйти в минус. Клиенты ценят, когда процесс принятия проекта на поддержку становится более прозрачным. Я не скрываю проблемы, а предлагаю решения. Анализ кода перед поддержкой — это не «придирки», а страховка для обеих сторон. Клиент получает реалистичные ожидания, а мы — проект, который не превратится в кошмар для разработчиков.
— Над интернет-магазином всегда работает несколько специалистов. Как и чему вы обучаете свою команду? Что требуете от нее?
— За годы работы я понял: технологии — это важно, но команда важнее. Раз в неделю я провожу разбор реальных задач из проекта. Коллеги должны понимать причины проблемы, видеть, как принятые ими сегодня решения повлияют на нагрузку, например, через год, можно ли процесс сделать короче и так далее. Я учу команду не только работе с кодом, но и пониманию бизнеса: как их предложения повлияют на прибыль. Хороший разработчик для меня не тот, кто пишет много кода, а тот, чей код приносит пользу бизнесу и не создает проблем другим. Поэтому 50 процентов обучения — это про мышление.
— Как вы оцениваете роль веб-разработчика в успешной работе интернет-магазина?
— Веб-разработчик в e-commerce — ключевой игрок, от которого зависят конверсия, надежность и скорость работы сайта. Ему нужно широко смотреть на задачи: каждая новая идея может улучшить пользовательский опыт, но сломать прежние процессы. Бизнес часто ставит задачи на добавление нового: интеграция с сервисом, авторизация, сбор метрик. Но редко бывает задача на удаление старого. Программист может заметить устаревшие вещи, поднять историю изменений и найти задачи, где это делалось. Это особенно важно для проектов с большой историей. Хороший разработчик должен заботиться о проекте, быть заинтересованным в его развитии и улучшении. Ведь в конечном счете это принесет и ему самому удовлетворение от работы и повышение зарплаты: хороший успешный бизнес — благодарный бизнес.
По материалам: aif.ru