Определите свою проблему и требования: точно определите, что вы хотите построить и почему. Ничего страшного, если со временем это изменится, но вам нужно начать с какой-то конкретной идеи. Это хорошая идея.
Составьте общий план: определите, какими будут компоненты вашей системы и как они будут сочетаться друг с другом. Каждый компонент должен играть узкую, четко определенную роль. Проработать это на бумаге, вероятно, тоже неплохо.
Выберите платформу: решите, какое оборудование и операционную систему вы хотите использовать, а также какой язык программирования и библиотеки лучше всего подходят для ваших задач. цели (которые вы либо уже знаете достаточно хорошо, чтобы использовать, либо готовы учиться на этом пути). Возможно, вам придется ориентироваться на API-интерфейсы, специфичные для операционной системы. Попробуйте и определите, какими они будут.
Инициализируйте свой проект: с помощью диспетчера пакетов и системы сборки, связанной с вашим языком и библиотеками, инициализируйте новый проект. Должна быть функциональность для интеграции/связывания библиотек, сборки/запуска проекта и запуска тестов. Вы также должны управлять версиями каталога.
Начните создавать прототипы компонентов и писать тесты, одновременно внося эти изменения: создавайте вещи в соответствии с той ролью, которую вы ожидаете от них в вашей системе. Напишите тесты, чтобы убедиться, что они ведут себя так, как ожидалось, на тривиальных и нетривиальных выходных данных, в идеале проверяя максимально возможное покрытие кода. Просмотрите свой код, чтобы убедиться, что он в основном понятен, поддерживает ожидаемые инварианты и правильно обрабатывает крайние случаи. Всякий раз, когда вы вносите небольшие изменения или усовершенствования, фиксируйте их.
Запустите что-нибудь. изменения, которые вы внесли в систему контроля версий. Если у вас есть серьезное и рискованное изменение или вы хотите разработать новую функциональность, которая в значительной степени не зависит от других функций, создайте новую ветвь и объедините ее, как только сможете ее проверить.
Интегрируйте и уточняйте: когда у вас есть компоненты которые вы протестировали, напишите код для их интеграции и тестовые примеры для вашей интеграции. К этому моменту у вас должно получиться что-то похожее на то, что ваша воображаемая программа полностью работает.
Погасить долг: как только у вас появится новая функция или поведение, попробуйте погасить технический долг, рефакторинг кода, чтобы упростить его. работать с. Заполните исходный код документацией.
Форма запроса