Найти тему

Илья Лямкин: Как создать инструмент для разработчиков по всему миру

Библиотека Dev-to-JS — это быстрый и компактный клиент для работы с сайтом Dev.to. С его помощью можно публиковать статьи, скачивать материалы, смотреть статистику. Dev-to-JS имеет открытый код и поэтому уже несколько тысяч разработчиков работают с библиотекой и используют ее принципы для создания своих инструментов. Автор Dev-to-JS Илья Лямкин поделился своими секретами разработки востребованного ПО и дал советы начинающим IT-инженерам.

Илья, я знаю, что вы успели поработать в Spotify, Meru Health и FREE NOW. Как появилась идея создания Dev-to-JS, и какие цели вы ставили перед собой при запуске этой инициативы?

Чтобы активно развиваться в IT, нужно регулярно изучать множество статей и новых материалов — чем я всегда и занимался. Одним из моих любимых порталов был Dev.to — я читал там статьи коллег и публиковал материалы сам. У меня возникла идея создать платформу, с помощью которой я мог бы автоматически публиковать материалы и в своем блоге, и на Dev.to, и на других сайтах. Так я и приступил к созданию инструмента Dev-to-JS. Я занимался проектом ежедневно после основной работы — я считаю, что каждый разработчик должен развиваться, изучая дополнительные материалы, и создание Dev-to-JS стало для меня таким способом развития. Сейчас публикация статей — это лишь одно из применений Dev-to-JS. Еще на начальном этапе я планировал расширять функционал, так как хотел изучить методы создания SDK — библиотеки для работы с API. Я также хотел впоследствии опубликовать свой инструмент на open source репозитории, чтобы другие разработчики могли его использовать.

Какие ключевые проблемы в сообществе разработчиков JavaScript вы стремились решить с помощью Dev-to-JS?

В тот момент было достаточно сложно интегрировать API в свой код. В основном, все разработчики писали уникальный код под каждый API — всё это было сложно стандартизировать и документировать. И учитывая, что с такой задачей на каждом проекте разработчик сталкивался только один раз, он не старался сделать ее качественно. Я решил сделать структурированный, понятный и легко масштабируемый инструмент, который помогал бы соединяться по API с сайтом и поддерживал различные задачи — публиковал текст, скачивал материалы и т.д. Другие разработчики могли установить мою библиотеку на своем ПО или познакомиться с методами, которые я использовал, и применить их для своих внутренних API, библиотек, сайтов. Они могли в несколько кликов подключить на сайт весь функционал библиотеки без написания своего кода.

Как библиотека способствует профессиональному развитию и карьере разработчиков JavaScript и кому она может быть полезна, новичкам или экспертам?

Код Dev-to-JS доступен публично — разработчики могут свободно изучать его и применять его принципы для развития собственных проектов. Это помогает понять, как тестировать SDK, как собирать библиотеку в минимальный размер, чтобы можно было быстро скачивать контент на свои девайсы, как активно использование Typescript. Я думаю, что и новички, и эксперты могут почерпнуть что-то интересное из использования моей библиотеки. Новички скорее будут использовать Dev-to-JS как готовую библиотеку и не делать много изменений. А эксперты могут посмотреть исходный код программы и взять какие-то части, чтобы улучшить собственные продукты в компании. Сейчас уже около 5 тысяч разработчиков скачали библиотеку и попробовали ее использовать.

Какие стратегии вы используете для обеспечения качества контента, и как поддерживаете его актуальность?

В экосистеме Javascript всё постоянно обновляется, поэтому я настроил нотификации на эти события, и регулярно обновляю пакеты, которые использовал в Dev-to-JS. Таким образом, библиотека тоже обновляется. Это важно, чтобы избежать багов и уязвимостей. И так как это open source библиотека, иногда приходят люди, которые хотят что-то добавить или изменить. И тогда я либо предоставляю возможность им самим дополнить или поправить код, и затем проверяю корректность и обновляю библиотеку, либо корректирую код сам. Конечно, я добавляю не все функции, о которых меня просят — если так делать, то получится очень большая и громоздкая библиотека с огромным количеством багов. Поэтому я оцениваю целесообразность доработки и качество предлагаемого решения — написан ли код в нужном формате, безопасен ли он, не противоречит ли остальному коду. Мелкие изменения я могу внести в течение пары дней, а на крупные могут уйти годы. Мне важно пообщаться с людьми, которые предлагают свои доработки, понять, почему они хотят внести ту или иную корректировку. Также при подключении библиотеки к сайту нужно постоянно проверять, что сам API сайта не поменялся — например, Dev.to может изменить какие-то свои методы. Нужно регулярно за этим следить, иначе инструмент не будет работать.

Как сообщество реагирует на изменения в экосистеме JavaScript? Были ли на Dev-to-JS дискуссии, которые повлияли на развитие самого языка или его инструментов?

Экосистема очень активно изменяется, и каждый день появляются новые методы или библиотеки, которые предлагают новые варианты создания продуктов. И всегда есть много способов делать одни и те же вещи — можно выбрать, какой вариант для вас проще и эффективнее. С точки зрения Dev-to-JS, я думаю, что в основном импакт был в сфере разработки SDK для API — то есть библиотеки для управления API. Я видел потом много других библиотек, которые были созданы похожим образом — использовали тот же самый способ, структуру для файлов и инструменты. Поэтому Dev-to-JS повлиял и на то, как люди подходят к созданию таких библиотек — как пишут тесты, добавляют типы данных и т.д. Я думаю, что Dev-to-JS повлиял и на скорость создания подобного ПО — то есть у разработчиков появился прототип для быстрого и эффективного создания таких инструментов.

Как вы видите будущее проекта? Какие функции или возможности вы планируете добавить для улучшения опыта разработчиков?

Сейчас я изучаю возможность оптимизировать библиотеку, чтобы она была меньше, быстрее загружалась и эффективнее работала у всех клиентов.

Какие советы вы могли бы дать разработчикам, которые только начинают свой путь в JavaScript?

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

Также важно следить за обновлениями, новым функционалом и методиками. Можно читать об этом в статьях, ходить на конференции или смотреть их онлайн. Получив базовые знания, нужно обязательно практиковаться самому, создавать свои проекты, которые интересны лично вам — это очень важно.

Подробнее на it-world.ru