Лучший способ начать проект [закрыто]
-
09-06-2019 - |
Вопрос
Когда вы начинаете проект личного программирования, каков ваш первый шаг?Я пытаюсь начать проект, но на данный момент это всего лишь идея.Я получаю их много, погружаюсь прямо в код и через некоторое время полностью теряю интерес или просто забываю о проекте.
Когда вы начинаете, каков ваш первый шаг?вы планируете проект?сделать схему?написать код на бумаге?Как начать проект так, чтобы быть уверенным, что он добьется успеха?
Решение
Единственное, что мне помогает:Создайте минимально возможную его реализацию, которую можно было бы использовать, а затем используйте ее.
Другие советы
От 7 привычек высокоэффективных людей, Привычка 2:Начните с конечной цели.
В любом проекте вам нужна четкая цель, точка, в которой вы можете сказать: «Я закончил».Ясный результат укажет вам направление.Как только вы это получите, вы можете начать планировать, как туда добраться.Размер и сложность проекта будут определять степень детализации вашего плана, но в целом вы захотите регулярно ощущать прогресс в выполнении плана.
Мой следующий шаг — набросать дизайн необходимых модулей и API-интерфейсов между каждым модулем.Если API чисты, то модули, вероятно, правы.Затем я начинаю внедрять модули, тестируя их по ходу дела.
Я провожу много времени, обдумывая различные аспекты проекта, прежде чем даже коснусь клавиатуры.
Я просматриваю то, что узнал из предыдущих проектов, и записываю это в различные категории («технические», «продвижение» и т. д.).
Личный проект или нет, я всегда настраиваю контроль исходного кода.Git, Mercurial of Bazaar — примеры инструментов контроля исходного кода, которые не навязчивы, поскольку вам не нужно настраивать главный сервер.Просто введите простую команду для создания проекта, проверьте файлы и зафиксируйте.В будущем, когда вы испортите один из своих файлов, вы сможете «отменить» его.
Я также настроил легкую систему билетов, чтобы отслеживать 1.ISSUE и 2.IDEAS под «легким», я имею в виду, что если поддерживать два текстовых документа с этими списками, это достаточно хорошо.
Надеюсь это поможет.
Согласен с уже данным советом:
- Планирование минимальной реализации, которая делает что-то полезное в качестве первого полного выпуска.
- Поставьте перед собой конкретные цели относительно того, чего вы хотите достичь, чтобы было с чем сравнивать свой прогресс.
Я бы также рекомендовал начать с облегченного дизайна вашего тела в целом. архитектура так что вы можете иметь дорожная карта о том, как создать свой продукт.
Мне сложно начинать что-то строить, если у меня нет четкого представления о том, как это должно выглядеть хотя бы на первом уровне декомпозиции.Подумайте, что вам нужно помимо функционала:высокая производительность?, сценарии расширяемости?, какие?, цели удобства использования?, высокая масштабируемость?, простота развертывания и установки? и т. д.Спроси себя:Какие компоненты мне придется построить, чтобы достичь этих архитектурных качеств?
И не поймите меня неправильно, я ярый сторонник гибкой разработки программного обеспечения.Вам не нужно тратить много времени на проектирование своей архитектуры (потому что она наверняка будет развиваться по мере того, как вы создаете и получаете отзывы о том, что работает, а что нет), но иметь представление о том, как построить свой продукт на основе его архитектуры. должно быть полезно для планирования вашего прогресса и постановка реалистичных целей.
Определите цель проекта.Похоже, вы ищете почти исключительно решение, а не проблему.
Программа бесполезна ни для вас, ни для кого-либо еще, если она не решит какую-либо проблему.Написание кода, позволяющего двигаться вперед, — это здорово, но после того, как вы начнете, вы потеряете интерес и концентрацию, потому что вы смотрите на код, а не на проблему.
Потратьте некоторое время на обдумывание того, что побудило вас написать этот код.Подумайте, как другие люди могут обнаружить ту же потребность, какой путь может привести их к тому же разочарованию, над решением которого вы работали.
Затем найдите некоторых из этих людей и предложите свое (частичное) решение, и вы вызовете интерес и предложения среди них всех.
ЭТО поможет вам продолжить работу над проектом.Взаимный интерес, обмен мнениями, даже разногласия — программное обеспечение нужно людям!Не создавайте решения (программное обеспечение) в поисках проблемы (людей).Вы начали с ВАС, со своей потребности или желания, но сосредоточились на коде и потеряли импульс к проекту.
Программирование доставляет гораздо больше удовольствия, когда вы решаете проблемы.Но вам нужно держать проблему перед собой.Распространение проблемы создает сообщество.Вот в чем суть дела, не так ли?
В своих личных проектах я просто погружаюсь в работу.Конечно, ни один из них еще не был настолько масштабным, чтобы требовать какого-либо предварительного планирования.Если это будет серьезный или относительно крупномасштабный проект, всегда полезно прояснить, по крайней мере, то, что должна делать каждая часть программы, и получить общее представление о том, как они будут это делать.
Как и другие, мои личные проекты всегда имеют:
- Конечная цель
- Список задач
- Небольшие полезные единицы
- Управления источником
В качестве дополнительного мотиватора я стараюсь использовать технологию, которую никогда раньше не использовал.Изучение чего-то нового обычно становится для меня самым большим мотиватором.
Легко — не начинайте заниматься всеми проектами, к которым вы, скорее всего, потеряете интерес.Прежде чем приступать к какой-либо работе, потратьте больше времени и убедитесь, что вы хотите посвятить себя какой-либо идее.
Это зависит от проекта – насколько он велик?
Если я пишу следующий клон Блокнота, я мог бы просто погрузиться в него; если бы я хотел создать свою собственную операционную систему, это потребовало бы гораздо больше работы, не связанной с программированием.
Мне нравится делать много диаграмм, в большинстве случаев я использую чистую бумагу формата А4 и карандаш.Нарисуйте пользовательский интерфейс, рабочий процесс, базовые классы и то, как вы собираетесь хранить любые данные — тогда кодирование станет просто читаемым компьютером способом записи того, что вы уже нарисовали.
Контроль источникаSVN — это пара нажатий/щелчков клавиш, поэтому накладные расходы невелики, а польза велика, удобно пробовать что-то и просто возвращаться к более раннему состоянию, если что-то не работает.
Затем просто создайте самый простой прототип, который будет работать — как только что-то действительно получится, гораздо легче воодушевиться и добавить что-то еще.Если это ошеломляет, я обнаруживаю, что проблема решена в моей голове, и этого достаточно.
Сначала наметьте базовый план окончательного приложения.Наиболее важные функции, базовый графический интерфейс, порядок выполнения программы и т. д.Затем уточните это, чтобы поначалу не брать на себя слишком много, удалите ненужные функции и добавьте то, что вы хотите, в первую версию.Затем используйте эту схему, чтобы составить список задач и создать минимально возможную рабочую версию вашего приложения.Тогда гораздо проще добавить дополнительные функции и сделать его полностью работоспособным.
Мне нравится ответ Максимилиана..Если немного расшириться, мои личные проекты разрабатываются для решения того, над чем я уже работаю.Поэтому, когда мне надоест повторяющаяся работа, я создам прототип решения.а затем использовать его.Если он достаточно похож на один из моих предыдущих проектов, я позаимствую как можно больше кода и постараюсь улучшить уровень своей работы, сделать ее более профессиональной.
Использование Fusion Source Control также важно.Установка SVN занимает 2 минуты.
Если вы хотите превратить его в общедоступный проект с открытым исходным кодом, Производство программного обеспечения с открытым исходным кодом предполагается, что его будет полезно прочитать (доступно как в Интернете, так и в печатном виде).
Если ваш личный проект похож на существующий проект с открытым исходным кодом, вам следует рассмотреть возможность внесения вклада в этот проект.Пара небольших вкладов (исправления ошибок и т. Д.) Более ценна, чем половина готового проекта.
Все вышеперечисленное, но начните закреплять план на месте.....
Зайдите на некоторые инструменты SmartSheet - даже если вы работаете самостоятельно, вы должны установить некоторые этапы и даты, и графичность с www.yworks.com