💡 Как решать сложные задачи
Сегодня я писал утилиту wget на уроке с учениками. Это программа, которая скачивает файлы из интернета. Акцент был на том, чтобы скачивать сайты. Скажу честно, сначала это была тяжелая задача для меня. Сложность возникает из-за кучи нюансов, которые держишь в голове. Из-за них не знаешь, с чего начать, как лучше сделать… голова взрывается и хочется просто закрыть ноут. Думаю, знакомое всем чувство.
✔️ Но есть решение - декомпозиция. Сформулируй минимальную рабочую версию. Сделай ее. И составь себе последующие задачи.
Пример:
1) Минимальная версия - написать программу, которая просто скачивает html-страницу в нужную папку
2) Сделать функционал, который скачает все материалы, на которые указывают ссылки из страницы
3) Сделать функционал, который заменит изначальные ссылки на новые ссылки, которые уже будут указывать на локальные скачанные файлы (из шага 2)
4) Добавить рекурсию - чтобы мы также скачивали страницы, на которые указывает наш изначальный сайт
5) Оптимизировать, причесать, рефакторить, все такое
В процессе не думай про то, чистый ли у тебя код. Не думай о следующих задачах, пока решаешь текущую, если это планирование наперед лишь тянет тебя назад.
Естественно, не все задачи облегчаются при декомпозиции. Да и не все задачи декомпозируются. Но этот инструмент точно должно быть в твоем арсенале ✅
Post #554
1.37K

- 👍 31
- 🔥 11
- 👾 6