Создание и публикация собственной библиотеки
Как создать свою библиотеку
В чем суть библиотек в коде?
Программа всё делает и запускается, как готовое блюдо в ресторане - заказываем, едим и получаем результат.
Библиотека - это как кухонный ящик со специями. Сама по себе ничего не готовит, но мы берём нужную специю и используем в своём блюде.
А порой библиотека и вовсе - тайный ингредиент!
Запустить библиотеку нельзя, только подключить. Точки входа нет, а цель - дать инструменты для решения задач.
Пример программы:
# Это ПРОГРАММА (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
# НЕТ запуска от себя! Только функции, классы, переменные
Чтобы оформить код как библиотеку, надо просто убрать точку входа и весь код, который что-то делает сам по себе или автоматически. Оставляем только функции, классы и константы.
Зачем создают библиотеки?
- Чтобы не изобретать велосипед.
- Чтобы сделать код понятнее.
- Чтобы один раз написать и везде использовать.
- Для командной работы.
Play ITЗагрузка интерактивного демо…
Алгоритм создания библиотеки
Библиотеки и пакеты, которые используются через import, using, require – это просто код других разработчиков, оформленный особым образом и загруженный в специальные хранилища. Любой может сделать такой же!
- Сначала нужна задумка – "зачем нужна библиотека?". Библиотекка должна решать одну конкретную задачу, должна быть независимой от других частей проекта, и должна помочь другим легко подключить её и использовать. Пример – нужно написать функцию, которая из любого текста делает URL-дружелюбный "privet-mir".
- Написать код – причём, не нужно писать всё сразу, главное – сосредоточиться на одной простой задаче, и такой код проще будет тестировать, развивать, делиться им.
- Оформить код как библиотеку. Важно добавить описание, версию, автора и лицензию, а также подготовить хороший файл README (текстовый документ, который помогает другим понять, зачем нужен пакет).
- C# - Class Library (.dll);
- Java (Maven) – JAR-файл;
- Python – модуль или пакет (папка+init.py);
- JS (npm) – NPM-пакет (js-файл + package.json).
- Упаковать библиотеку, подготовив один или несколько файлов, которые можно загрузить в репозиторий:
- C# - dotnet pack;
- Java (Maven) – mvn package;
- Python – setuptools, wheel;
- JS (npm) – npm pack.
- Создать аккаунт в репозитории:
- C# - NuGet.org;
- Java (Maven) – Maven Central;
- Python – PyPi;
- JS (npm) – npmjs.com.
Как правило, регистрация бесплатна, и сделать это несложно, потребуется лишь почта, логин, пароль, а иногда – верификация.
- Загрузить пакет, используя веб-интерфейс или CLI:
- C# - dotnet nuget push MyLib.dll --source https://api.nuget.org/v3/index.json
- Java - mvn deploy;
- Python - twine upload dist/*;
- JS – npm publish.
Можно задать версию (1.0.0) и потом выпускать обновления.
- Написать документацию и рассказать миру, добавив ссылку в GitHub/GitLab, поделиться на форумах, в соцсетях, блогах. Самое главное в этом шаге – получение фидбеков и баг-репортов, а также идей.
Важно: лицензии определяют, что можно сделать с библиотекой:
- MIT – свободное использование в любых целях;
- Apache 2.0 – с условиями;
- GPL – всё, что использует код, тоже должно быть открытым.
В проект нужно будет добавить файл LICENSE.