это продолжение дискуссии, которую я начал здесь . Я хотел бы найти лучший способ разбить исходный код Delphi на модули, поскольку у меня нет опыта в этой области. Буду признателен за все ваши предложения.
Разрешите разместить то, что я уже написал там .
Программное обеспечение, разработанное компанией, в которой я работаю, состоит из более чем 100 модулей (большинство из них что-то вроде драйверов для разных устройств). Большинство из них используют один и тот же код - в большинстве случаев классы. Проблема в том, что эти классы не всегда помещаются в отдельные автономные блоки PAS. Я имею в виду, что общий код часто помещается в блоки, содержащие код, специфичный для модуля. Это означает, что когда вы исправляете ошибку в общем классе, недостаточно скопировать модуль PAS, в котором он определен, во все программные модули и перекомпилировать их. К сожалению, вам придется копировать и вставлять фиксированные фрагменты кода в каждый модуль, один за другим, в соответствующий модуль и класс. Это занимает много времени, и это то, что я хотел бы устранить в ближайшем будущем, выбрав правильный подход - пожалуйста, помогите мне.
Я думал, что использование BPL, распространяемых с EXE, было бы хорошим решением, но в нем есть некоторые недостатки, как некоторые упоминали во время предыдущего обсуждения. Наихудшая проблема заключается в том, что если каждому EXE требуется несколько BPL, сотрудники нашей службы технической поддержки должны будут знать, какие EXE нужны какие BPL, а затем предоставить конечным пользователям соответствующие файлы. Пока у нас нет средства обновления программного обеспечения, это будет очень полезно как для наших технических специалистов, так и для конечных пользователей. Они обязательно заблудятся и рассердятся: - /.
Также могут возникнуть проблемы с совместимостью - если один BPL используется многими EXE, модификация этого BPL может быть хорошей для одного EXE и плохой для некоторых других.
Что мне делать, чтобы быстрее исправлять ошибки в так много проектов? Я думаю об одном из следующих подходов. Если у вас есть лучшие идеи, дайте мне знать.
Это решение кажется нормальным в том, что касается редко изменяемого кода. Но у нас также есть блоки pas с функциями и процедурами общего пользования, которые часто претерпевают модификации. Было бы невозможно выполнять одну и ту же процедуру (копирования и перекомпиляции такого количества проектов) каждый раз, когда кто-то добавляет новую функцию в этот файл.
На мой взгляд, сейчас это лучшее решение, но есть некоторые минусы. Если я исправлю ошибку в BPL, каждый программист должен будет обновить BPL на своем компьютере. Что, если они забудут это сделать? Однако я думаю, что это небольшая проблема. Если мы позаботимся об информировании друг друга об изменениях, все должно быть в порядке. Как вы думаете?
Пожалуйста, помогите мне выбрать хорошее решение. Я просто не хочу, чтобы компания теряла на исправление ошибок гораздо больше времени и денег, чем необходимо, только из-за глупого подхода к разработке программного обеспечения. Пока это никого не волновало, и вы можете представить, сколько проблем это вызывает.
Большое спасибо.