LINUX.ORG.RU

Как грамотно организовать структуру каталогов под проект?


0

2

Доброго времени суток. Предположим разрабатывается программный пакет «ПП», в него входит несколько программ(отдельные запускаемые приложения) A, B и C. Как псчитаете, как лучше организовать структуру каталогов для разработки? Например, сделать общий каталог

ПП/ 
 |_src/
 |  |_A/
 |  |_B/
 |  |_C/
 |  |_common/
 |
 |_doc/
 |_bitmaps/
или скажем так:
ПП/ 
 |_A/
 | |_src/
 | |_bitmaps/
 |
 |_B/
 | |_src/
 | |_bitmaps 
 |
 |_C/
 | |_src/
 | |bitmaps/
 |
 |_common/
 |_doc/
В директории common будут лежать базовые классы и код для всех трёх проектов. Не хочется изначально городить свалку, может у вас есть предложения, или наработанные годами решения :)

★★★★★

интересна структура разных рельсов. Например, вот: http://www.playframework.com/documentation/2.2-SNAPSHOT/Anatomy

Если используется maven (или какая-то подобная система сборки), рекомендую сделать общий для класса проектов корневой дескриптор/мэйкфайл (для мавена - parent pom), от которого наследовать подпроекты. Common должно быть полноправным проектом, на который другие проекты ссылаются как на зависимость. Документация подпроектов должна лежать вместе с подпроектами, а не в общей свалке.

stevejobs ★★★★☆ ()

На мой взгляд первый вариант удобнее. Так для перехода между модулями меньше телодвижений

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

каталог лучше употреблять, папка - признак дурного тона и комп. не грамотности, имхо, переименуй, пока не набежали тут :) Были знатные срачики на эту тематику давно.

awesomenickname ★★★★★ ()

Большую часть времени дня, на работе, использую windows, там этот сленг в порядке вещей, поэтому сие слово прочно укоренилось в моём лексиконе. Но сути не меняет ))

xterro ★★★★★ ()

Код будет на С++, сейчас склоняюсь к такой структуре:

ПП/ 
 |_src/
 |  |_A/
 |  | |_include/
 |  |
 |  |_B/
 |  | |_include/
 |  |
 |  |_C/
 |  | |_include/
 |  |
 |  |_common/
 |  |_bitmaps/
 |
 |_docs/
 |_tests/
 |_build/  <-- для собранной софтины, как вариант, не уверен она что нужна

Сами «cpp» файлы лежат в директориях A, B и C, их инклудники в их соответсвующих поддиректориях. На счёт docs/ там будут лежать 1-2 pdf файла, т.е думаю можно оставить её как есть. Стоит ли добавлять в директорию common/ поддиректорию include/ как в основных ветках? В принципе, файлов там будет не много, наверно разбивать смысла нет.

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

Нелогично получается... Почему у тебя общая директория bitmaps для всех подпроектов? Если это «отдельно запускаемые приложения», то и их ресурсы должны лежать отдельно друг от друга, ИМХО.

solovey ★★ ()

Все проекты отдельно, общие части симлинками в каждый проект.

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

Дык, в тех срачиках победили сторонники легализации употребления слова «папка». И разработчики nautilus смотрят на твой компьютерный снобизм с недоумением. Ты отстал от жизни.

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

Потому что там будет картинок(png 24х24), штук 20-30, они и так все на «виду», проще с ними возиться в одной папке.

xterro ★★★★★ ()

Keep it simple

ПП/ 
 |_A/
 |_B/
 |_C/
 |_common/
 |_doc/
 |_bitmaps/
schizoid ★★★ ()

Мне второй вариант больше по нраву, и вот почему: если человек, не знакомый с деталями проекта, откроет папку ПП и увидит там вместо src подпапки _A, _B, _C, то ему сразу станет ясно, что проект состоит их трёх программ.

Если же он, открыв ПП, а затем src, увидит те же три подпапки, то наверняка возникнет вопрос: что такое _A, _B и _C, модули одного проекта или просто категории исходников?

Короче, мне кажется, что если нужно показать деление проекта на модули, то лучше это сделать на как можно более высоком уровне иерархии.

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

Тоже бесит. Какая нафиг разница - папка/директория... Не пофиг ли?

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

папка - признак дурного тона и комп. не грамотности

Папка - это детектор снобизма и илиты.

По теме: второй вариант логичней ибо собирает все относящееся к подпроекту в одном каталоге.

F457 ★★★★ ()

В общем, сделал по второму варианту :)

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