Разработка сложных компонентов: деливерим быстро, поддерживаем легко
Lamoda — это технически сложный продукт, которым пользуются 10 миллионов пользователей ежемесячно, насчитывающий более 100 внутренних подсистем. Вершина этого айсберга – интерфейс онлайн-магазина, или фронтенд. Наша команда занимается разработкой и поддержкой UI десктопного и мобильного сайтов, тех частей нативных приложений для iOS, Android, которые сделаны на WebView, а также разными маркетинговыми «добавками» (это баннеры и лендинги).
В своей работе мы, конечно же, используем компоненты. Компоненты нам попадаются всякие, но есть и такие, которые по праву можно назвать сложными. Вы сразу подумали про навороченные формы или эффектные графики? Я вас удивлю, но даже обычное модальное окно может создать проблемы в разработке. Около года назад на мои плечи легла задача разработать этот с виду несложный компонент, в итоге вылившаяся в три календарных месяца работы. К счастью, из этого неуклюжего опыта я вынес три урока – три принципа, которыми сегодня с вами и поделюсь, чтобы вы не наступали на те же грабли и сделали свою работу эффективней.
Сразу оговорюсь, что мы в компании используем стек на основе Vue.js. Но если у вас React или Angular, эта статья все равно будет полезна, так как выделенные мною принципы универсальны.
Автоматическое обучение моделей с помощью Vowpal Wabbit
Блуждая по нашему сайту вы, возможно, заметили такие полки рекомендаций «С этим товаром покупают» или «Популярные товары». Для персонализированного ранжирования товаров в этих полках мы используем модель из фреймворка Vowpal Wabbit, написанного на языке C. Другой алгоритм отбирает определенный набор товаров, который может показываться на этой полке, а задача Vowpal Wabbit – предсказать вероятность того, что пользователь кликнет на какой-либо товар.
В этой статье расскажу, как мы:
- составляем рекомендации, которые отображаются на сайте;
- обучаем модели, которые эти рекомендации делают;
- и почему мы пришли к тому, что необходимо автоматизировать весь процесс обучения моделей.
“А вдруг наших спикеров схантят?!” Зачем и как учить инженеров выступать
Если вам интересно, какую практическую пользу приносят компании доклады сотрудников на конференциях — или уже хочется развивать культуру выступлений, но нанимать DevRel'а в планах нет — я думаю, наш опыт будет полезен.
Lamoda x Joker 2020
У Lamoda огромный и сложный склад: 40 000 м², миллионы товаров на полках, тысячи людей — и все это мы автоматизируем на Java через WMS (Warehouse Management System).
На нашем стенде мы рассказываем о том, как подружили Kotlin с бэкендом, строим модульную архитектуру, позволяем разработчикам разрабатывать, избегая лишних встреч. А еще мы будем травить байки на стенде — под катом расписание и игра-квест, где можно почувствовать себя частью команды.
Использование Azure DevOps от разработки до сборки релиза в Dynamics AX 2012
Меня зовут Игорь Глухов, я разработчик MS Dynamics AX в компании Lamoda. В этой статье речь пойдет о том, как мы начали использовать в качестве контроля версий Team Foundation Server и Azure DevOps в Dynamics AX 2012 и как стали применять контроль версий для подготовки релизов.
Ниже расскажу все подробности:
- История изменений: с чего начали;
- Контроль версий: синхронизация и подключение среды разработки;
- Подключение Test и Prerelease к контролю версий;
- Как происходит сборка релиза сейчас и какие результаты получили на выходе.
Технорадар Lamoda 2020: что изменилось за два года
Технические доклады Lamoda на GolangLive 2020
Ниже расписание мини-докладов от наших инженеров и игра-квест, где можно выиграть электросамокат Ninebot KickScooter MAX G30P.
Как мы оркестрируем процессы обработки данных с помощью Apache Airflow
В этой статье я расскажу:
- что за зверь этот Airflow, из каких компонентов состоит и как они между собой взаимодействуют
- про основные сущности Airflow: пайплайны, которые называются DAG, Operator и еще про несколько вещей
- как преуспеть в разработке на Airflow
- как мы внедрили генерацию пайплайнов и так называемое «декларативное писание пайплайнов»
- про плюсы и минусы использования Airflow
Как создать шаблон описания системы и начать его использовать
Меня зовут Александра Камзеева, я работаю системным аналитиком уже 9 лет, из них 3.5 года в Lamoda. Я много читаю, анализирую текущую документацию и создаю новую. В работе я всегда структурирую информацию и делаю её максимально удобной.
Всё на продажу: как мы наладили бизнес-процессы для Lamoda и стали продавать их партнерам
Если совсем просто, то BPA – это такая централизованная сеть, которая объединяет службу доставки, огромный склад и систему управления заказами, с разработкой и интеграцией с партнерами. Все это обвязано отчетами и аналитикой. Мы проектируем и пишем все сервисы по взаимодействию этих систем и предоставлению похожих услуг партнерам.
Путь разработчика
Буду рад любой дискуссии в комментариях под статьей: вопросы, мнения, опровержения!
Наблюдательный пост пессимиста: технические и концептуальные решения в системе мониторинга Lamoda
Раньше я был тимлидом, и в моем ведении была пара критикал-сервисов. И если в них что-то шло не так, это останавливало реальные бизнес-процессы. Например, заказы переставали уходить в сборку на складе.
Недавно я стал дирекшн-лидом и теперь отвечаю за три команды вместо одной. У каждой из них в ведении есть IT-система. Мне хочется понимать, что происходит в каждой системе и что может сломаться.
В этой статье я поговорю о том,
- что мы мониторим,
- как мы мониторим,
- и самое главное: что мы делаем с результатами этих наблюдений.
Как настроить real-time data processing на летящем корабле
Недавно мы внесли большие изменения в нашу e-commerce платформу: перешли к событийной (events driven) архитектуре и добавили обработку данных в реальном времени. На этом примере я хочу поделиться опытом того, как мы реализуем эволюционный подход к изменению архитектуры.
Самомотивация технаря: уравнение прокрастинации, эффект шредера и трюки с едой
Когда занимаешься наукой, иногда приходится делать не очень увлекательные вещи. Например, заполнять бюрократические бумажки, писать статьи и делать публикации в журналах, выступать на конференциях. Иногда очень тяжело себя заставить. Я два раза писал кандидатскую диссертацию в разных странах, и каждый раз это шло через усилие. В тот момент я задумался: наверняка есть люди, которые испытывали то же самое, и возможно, у них есть фреймворк, который можно использовать. Так и оказалось! Я нашел несколько интересных решений и опробовал на себе.
Этими находками я решил поделиться в этой статье.
- Поговорим про мотивацию самого себя, а не кого-то другого;
- Узнаем, что такое мотивационное уравнение и как его использовать;
- Разберём, как влиять на факторы мотивации;
- И какие есть сервисы и инструменты для этого.
Это статья не про мотивацию сотрудников Lamoda, а про мотивацию, которую я нашел для себя.
Challenge accepted или какие задачи решают инженеры Lamoda
Унифицируй это: как Lamoda делает единообразными свои Go сервисы
Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и обратную сторону: из-за неё возникает множество способов решить одну и ту же задачу.
Казалось бы, насколько сильно может отличаться один микросервис, который ходит в базу данных, от другого микросервиса, который ходит в соседнюю базу данных? Например, одна команда использует Go 1.9, glide, стандартный database/sql и одну структуру проекта, а в это же время другая команда использует Go 1.13, modules, sqlx и, конечно же, другую структуру проекта.
Когда один микросервис в компании отличается от другого, а он, в свою очередь, отличается от третьего — это замедляет разработку. А медленная разработка — это убытки повод для оптимизации.
Меня зовут Алексей Партилов, я техлид команды web-разработки в компании Lamoda. В этой статье я расскажу, как мы справляемся с разношерстностью около 40 наших микросервисов на Go. Статья будет полезна разработчикам, которые только вливаются в Go и не знают, с чего начать более сложный проект, чем “helloworld”.
Разработка первого проекта на платформе Microsoft Dynamics 365 For Finance and Operations
Я расскажу про подходы, которые мы использовали, про ошибки, которые допускали, поделюсь знаниями и приобретенным опытом. Эта статья может быть интересна тем, кто начинает разработку проекта в D365 или только задумывается об этом.
Это вольная расшифровка доклада с митапа Mycrosoft Dynamics 365 & Power Platform Meetup.
DataMatrix или как правильно маркировать обувь
Поэтому мы хотим поделиться опытом с теми, кому еще только предстоит маркировать одежду, шины, парфюм и т.д. В статье описан ряд отраслевых стандартов, некоторая нормативная документация и личный опыт. Статья предназначена в первую очередь для интеграторов и разработчиков, которым только предстоит разбираться в этом проекте.
Мой путь QA инженера: через выгорание к тестированию в кайф
Привет! Меня зовут Люба, и я QA инженер команды разработки систем для контакт-центра в Lamoda.
Недавно исполнилось три года, как я работаю в нашей компании, и это заставило меня задуматься и заново посмотреть на события, которые происходили с момента, как я выбрала эту профессию, на решения, которые я принимала. На каком-то этапе своего карьерного пути я столкнулась с выгоранием, и была близка к тому, чтобы совсем уйти из профессии. Но не ушла, а наоборот продолжаю реализовывать себя в этой же сфере, причем работаю уже сравнительно долго на одном месте, и пока не собираюсь уходить.