Я ищу несколько советов о структурировании программ Delphi для удобства обслуживания. Я пришел к программированию Delphi через пару десятилетий, главным образом, C/С++, хотя я сначала научился программировать с Turbo Pascal, поэтому мне не неудобно с основным языком. В моем предыдущем опыте работы с С++ и С# я стал преобразованием TDD с помощью cxxtest и NUnit.
Я унаследовал эту программу, которую я теперь отвечаю за сохранение. Он состоит в основном из форм и нескольких модулей данных. Бизнес-логика приложения и доступ к данным в основном разбросаны по формам, а модули данных - это в основном просто места для жизни глобальных объектов ADO. Доступ к базе данных обычно выполняется путем обращения к глобальному экземпляру TADOQuery или TADOCommand, форматированию текста SQL прямо в соответствующее свойство объекта и вызове его метода Open или Execute.
Я пытаюсь привести бизнес-логику в степень инкапсуляции, где она может быть проверена на единицу. Я видел этот ответ, и это имеет смысл, поскольку абстрагирует логику от форм. Мне интересно, что лучше всего подходит для доступа к данным. Я считаю, что модули данных должны выставлять своего рода мини-API для приложений (возможно, со всеми виртуальными методами), чтобы их можно было заменить макетными объектами для тестирования. Ссылка на этот другой ответ показывает некоторые примеры, которые заставляют меня поверить, что я на правильном пути, но меня все еще интересует какой-то документ, о модулях данных. Большинство страниц, которые я могу найти через Google, представляют те же самые примеры обо всех интересных вещах, которые вы можете делать во время разработки, с подключением элементов управления, связанных с данными, к запросам и тому подобному, что меня не очень интересует на данный момент.