Дробить программу или писать целиом?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
azsx
энтузиаст
Сообщения: 959
Зарегистрирован: 16.11.2015 05:38:32

Дробить программу или писать целиом?

Сообщение azsx »

Есть задача, состоит из 5 подпрограмм. Сегодня я всё запихнул в один проект и компилирую целиком, в итоге он занимает 4 мб. В связи с желанием переехать на консоль, вопрос, а есть какие то плюсы в том, чтобы разбить задачу на 5 (впоследствии 15) частей и под каждую подпрограмму компилировать отдельную программу?
Особенность моей программы в том, что она не имеет никакого взаимодействия с пользователем кроме показа логов и двух состояний (работает, не работает). Таким образом если разбить их на 15 программ можно просто запускать и выключать программы. Если всё пихать в одну программу, то программе при запуске просто передаю какую из выбранных подпрограмм надо выполнять. Особенность, если выполняется первая подпрограмма, то остальные 4 не работают совсем никак.
Общее у всех подпрограмм только соединение с одной БД.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Дробить.
Unix принцип - "программа, должна делают что-то одно и делать это хорошо".
stanilar
постоялец
Сообщения: 289
Зарегистрирован: 09.03.2010 18:09:02

Сообщение stanilar »

Если у будущих маленьких программ будут общие части, то их удобнее отлаживать имея одну, хоть и большую, программу. Специфичные части большой программы удобнее отлаживать имея одну маленькую программу.
Свои проекты стараюсь разбивать на на малосвязанные модули, которые отлаживаю в отдельных проектах. Потом собираю один большой проект, в котором отлаживаю именно взаимодействие.
Но у меня такие проекты, что они по любому используются как один файл.
Думаю что в Вашем случае удобнее отлаживать один большой проект, а для использования компилить разные его части в отдельные программы.
azsx
энтузиаст
Сообщения: 959
Зарегистрирован: 16.11.2015 05:38:32

Сообщение azsx »

скалогрыз ясно, спасибо.
stanilar ясно, спасибо. Особенность в том, что общие модули есть (например, процедура replacestr), но это замороженные процедуры, которые я легко копирую с нотепада. А так каждый модуль делает абсолютно свою задачу.
Наверное, я буду комбинировать, но ориентироваться на отдельные приложения.
Ответить