Обучение C#

Формула программиста
основатель — Волосатов Евгений Витольдович

Как создавать сложные проекты

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

Эпиграф: Разделяй и Повторяй.

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

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

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


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

Когда все части реализованы, начинается самое интересное - создание полной программы.

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


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

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

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

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

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

И вот теперь можно в самом деле начать её создавать.
Да, снова "с нуля", используя все былые наработки.

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

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

Зачем начинать сначала? Чтобы избежать "монстров" и "колосов", которые могут обрушиться, когда уже не ясно, как оно работает.

Программисты любят создавать своё, а не разбираться в старом. И это прекрасно, если только позволяет бюджет :)

Разделяй и повторяй, и будет тебе счастье :)

Автор: Евгений Волосатов

Написать комментарий:

5649. Максим Лапшинов
Максим Лапшинов
ответить
→  Евгений Витольдович  # Статьи / Как создавать сложные проекты / 2016-08-02 14:26

Тогда нестроить забыть об этом а то деньги нужны на материалы. То из воздуха дом непостроишь.


10558. Иван Воронин
Иван Воронин
ответить
# Статьи / Как создавать сложные проекты / 2016-08-02 13:24

отличная идея, есть пара вопросов, но я думаю их лучше будет задать на вебинаре, чтобы потом в записи остались ответы, по 2 урока в день отлично, уже сейчас хочется обрушить кучу вопросов, так как интересуют нюансы системы и её симбиоз с текущим положением дел


1. Евгений Витольдович
Евгений Витольдович
ответить
→  Максим Лапшинов  # Статьи / Как создавать сложные проекты / 2016-08-02 12:45

А если тебе быстро надо построить на даче дом, но у тебя нет ни знаний, ни денег, как тогда?


5649. Максим Лапшинов
Максим Лапшинов
ответить
# Статьи / Как создавать сложные проекты / 2016-07-13 19:24

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





Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.