Дмитрий Сухарев, Deel: Технологический прогресс невозможен без open-source технологий

ПО Открытое ПО

29 Августа 2024 17:2029 Авг 2024 17:20 |
Поделиться

Open-source уже давно перестал быть просто альтернативой коммерческому ПО. Это целая философия разработки, которая строится на принципах открытости, сотрудничества и обмена знаниями. А с развитием искусственного интеллекта open-source получает новое дыхание, открывая перед разработчиками еще больше возможностей. Как ИИ меняет мир open-source и какое будущее ждет разработку в целом? Об этом мы беседуем с Дмитрием Сухаревым, автором популярной open-source библиотеки OpenCommit и старшим разработчиком Deel (компании-единорога, создающей глобальную платформу для найма сотрудников).

CNews: Дмитрий, вы успели поработать и в крупных компаниях, таких как Alibaba, и в динамично развивающихся стартапах. Расскажите, как вы пришли к тому, чтобы заняться open-source разработкой?

Дмитрий Сухарев: Технологический прогресс, который вы сейчас наблюдаете, был бы невозможен без open-source технологий — девяносто процентов используемого в проектах кода находится в открытом доступе и используется разработчиками по всему миру, в том числе библиотеки для обучения ИИ.

Я люблю программировать, и мне нравится делиться с сообществом полезными инструментами, которые я разработал, решая одну из своих собственных проблем. Мне интересно работать над проектом вместе с другими энтузиастами и наблюдать как он растет. Работа в Alibaba показала мне, насколько важным может быть доступ к знаниям и технологиям для успешного построения продукта. Когда мы адаптировали Aliexpress для российского рынка, нам приходилось решать множество технически сложных задач, и без существующих open-source проектов нам бы понадобилось в три раза больше времени. Несмотря на активное использование сторонних библиотек, в Alibaba мы писали и выкладывали в открытый доступ большое количество собственных разработок — у компании более 400 репозиториев в open-source, и некоторые из них считаются лучшими решениями на рынке. Работая там, я понял, как поддерживать open-source код и насколько это здорово — получать положительные отзывы от других разработчиков. Позже, уже имея опыт, я начал создавать свои open-source проекты, одним из которых и стал OpenCommit. Особую радость приносит наблюдение за тем, как библиотека, которую ты создал, набирает популярность и все больше людей начинают ее использовать, а особенно вносить свой собственный вклад в ее развитие.

CNews: Вы работали над адаптацией Aliexpress для российского рынка в Alibaba. Расскажите подробнее об этом проекте: какие технические задачи пришлось решать, какие инструменты и технологии использовались, с какими сложностями вы столкнулись?

Дмитрий Сухарев: Адаптация Aliexpress для российского рынка была очень сложным проектом, поскольку требовала перевода огромной уже существующей инфраструктуры, логики и пользовательских интерфейсов. Мы столкнулись с рядом интересных технических задач. Перенос огромной кодовой базы с китайских серверов в Россию предполагает или ее копирование или разработку заново. Мы шли обоими путями одновременно. Какие-то технологии можно было переиспользовать, а что-то было проще собрать заново, потому что нам была нужна всего часть огромного сервиса. Переписывая заново куски старых сервисов китайского Aliexpress мы старались использовали свежий стек технологий, позволяющий проще и быстрее писать и поддерживать код. Из инструментов мы выбирали самые распространенные open-source технологии: React, React Native, Redis, Docker, Mongo, Postgres и огромное количество своих собственных разработок внутри Alibaba.

Несмотря на то, что мы использовали мощные инструменты и технологии, перед нами стояли серьезные вызовы. Например, одна из самых больших сложностей была обеспечение высокой производительности и стабильности платформы перед 11.11 — самым крупным промо-ивентом Alibaba, на которое приходился пик нагрузки. Мы должны были убедиться, что платформа сможет выдержать наплыв миллионов пользователей и сервера обработают огромный объем запросов в секунду.

CNews: Расскажите о своих наиболее значимых проектах в Deel, например, о проектах по интеграции с Klarna и Coinbase. Как эти проекты повлияли на развитие компании и ее продуктов?

Дмитрий Сухарев: В Deel мне довелось поработать над очень интересными проектами, связанными с интеграцией нашей платформы в такие крупные сервисы, как Klarna и Coinbase. Klarna и Coinbase — настоящие гиганты в своих областях! Klarna, например, — это огромная платформа для онлайн-платежей, а Coinbase — ведущая криптовалютная биржа.

Моя задача заключалась в том, чтобы помочь этим компаниям внедрить Deel в свои системы. Я обеспечивал техническую сторону интеграции и общался с командами со всех сторон, чтобы все прошло гладко. Какие-то части интеграции приходилось программировать на стороне Coinbase, но коммуникация была построена отлично.

Сложность технической задачи была не только в том, чтобы интегрировать существующие процессы Klarna и Coinbase, но и построить переиспользуемое решение, которое впоследствие бы использовалось для остальных наших клиентов. Что мы успешно и реализовали с моей командой, сейчас мы поддерживаем множество нативных интеграций с различными HR системами, например BambooHR и Workday.

CNews: Вы работали в UK Royal Collection Trust (RCT). Что вы там делали, какие задачи решали? Какие технологии использовались?

Дмитрий Сухарев: Работа в UK Royal Collection Trust (RCT) была интересным опытом, но именно сотрудничество с GitNation, организаторами крупнейших open-source конференций, таких как JSNation, React Summit и Web Amsterdam, кардинально изменило мое отношение к open-source разработке.

В RCT я применял свои навыки для создания проекта с большой культурной ценностью — системы онлайн-покупки билетов в музей, которая сейчас используется во многих известных музеях Англии, включая Букингемский дворец и Виндзорский замок. Моя задача заключалась в разработке функционала мобильного приложения, отвечающего за выбор даты и времени посещения, бронирование билетов и онлайн-оплату. Для этого мы использовали Next.js — современный fullstack фреймворк, который позволил создать быстрое и удобное приложение.

Работая над проектом RCT, я параллельно открыл для себя мир конференций. Я посетил JSNation и React Summit, где познакомился с разработчиками со всего мира, узнал о новых технологиях и проникся атмосферой open-source сообщества. Увидев, как люди делятся своими знаниями и создают удивительные вещи совместными усилиями, я загорелся идеей внести свой вклад в open-source. Опыт, полученный благодаря GitNation, вдохновил меня на создание собственных проектов с открытым кодом, и OpenCommit один из них.

CNews: Ваш проект OpenCommit, библиотека для автоматической генерации сообщений к коммитам Git с помощью ИИ, стал весьма популярным в сообществе разработчиков. Как родилась идея этого проекта и почему он так полюбился пользователям?

Дмитрий Сухарев: OpenCommit — это наглядный пример того, как open-source помогает решать реальные, повседневные проблемы, с которыми сталкиваются разработчики. Идея возникла из моей собственной потребности автоматизировать рутинные задачи. Писать сообщения к коммитам — задача не сложная, но когда делаешь это по несколько раз в день, начинаешь задумываться об оптимизации. Так и появилась мысль поручить это ИИ, тем более что текстовые модели уже тогда демонстрировали впечатляющие результаты в генерации различного контента.

Проект получил популярность по нескольким причинам. Во-первых, OpenCommit решает актуальную проблему, с которой сталкивается практически каждый разработчик. Во-вторых, проект прост в использовании и имеет открытый исходный код, что делает его доступным для всех. И, наконец, OpenCommit постоянно развивается благодаря вкладу сообщества, что делает его все более удобным и функциональным. Мы поддерживаем все новые модели от OpenAI, Google и Anthropic, и даже модели, запускаемые локально с помощью open-source библиотеки Ollama.

CNews: Искусственный интеллект все активнее проникает в разные сферы нашей жизни, и разработка программного обеспечения — не исключение. Насколько, по-вашему, тесно сегодня связаны open-source и ИИ?

Дмитрий Сухарев: Связь между open-source и ИИ сегодня очень тесная и только укрепляется с каждым днем. Open-source стал плодотворной почвой для развития ИИ, предоставляя доступ к огромному объему данных и готовых решений. Например, компания Mistral AI выпустила свои флагманские модели на 7B и 30B параметров, которые отличаются высокой производительностью и работают локально, не требуя отправки данных на сторонние серверы. Большое количество исследователей и разработчиков по всему миру выбирают открытый код для своих проектов. В то же время, ИИ всё активнее используется в самом процессе разработки open-source проектов, помогая автоматизировать рутинные операции, анализировать код, искать уязвимости и, что особенно важно, генерировать новый код.

CNews: Как вы видите будущее open source в контексте развития ИИ? Какие тенденции вам кажутся наиболее интересными и перспективными?

Дмитрий Сухарев: Я уверен, что open source и ИИ будут и дальше развиваться в тесном взаимодействии. Open source станет еще более востребованным в эпоху ИИ, поскольку открытый код позволяет создавать более прозрачные, надежные и безопасные ИИ-системы. Мы увидим еще больше open-source проектов, связанных с ИИ, появится множество новых инструментов и платформ для разработки ИИ-приложений. Особенно перспективным мне кажется направление автоматизации разработки с помощью ИИ. Например, сейчас я работаю над библиотекой AI-TDD — это Test-Driven Development + AI. Вы пишете тест для своей программы, а AI пишет код до тех пор, пока этот тест не будет успешно проходить проверку. Конечно, AI-TDD все еще находится на ранней стадии развития, и предстоит еще многое сделать, но уже сейчас понятно, какой потенциал заложен в этом направлении.

CNews: Многие компании сегодня опасаются использовать open-source решения из-за возможных проблем с безопасностью и поддержкой. Что бы вы могли им возразить?

Дмитрий Сухарев: Я бы сказал, что open-source не менее безопасен, чем проприетарное ПО, а во многих случаях даже более безопасен. Открытость кода означает, что его может проверить любой желающий, и это делает open-source проекты менее уязвимыми для атак. GitHub в свою очередь активно решает эту проблему и сообщает вам, если вы используете библиотеку в которой недавно была найдена уязвимость. Что касается поддержки, то многие крупные open-source проекты имеют профессиональную коммерческую поддержку от разных компаний. Кроме того, существует огромное и активное сообщество разработчиков, которые всегда готовы помочь с решением возникших проблем. В OpenCommit мы недавно начали поддерживать локальные модели, которые работают на вашем железе, если вы не хотите делиться своим кодом для генерации git commit сообщения с OpenAI, например, или Anthropic.

CNews: А с какими трудностями, на ваш взгляд, могут столкнуться разработчики, которые только начинают свой путь в open-source?

Дмитрий Сухарев: Каждый разработчик уже использует open-source библиотеки в своих проектах. Конечно, нет никакой гарантии, что ваш проект станет супер популярным, но есть несколько вещей, которые повысят его шансы на успех. Лучшие open-source проекты рождаются из реальных потребностей разработчиков. Если вы столкнулись с какой-то сложностью и не нашли готового решения, возможно, это отличный повод создать свой проект, решая свою проблему. При этом важно делать его не просто рабочим, но и удобным в использовании. Если вы сами с удовольствием пользуетесь своей библиотекой, велика вероятность, что она понравится и другим. Наконец, создав отличный продукт, не бойтесь рассказать о нем миру! Публикуйте информацию о своем проекте на GitHub, пишите посты на Dev.to, HackerNews и других ресурсах для разработчиков. Будьте открыты к обратной связи и готовы к тому, что придется вкладывать время в развитие сообщества вокруг вашего проекта.

Полный текст статьи читайте на CNews