2008-09-13 2 views
24

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

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

ответ

16

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

2

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

9

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

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

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

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

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

0

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

11

От 7 Habits of Highly Effective People, Привычка 2: Начните с конца в разуме.

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

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

1

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

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

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

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

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

0

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

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

2

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

  • конечной цели
  • Перечень задач
  • Малые используемые блоки
  • управления Источник

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

0

Если вы хотите превратить его в открытый проект с открытым исходным кодом, то должно быть хорошо прочитано Producing Open Source Software (доступно как онлайн, так и в печати).

2

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

3

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

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

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

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

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

0

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

3

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

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

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

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

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

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

0

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

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