Перейти к основному содержимому

Создание и публикация собственной библиотеки

Разработчику Архитектору Инженеру

Как создать свою библиотеку

В чем суть библиотек в коде?

Программа всё делает и запускается, как готовое блюдо в ресторане - заказываем, едим и получаем результат.

Библиотека - это как кухонный ящик со специями. Сама по себе ничего не готовит, но мы берём нужную специю и используем в своём блюде.

А порой библиотека и вовсе - тайный ингредиент!

Запустить библиотеку нельзя, только подключить. Точки входа нет, а цель - дать инструменты для решения задач.

Пример программы:

# Это ПРОГРАММА (calculator_app.py)
def calculate(a, b):
return a + b

if __name__ == "__main__":
# Сама запускается и спрашивает пользователя
x = int(input("Введите число: "))
print(f"Результат: {calculate(x, 10)}")

Пример библиотеки:

# Это БИБЛИОТЕКА (calculator_lib.py)
def calculate(a, b):
return a + b

# НЕТ запуска от себя! Только функции, классы, переменные

Чтобы оформить код как библиотеку, надо просто убрать точку входа и весь код, который что-то делает сам по себе или автоматически. Оставляем только функции, классы и константы.

Зачем создают библиотеки?

  1. Чтобы не изобретать велосипед.
  2. Чтобы сделать код понятнее.
  3. Чтобы один раз написать и везде использовать.
  4. Для командной работы.

Play ITЗагрузка интерактивного демо…


Алгоритм создания библиотеки

Библиотеки и пакеты, которые используются через import, using, require – это просто код других разработчиков, оформленный особым образом и загруженный в специальные хранилища. Любой может сделать такой же!

  1. Сначала нужна задумка – "зачем нужна библиотека?". Библиотекка должна решать одну конкретную задачу, должна быть независимой от других частей проекта, и должна помочь другим легко подключить её и использовать. Пример – нужно написать функцию, которая из любого текста делает URL-дружелюбный "privet-mir".
  2. Написать код – причём, не нужно писать всё сразу, главное – сосредоточиться на одной простой задаче, и такой код проще будет тестировать, развивать, делиться им.
  3. Оформить код как библиотеку. Важно добавить описание, версию, автора и лицензию, а также подготовить хороший файл README (текстовый документ, который помогает другим понять, зачем нужен пакет).
    • C# - Class Library (.dll);
    • Java (Maven) – JAR-файл;
    • Python – модуль или пакет (папка+init.py);
    • JS (npm) – NPM-пакет (js-файл + package.json).
  4. Упаковать библиотеку, подготовив один или несколько файлов, которые можно загрузить в репозиторий:
    • C# - dotnet pack;
    • Java (Maven) – mvn package;
    • Python – setuptools, wheel;
    • JS (npm) – npm pack.
  5. Создать аккаунт в репозитории:
    • C# - NuGet.org;
    • Java (Maven) – Maven Central;
    • Python – PyPi;
    • JS (npm) – npmjs.com.

Как правило, регистрация бесплатна, и сделать это несложно, потребуется лишь почта, логин, пароль, а иногда – верификация.

  1. Загрузить пакет, используя веб-интерфейс или CLI:

Можно задать версию (1.0.0) и потом выпускать обновления.

  1. Написать документацию и рассказать миру, добавив ссылку в GitHub/GitLab, поделиться на форумах, в соцсетях, блогах. Самое главное в этом шаге – получение фидбеков и баг-репортов, а также идей.

Важно: лицензии определяют, что можно сделать с библиотекой:

  • MIT – свободное использование в любых целях;
  • Apache 2.0 – с условиями;
  • GPL – всё, что использует код, тоже должно быть открытым.

В проект нужно будет добавить файл LICENSE.