Я работаю над большим проектом, который включает в себя сервер, некоторые плагины для управления устройствами, которые могут быть загружены в процесс сервера, а также клиенты, которые могут подключаться к серверу. Я ищу лучшую практику для структурирования структур, которые в конечном итоге должны будут существовать.
Существуют файлы заголовков, которые совместно используются клиентом, сервером и плагинами, а также некоторые заголовки, специфичные для каждого аспекта системы. Иногда заголовки разделяются только между клиентом и сервером или сервером и плагином. Аналогичным образом, существует общий код, который может использоваться всеми тремя аспектами проекта, а также код, который необходим только для одного конкретного аспекта.
Когда проект будет завершен, нам потребуется выпустить клиентское приложение и API для разработчиков плагинов, чтобы сторонние разработчики могли разрабатывать их.
Я не уверен, как правильно структурировать фреймворки, необходимые для поддержки этого.
Нужно ли иметь 2 отдельных фреймворка? Или я могу иметь 1 фреймворк, который включает в себя все заголовки и предоставляет 2 отдельные библиотеки?
Если мне нужно иметь 2 отдельных каркаса, что мне делать с заголовочными файлами, которые совместно используются всеми аспектами системы? Я не хочу копировать их в каждую платформу, чтобы избежать возможных проблем с версиями.
Будет ли приемлемым вариант для 3-й структуры заголовков?
Кто-нибудь может порекомендовать лучший способ структурирования такого рода вещей с помощью Frameworks на OS X?