libnumerixpp  0.1.3
A Powerful C++ Library for High-Performance Numerical Computing
Создаем и улучшаем нашу библиотеку на C++ с CMake, тестами, документацией и блекджеком: часть 3

В мире программирования создание собственных библиотек - это не просто возможность пополнения своего портфолио или способ структурировать код, а настоящий акт творческого самовыражения (и иногда велосипедостроения). Каждый разработчик иногда использовал в нескольких своих проектах однообразный код, который приходилось каждый раз перемещать. Да и хотя-бы как упаковать свои идеи и знания в удобный и доступный формат, которым можно будет поделиться с сообществом.

Если вы ловили себя на мысли: "А почему мне бы не создать свою полноценную библиотеку?", то я рекомендую прочитать вам мою статью.

Эту статью вы можете использовать как шпаргалку для создания проектов, и не только библиотек.

Некоторые из вас могут подумать что мы изобретаем велосипед. А я в ответ скажу - сможете ли вы прямо сейчас, без подсказок, только по памяти, нарисовать велосипед без ошибок?

Добро пожаловать в третью, скорее всего финальную (наверное) часть статьи! Здесь мы окончательно допишем код, исправим некоторые ошибки.

Первая часть доступна по этой ссылке, вторая часть доступна по другой ссылке.


Итак, в прошлых двух статьях мы сделали:

  • Автоматическую генерацию документации с ее публикацией на GitHub Pages
  • Продвинутую сборку при помощи CMake
  • Инструменты для форматирования и линтинга кода

В этой статье мы будем работать над архитектурной частью, над библиотекой, улучшим ее аспекты, и конечно-же, продолжим писать C++ код.

Внешний вид библиотеки

Человека встречают по одежке, а open source проект - по его описанию, README. Для того, чтобы пользователь мог понять, что к чему, следует в описании отвечать на следующие вопросы:

  1. Какое назначение проекта? Описание должно быть лаконичным и отражающим суть проекта.
  2. Почему проект полезен? Он должен решать определенные проблемы, поэтому необходимо явно написать о них, чтобы потенциальный пользователь мог понять, будет ли библиотека полезной для него. Нужно выделить преимущества своего решения по сравнению с аналогами, желательно с конкретными цифрами и бенчмарками, иначе потенциальный пользователь установит более эффективную или популярную библиотеку.
  3. Как приступить к работе с библиотекой? Этап с установкой и настройкой библиотеки необходимо описать самым детальным образом. Ведь далеко не всегда то, что очевидно вам — очевидно другим. Решением могут пользоваться люди, у которых совершенно другой опыт. Нужно, чтобы любой желающий, кто хочет установить решение, понял, как это сделать.
  4. Где можно получить дополнительную помощь, если она мне понадобится? Обязательно оставить свои контакты или другую предпочитаемую форму взаимодействия.

Можно использовать свой README для ответа на другие вопросы. Например, дальнейшие цели в развитии проекта, информация о лицензиях, важных изменениях в коде.

Для этого можно использовать даже ChatGPT, да простит меня хабро-бог за эту фразу.

Содержание