4.14. Как создать свою библиотеку
Как создать свою библиотеку
Библиотеки и пакеты, которые используются через 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.