Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Как одному написать сложную программу?

C__Deep_11-5020-765fd9.10_Site.png

Крупные проекты не появляются на пустом месте. Написать в самом деле большую и сложную программу сразу не получится. Однако выход есть!

Разделяй и повторяй

Лучше всего это правило продемонстрировать на примере. Представим, вы хотите написать программу для решения головоломки Судоку. Чтобы навёл камерой на журнал Судоку и сразу увидел ответ. Круто? Было бы классно. Как написать такую программу?

Сначала нужно разделить её на множество подзадач как технических, так и алгоритмических: — как получить фото с камеры? — как его сделать чёрно-белым? — как выделить область с Судоку? — как распознать цифры? — как решить головоломку? — как показать результат? — как запустить это всё на телефоне?

Далее необходимо в «лабораторных» условиях разобраться с каждым пунктом. Это значит – найти способ решения каждой подзадачи, хорошенько «погуглить», сделать тестовый проектик и реализовать указанный функционал по принципу «лишь бы заработало»: только для того, чтобы поставить галочку, что ты понял, как это делается и что у тебя есть рабочий пример.

Следующий этап

Когда все части реализованы, начинается самое интересное — создание полной программы. Не нужно ставить перед собой задачу сделать суперправильное архитектурное решение. Просто пиши, чтобы работало: — вызывай модуль фотографирования, делай фотку чёрно-белой; — находи область задачки, запускай распознавание; — вычисляй решение и показывай его на экране.

На данном этапе не стоит отвлекаться на оптимизацию, проверку данных, универсальность. Твоя задача – сделать так, чтобы программа могла отработать от начала до конца под твоим контролем.

Что дальше?

Когда всё это получится, тогда можно сделать «Reset» и начать создавать программу «с нуля», имея в запасе функционал для решения каждой подзадачи и опыт их совмещения.

Опять же, не стоит слишком заморачиваться на универсальности и на оптимизации. Впрочем, вы и сами почувствуете, как лучше начать писать эту программу с определённой долей объектно-ориентированности и удобства использования.

Когда и это будет завершено, вы наконец-таки поймёте, как программа на самом деле должна работать. И вот теперь можно и в самом деле начать её создавать. Да, снова «с нуля», используя все былые наработки.

Крупные проекты не создаются на пустом месте

Необходимо сделать несколько итераций: от эскиза до прототипа и рабочего продукта. На каждой итерации продукт будет получаться более качественным и эффективным. Может, не всегда новая версия будет лучше прежней. Но при желании можно вернуться и к прошлой версии, ведь так?

Зачем начинать сначала?

Чтобы избежать «монстров» и «колоссов», которые могут обрушиться, когда ещё неясно, как программа работает. Программисты любят создавать своё, а не разбираться в старом. И это прекрасно, если только позволяет бюджет. Разделяйте и повторяйте, и будет тебе счастье!

А как вы создаёте сложные программы? Пишите в комментариях!

Автор
0 комментариев
Для комментирования необходимо авторизоваться