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