Amol Hegana Ответов: 1

Отдельный проект для каждого стороннего функционала


I am developing big product. It consumes so many third party libraries. I don't want to directly depend on it. So kept it seperate. Now i am getting confused, Wheteher i should 
1. Create seperate project for every small component. So many small components, few of them have only 3 to 4 classes. Creating project for these, doesn't sounds good.
2. Club all third party dependencies under seperate project saying third party components. But putting irrelevant part together just because they are Third party doesn't sounds good.

Please suggest.


Что я уже пробовал:

Вызовет ли это проблемы с производительностью, если я создам слишком много небольших небольших проектов?

1 Ответов

Рейтинг:
6

nv3

Арноль, вы имеете дело с одним из самых сложных вопросов в каждом крупном проекте. Нет никакого общего рецепта, которому можно было бы следовать. Для каждого проекта вы должны найти свой собственный способ справиться с этими вещами. Вот несколько соображений для вас, чтобы обдумать:

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

- Существует множество способов организации компонента: коллекция исходных файлов, библиотека объектов, библиотека динамических ссылок, полностью независимый исполняемый файл (процесс)... Определите в каждом конкретном случае, что лучше для проекта, взвесив все за и против.

- Вам понадобится набор правил, как поддерживать совместимость между всеми вашими компонентами. И вся команда должна будет жить по этим правилам. Это иногда самая трудная часть для разработки и реализации.

- Некоторые сторонние компоненты могут быть доступны в исходном коде, другие-только в виде объектной библиотеки или DLL. Как вы собираетесь управлять версиями в любом случае? Есть ли у этих компонентов свои собственные установщики или они могут быть интегрированы в вашу собственную платформу установки и обновления?

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

Удачи вам!