LINUX.ORG.RU

Библиотека С++. Стандарты?.

 ,


0

4

Привет всем. Интересуют доки, как оформлять правильно либы, писаные на С++. Где и как должны лежать исходники (название директорий) и отдельно ли от заголовков. Есть вообще какой стандарт по этому поводу? Глянул несколько либ, больших и не очень - разброд и шатание. Или оно так и есть? кто как хочет, тот так и пляшет? В конторах тоже одни требуют одно, другие - другое, внутренние всякие стандарты...

Есть либа (RPC с колбеками и евентами) в состоянии кучи исходников, хочу оформить как полагается или, хотя бы, красиво, куда читать?


Посмотри на другие проекты и выработай свой свобственный стандарт. Мне нравятся Qt-шные либы.

И да, документация _намного_ важнее структуры диреторий.

trex6 ★★★★★
()

Понял. Так и думал. :) Но, все ж, надеялся, что то-то упустил.

Доки - это верно. Как-то найти время надо за них засесть.

Спасибо за ответы.

villu
() автор топика

http://www.apibook.com/blog/
Вот, почитай, из глобальных трудов на эту тему больше ничего и не припомню.
Правда там дизайн и архитектура, а «где лежать исходникам» - вопрос не столь критичный.

Reinar
()
Ответ на: комментарий от Reinar

Судя по описанию - интересно. Спасибо. Надо прикупить.

villu
() автор топика
Ответ на: комментарий от trex6

Посмотри на другие проекты и выработай свой свобственный стандарт.

Плюсую.

Мне нравятся Qt-шные либы.

На вкус и цвет...

И да, документация _намного_ важнее структуры диреторий.

Если будет бардак в структуре, то документация не поможет.

andreyu ★★★★★
()

Где и как должны лежать исходники (название директорий) и отдельно ли от заголовков

Важно то, где они будут лежать после установки библиотеки. От этого и пляшем. Мне, например, не нравится иметь отдельное дерево для исходников и заголовков — храню всё вместе тупо в projname/src, а понадобится оформить библиотеку — система сборки всё разрулит.

Главное что нужно соблюдать — логичность разделения по сущностям (раскидываем классы/функции по файлам и если надо по поддиректориям) и минимизацию взаимозависимостей (зачастую приходится пройтись по каждому заголовку и перечитать его от начала до конца, чтобы убедиться что в нём нет лишних #include)

Ещё нужно сразу решить для себя — нужно ли париться об обратной бинарной совместимости, и применить меры заранее если так.

jeuta ★★★★
()
Ответ на: комментарий от dib2

Ну, по ссылке - джава, конечно, но главные принципы построения энтерпрайзного софта там соблюдены.

Waterlaz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.