Что такое модуль?
Компьютерный код имеет тенденцию к росту. Можно сказать, что код, который не растет, вероятно, полностью непригоден или заброшен. Реальный, востребованный и широко используемый код постоянно развивается.
Код, который не способен удовлетворить потребности пользователей, будет быстро забыт и немедленно заменен новым, более качественным и гибким кодом. Будьте готовы к этому, и никогда не думайте, что какая-то из Ваших программ в конечном итоге завершена. Завершение является переходным состоянием и обычно проходит быстро после первого сообщения об ошибке. Сам Python является хорошим примером того, как действует это правило.
Растущий код на самом деле является растущей проблемой. Большой код всегда означает более трудное обслуживание. Поиск ошибок всегда проще, когда код меньше (точно так же, как поиск механических поломок проще, когда механизм проще и меньше).
Более того, когда ожидается, что создаваемый код будет действительно большим (Вы можете использовать общее количество строк исходного кода в качестве полезного, но не очень точного метода оценки размера кода), который Вы можете захотеть (или, скорее, Вы будете вынуждены) разделить на множество частей, параллельно реализованных несколькими, десятками или даже несколькими сотнями отдельных разработчиков.
Конечно, этого нельзя сделать, используя один большой исходный файл, который редактируется всеми программистами одновременно. Это, безусловно, приведет к впечатляющей катастрофе.
Если Вы хотите, чтобы такой программный проект был успешно завершен, у Вас должны быть средства, позволяющие Вам:
- разделить все задачи между разработчиками;
- объединить все созданные части в одно рабочее целое.
Например, некоторый проект можно разделить на две основные части:
- пользовательский интерфейс (часть, которая взаимодействует с пользователем, используя виджеты и экран);
- логика (часть, обрабатывающая данные и выдающая результаты).
Каждая из этих частей (скорее всего) может быть разделена на более мелкие и так далее. Такой процесс часто называют декомпозицией.
Например, если бы Вас попросили устроить свадьбу, Вы бы не все делали сами - Вы бы нашли профессионалов и разделили задачу между ними.
Как разделить часть программного обеспечения на отдельные, но взаимодействующие между собой части? Это вопрос. Модули - вот ответ.