Предположим, вам необходимо самостоятельно разработать программное обеспечение среднего размера. Например, если это был личный проект, который вы хотите реализовать.
Какие методологии / инструменты вы бы использовали, чтобы определить, что нужно разрабатывать, изучать и иметь общее представление о том, что такое система, а также ее подробности?
В основном, чтобы держать себя в курсе и не заблудиться в пути.
tools
methodology
Кассио
источник
источник
Ответы:
Обычно я просто использую Mercurial, если я хочу функцию, я просто добавляю ее, и если я больше не хочу ее, я просто удаляю ее. Кроме того, я стараюсь хорошо писать свои комментарии, чтобы не потеряться.
источник
Это может легко вырасти за пределами вашего внимания. Не промежуток , ширина .
Трудно рассмотреть слишком много элементов одновременно .
И тогда ... это становится американскими горками регрессии .
Все, что вы делаете, ломает предыдущие вещи, и откат не помогает.
Чтобы избежать этого, вы должны активно проверять регрессию .
Автоматически. (Вы не можете сделать это иначе и оставаться в здравом уме)
Тестирование добавит жесткую нагрузку вашей энергии.
Если проект все о пользовательском интерфейсе ... вы, вероятно, тост:
Другие вопросы:
(На самом деле это не существует как условие, это популярная ошибка, которую люди связывают с отсутствием дисциплины )
Если вы привыкли и любите какой-то контроль версий , используйте его.
Если вы начнете изучать его сейчас, это вас отвлечет .
Графическое изображение из вас идеи, как уже отмечалось, может помочь.
Я использовал Freemind , CMaps , XMind , yEd , graphviz и… что-то еще.
XMind менее бессмысленен
Карандаш и тетрадь по- прежнему неплохо зарекомендовали себя в первой десятке:
Я делаю много маленьких поясняющих рисунков.
В крайнем случае, вы всегда можете подготовить powerpoints для собственного потребления :)
источник
Грамотное программирование.
Если вы пишете статью (или книгу, или отчет, или документ) о своем проекте, то вы склонны оставаться на задании.
Начните с описания того, что вы делаете: обзор вариантов использования, выпуск 1, выпуск 2, выпуск n. Запишите краткое описание вариантов использования. Приоритет их. Получите их в спринтах и релизах.
Каждый выпуск имеет представление варианта использования, логическое представление, представление обработки, представление компонента, представление развертывания. Для спринта подробно опишите варианты использования. Опубликуйте HTML-документ, чтобы показать, что вы собираетесь делать. После подробного описания вариантов использования спринта напишите логическую модель. Напишите код для поддержки этого. Написать документацию по обработке. Напишите код для поддержки. Создавайте модули. Напишите документацию вида компонента. Написать тесты и сопроводительную документацию. Опубликуйте результаты спринта в виде HTML-документа.
Повторите для каждого спринта. Время от времени просматривайте и редактируйте свой документ.
Есть много и много грамотных инструментов программирования. Они могут помочь вам создать источник, который создает документацию и код из одного текста.
Я использую sphinx и PyLit, но это потому, что я программист на Python.
источник
Если вы хотите записать свои идеи, вы можете использовать инструмент отображения разума, такой как XMind или FreeMind . Оба инструмента бесплатны (для людей для XMind) и отлично подходят для мозгового штурма и организации ваших идей. Особенность этих инструментов в том, что у вас меньше шансов что-то забыть.
Я лично использовал Freemind до начала моего последнего личного проекта. У меня не было конкретной методологии как таковой . Я просто изложил свои идеи во время часовых занятий раз в два дня. Я думаю, что интервалы между сеансами мозгового штурма помогли мне лучше понять, что было неправильно, что было несущественно, но могло быть полезно в последующих версиях и т. Д.
Во время моей первой фиксации кода я также сохранил файл мозгового штурма в репозитории исходного кода (я использовал bitbucket ) и держал его в курсе моих новейших идей.
источник
Относитесь к нему как к реальному программному проекту (потому что он один). Есть только несколько вещей, которые меняются, потому что число разработчиков одно. Вам все еще нужен контроль версий. Вам все еще нужен способ организации функций, которые будут добавлены, чтобы исправить ошибки. Вам все еще нужен автоматический тест, чтобы убедиться, что вы не создаете регрессии в коде. У вас также должен быть автоматический способ компиляции кода (при необходимости), запуска тестов и просмотра отчетов.
Я работаю над личным проектом, как вы описали. Я использую Git, Redmine, JUnit и Jenkins, чтобы удовлетворить все категории, которые я описал. Мой рабочий процесс:
Хранение всего управляемого и организованного так же важно, как и при наличии большого количества разработчиков. Со многими разработчиками вам нужна организация, чтобы информация распространялась среди всех. Когда это только вы, у вас уже есть вся информация, но запомнить каждую часть системы сложно. Управляемая система облегчает вам задачу, и вы можете сосредоточиться на поставленной задаче.
источник
Инструменты:
Система контроля версий (даже если вы являетесь единственным разработчиком в своем гараже или домашнем ПК): GIT, Mercurial, Tourtoise
Редактор с подсветкой исходного кода, даже если у вас есть IDE (Scintilla, Vim, Notepad)
Реальная доска, доска, некоторые вещи просто не помещаются в вашем приложении Designer Tools.
Инструмент для разработки: Rational Rose, Umbrello, (UML, ER,) Visio или «Инструменты разработчика для слабых разработчиков», такие как Power Point, Corel Draw, Open Office Draw
Текст / Исходный код Инструмент сравнения текста, например, WinMerge
источник
Это зависит от того, как вы можете различать и справляться с различными задачами, потому что вам нужно взглянуть на каждый шаг процесса разработки.
Я думаю, что инструменты полезны только в том случае, если вы уже знаете, как их использовать, и одна из худших ошибок - это узнать, как работает инструмент, а не узнать, что с ним делать.
Во-первых, по моему мнению, вы должны записать то, что вы ожидаете, что программное обеспечение будет делать и особенно, что оно не будет делать. Это важный момент. Следующим шагом является разделение конечной системы на более низкие подсистемы, что облегчает процесс сборки. И последнее, но не менее важное: вам нужно выбрать инструменты. В основном хорошая IDE, VCS и модельер данных. Вы можете добавить множество других инструментов, чтобы помочь, но будьте осторожны, чтобы не начать с неправильного пути.
Что ж, начало кажется не таким привлекательным, но процесс со временем станет веселым.
источник