С моей первой попытки создать слишком большую программу, чтобы вписаться в один исходный файл, я продолжаю сталкиваться с проблемами, разделяя их на несколько. Например, что мне делать, если один модуль будет использоваться несколькими другими модулями, которые в конечном итоге будут включены друг в друга. Скажем, linear_algebra.cpp (или .py или что-то еще) требует tensor_operations.cpp, и оба они требуют matrix_operations.cpp. Должен ли я включать matrix_operations.cpp в оба других файла, или просто в один или что? И что, если тогда я добавлю matrix_operations в какой-то другой модуль, что в какой-то момент вдруг появляется необходимость в линейной_алгебре? Весь этот бизнес постоянно меня смущает. Иногда я это понимаю, но должен быть «правильный» способ, чтобы вам не приходилось самостоятельно выяснять.Как структурировать модули?
Итак, где я могу получить руководство о том, как правильно делать этот материал (или, по крайней мере, как они его называют, потому что Google не понимает меня, когда я говорю «такие вещи»)?
Речь идет не только о циклических зависимостях (хотя спасибо за разъяснение, по крайней мере, того). Вопрос более общий: как организовать и структурировать программные модули в общем случае? Есть ли полное руководство? – user2649762
Ознакомьтесь с такими книгами, как * Code Complete * или * Pragmatic Programmer *. Это даст вам некоторые принципы, которые следует соблюдать, например, ослабление сцепления и высокая степень сцепления. Но нет решения «краска по числам» - каждая программа отличается. –