Программное обеспечение, производимое моей компанией, имеет несколько уровней и разбито на два проекта.«Внутренний уровень» является уровнем HAL и напрямую взаимодействует с драйвером для производимого нами оборудования.Это в проекте Visual Studio под названием "xxxHAL".Этот проект встроен в статическую библиотеку.Другие слои вместе образуют клиентский API.Эти «другие слои» находятся в своем отдельном проекте VS и статически связывают файл HAL lib с самого начала.Они встроены в DLL, которую мы распространяем, чтобы клиенты могли создавать свое собственное программное обеспечение.
Мои вопросы:
Весь набор из двух проектов - это недавний редизайн старого API с нуля, и он был построен очень методично.Дизайн API очень объектно-ориентирован, и, на мой взгляд, выглядит достаточно хорошо разработанным.Для конечного пользователя все довольно просто и понятно, поэтому я могу понять мотивацию для создания программного обеспечения на стороне API таким образом.Я думаю, что в основном я чувствую, что если бы я пошел и разработал программное обеспечение с нуля, я бы выбрал другой подход.Есть мысли?