<Предыдущая | Содержание: | Следующая>
26 - Дизайн сверху вниз
По мере того, как программы становятся больше и сложнее, их становится труднее проектировать, кодировать и поддерживать. Как и в любом большом проекте, часто бывает полезно разбить большие сложные задачи на серию небольших простых задач. Представим, что мы пытаемся описать обычную повседневную задачу, поход на рынок за едой, человеку с Марса. Мы могли бы описать весь процесс как следующую серию шагов:
1. Садись в машину.
2. Поездка на рынок.
3. Припарковать машину.
4. Войдите на рынок.
5. Купите еду.
6. Вернитесь в машину.
7. Ехать домой.
8. Припарковать машину.
9. Войдите в дом.
Однако человеку с Марса, вероятно, понадобится больше деталей. Мы могли бы далее разбить подзадачу «Припарковать машину» на следующие этапы:
1. Найдите место для парковки.
2. Загнать машину в космос.
3. Выключите мотор.
4. Установите стояночный тормоз.
5. Выйти из машины.
6. Заприте машину.
Подзадача «Выключить двигатель» может быть далее разбита на шаги, включая «Выключить зажигание», «Вынуть ключ зажигания» и так далее, пока не будет полностью определен каждый шаг всего процесса выхода на рынок.
Этот процесс определения шагов верхнего уровня и разработки более подробных представлений об этих шагах называется нисходящий дизайн. Этот метод позволяет нам разбивать большие сложные задачи на множество маленьких простых задач. Нисходящий дизайн - распространенный метод проектирования.
26 - Дизайн сверху вниз
программ и, в частности, хорошо подходящей для программирования оболочки.
В этой главе мы будем использовать нисходящий дизайн для дальнейшей разработки нашего сценария генератора отчетов.