Подтвердить что ты не робот

Лучший способ начать проект

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

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

4b9b3361

Ответ 1

Единственное, что работает для меня: создайте наименьшую возможную реализацию, которая как-то пригодна для использования, а затем использует ее.

Ответ 2

Из 7 привычек высокоэффективных людей, Привычка 2: Начните с конца в уме.

В любом проекте вам нужна четкая цель, точка, где вы можете сказать "Я закончен". Четкий результат даст вам направление. После этого вы можете начать планировать, как туда добраться. Размер и сложность проекта определит, насколько подробно ваш план нуждается, но в целом вы захотите почувствовать, что вы делаете прогресс в отношении своего плана довольно регулярно.

Мой следующий шаг - набросать дизайн модулей, которые понадобятся, и API-интерфейсы между каждым модулем. Если API-интерфейсы чистые, то модули, вероятно, правы. Затем я начинаю внедрять модули, тестируя, когда я иду.

Ответ 3

Я трачу много времени на размышления о различных аспектах проекта, прежде чем я даже прикасаюсь к клавиатуре.

Я просматриваю то, что я узнал из предыдущих проектов, и записываю его в различных категориях ( "технический", "продвижение" и т.д.)

Персональный проект или нет, я всегда настраивал контроль исходного кода. Git, Mercurial of Bazaar - примеры инструментов управления исходным кодом, которые не навязчивы, потому что вам не нужно настраивать главный сервер. Просто введите простую команду для создания проекта, проверьте свои файлы, зафиксируйте. В будущем, когда вы испортите один из ваших файлов, вы сможете "отменить"

Я также создал легкую систему билетов, чтобы отслеживать 1.essues и 2.ideas Под "легким" я подразумеваю, что если для вас работает два текстовых документа с этими списками, это достаточно хорошо.

Надеюсь, что это поможет.

Ответ 4

Я согласен с уже предоставленным советом:

  • Планирование минимальной реализации, которая делает что-то полезное в качестве первой полной версии.
  • У вас есть конкретные цели в отношении того, чего вы хотите достичь, чтобы что-то сравнить с вашим прогрессом.

Я бы также рекомендовал начать с легкого дизайна общей архитектуры , чтобы вы могли составить дорожную карту о том, как создать свой продукт.

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

И не поймите меня неправильно, я сильный сторонник гибкой разработки программного обеспечения. Вам не нужно много раз планировать свою архитектуру (потому что она обязательно будет развиваться по мере создания и получать отзывы о том, что работает, а что нет), но имеет план создания вашей продукт, основанный на его архитектуре, должен быть полезен для планирования вашего прогресса и установки реалистичных целей.

Ответ 5

Определите цель проекта. Похоже, вы смотрите почти исключительно на решение, а не на проблему.

Программа не полезна для вас или для кого-либо еще, если она не затрагивает некоторые проблемы. Написание кода для перехода - это здорово, но вы начинаете потерять интерес и сосредоточиться после того, как вы начнете - потому что вы смотрите на код, а не на проблему.

Потратьте некоторое время на то, что заставило вас написать этот код. Подумайте, как другие люди могут обнаружить одну и ту же потребность, какой путь может привести к тому же разочарованию, с которым вы работали.

Затем найдите некоторых из этих людей и предложите свое (частичное) решение, и вы получите интерес и предложения среди всех.

ЧТО будет держать вас в вашем проекте. Интерес коллектива, разделение, даже разногласия - это люди, которые нуждаются в программном обеспечении! Не создавайте решения (программное обеспечение) для поиска проблемы (людей). Вы начали с ВАС, с вашими потребностями или желаниями, но сосредоточились на коде и потеряли стимул для проекта.

Программирование намного веселее, когда вы решаете проблемы. Но вам нужно держать проблему перед собой. Совместное использование проблемы создает сообщество. Что это на самом деле все, не так ли?

Ответ 6

Для моих личных проектов я просто погружаюсь прямо. Конечно, ни один из них еще не был достаточно большим, чтобы требовать какой-либо предварительной планировки. Если это будет серьезный проект или относительно большой масштаб, всегда полезно сбросить хотя бы то, что нужно каждой части программы, и представление высокого уровня о том, как они это сделают.

Ответ 7

Как и другие, мои личные проекты всегда имеют:

  • Конечная цель
  • Список задач
  • Малые используемые единицы
  • Контроль источника

В качестве дополнительного мотиватора я стараюсь использовать технологию, которую я никогда раньше не использовал. Изучение чего-то нового обычно становится для меня самым большим мотиватором.

Ответ 8

Легко - не начинайте со всех проектов, с которыми вы, вероятно, потеряете интерес. Проведите больше времени, чтобы убедиться, что вы хотите посвятить себя идее до начала любой работы.

Ответ 9

Это зависит от проекта - насколько он большой?

Если я напишу следующий клон Notepad, я мог бы просто погрузиться в него, если бы захотел свернуть свою собственную операционную систему, потребуется гораздо больше не кодирования.

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

Элемент управления источником. SVN - это пара нажатий клавиш/кликов, поэтому накладные расходы низки, а преимущество велико, полезно попробовать вещи и просто вернуться к более раннему состоянию, если они не работают.

Тогда просто сделайте самый простой protoype, который будет работать - как только что-то на самом деле происходит, гораздо легче получить энтузиазм и добавить больше. Если это будет потрясающе, я найду, я думаю, что проблема решена в моей голове, и этого достаточно.

Ответ 10

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

Ответ 11

Мне нравится Максимилианский ответ. Чтобы немного расширить, мои личные проекты разработаны для решения того, над чем я уже работаю. Поэтому, когда я устаю от повторной работы, я смогу прототип решения. а затем использовать его. Если он будет достаточно похож на один из моих предыдущих проектов, я возьму как можно больше кода и постараюсь улучшить уровень своей работы, сделать его более профессиональным.

Использование Fusion Source Control также важно. Занимает 2 минуты для установки SVN.

Ответ 13

Если ваш личный проект похож на существующий проект с открытым исходным кодом, вы должны подумать о том, чтобы внести свой вклад в этот проект. Несколько небольших вкладов (исправления ошибок и т.д.) более ценный, чем полузавершенный проект.

Ответ 14

Все вышесказанное, но начните цементировать план на месте.....

Пойдите для некоторых инструментов SmartSheet - даже если вы работаете самостоятельно, вы должны указать несколько этапов и дат yEd - и Graphity от www.yworks.com