LINUX.ORG.RU

История изменений

Исправление knovich, (текущая версия) :

Мне кажется, что если в любом месте из 2500 строк может быть произвольная модификация, то это уже сложно охватить мыслью. Я поддерживаю комментарий Связать версии кода с версиями используемой библиотеки (комментарий)

Надо разделять. Например, логика запускалки будет такой: сначала подключаем один модуль из библиотеки, который задаёт форму импульса (я не знаю, там у вас импульсный или непрерывный режим, но пусть так), обсчитываем распространение импульса в среде, параметры которой тоже как-то заданы. Понятно, что распространение импульса у вас считается всё время по одним уравнениям. Если это не так, то уравнения тоже можно отдельно задавать в другой функции модуля. Потом идёт часть, отвечающая за остывание вашего образца, там тоже более-менее постоянная модель, а меняются, может, какие-то граничные условия, которые, опять же, подключаются из другого модуля. При отсутствии того или иного модуля пусть будет некая функция по умолчанию. Как-то так.

Самое главное, что в запускалку уходят все процедуры, отвечающие за чтение параметров и вывод результатов, и вообще всё взаимодействие с пользователем. Если потом возникнет желание добавить какой-то новый формат данных, то все старые эксперименты можно будет запустить на новой версии. А сейчас придётся писать отдельную программу для преобразования, чтобы запускать старые эксперименты, либо как-то париться с гитом, но мне кажется, оно того не стоит.

P.S. опоздал, ну ладно.

Исходная версия knovich, :

Мне кажется, что если в любом месте из 2500 строк может быть произвольная модификация, то это уже сложно охватить мыслью. Я поддерживаю комментарий Связать версии кода с версиями используемой библиотеки (комментарий)

Надо разделять. Например, логика запускалки будет такой: сначала подключаем один модуль из библиотеки, который задаёт форму импульса (я не знаю, там у вас импульсный или непрерывный режим, но пусть так), обсчитываем распространение импульса в среде, параметры которой тоже как-то заданы. Понятно, что распространение импульса у вас считается всё время по одним уравнениям. Если это не так, то уравнения тоже можно отдельно задавать в другой функции модуля. Потом идёт часть, отвечающая за остывание вашего образца, там тоже более-менее постоянная модель, а меняются, может, какие-то граничные условия, которые, опять же, подключаются из другого модуля. При отсутствии того или иного модуля пусть будет некая функция по умолчанию. Как-то так.

Самое главное, что в запускалку уходят все процедуры, отвечающие за чтение параметров и вывод результатов, и вообще всё взаимодействие с пользователем. Если потом возникнет желание добавить какой-то новый формат данных, то все старые эксперименты можно будет запустить на новой версии. А сейчас придётся писать отдельную программу для преобразования, чтобы запускать старые эксперименты, либо как-то париться с гитом, но мне кажется, оно того не стоит.