Скажем, я получил спецификации для проекта от клиента, и теперь пришло время начать его разработку. Обычно я просто начинаю с первого модуля (обычно регистрация пользователя), а затем перехожу от одного модуля к другому. Я только планирую в своей голове, как раз перед тем, как собираюсь запустить модуль, как он будет работать, но до этого нет никакого планирования.
Тем не менее, я думаю, что было бы лучше, если бы я просмотрел спецификации и спланировал, как система будет работать до того, как я ее кодирую, например, каковы основные компоненты, как они будут взаимодействовать и т. Д. Я просто не уверен, что именно я должен планировать.
Чтобы лучше понять, о чем я прошу, как мне
а) разделить проект на составляющие,
б) Планировать их взаимодействие, например, должен ли я делать диаграммы классов, писать модульные тесты и т. д.?
Есть идеи?
источник
Ответы:
Когда у вас есть привилегия начать новый проект, у вас есть пустой холст, который одновременно и захватывающий, и пугающий. Я работаю итерациями, и вот как я делю работу:
По сути, этот подход постепенного определения проекта от очень высокого уровня до более детального дизайна мне очень помог. Даже взаимодействия между подсистемами становятся более точными, когда вы фактически пытаетесь их реализовать. Это хорошая вещь.
источник
Правильно. Хорошая идея.
Хорошо. Сделай больше этого.
Отлично.
Верный.
Как вы можете быть не уверены, когда уже перечислили кучу вещей? Если это то, что вас волнует, почему бы просто не сосредоточиться на этих вещах?
Читайте о 4 + 1 представлении модели: http://en.wikipedia.org/wiki/4%2B1_Architectural_View_Model
Читайте о структуре Zachman: http://en.wikipedia.org/wiki/Zachman_Framework
Это то, что вам нужно планировать.
Используйте широко распространенные шаблоны проектирования для других похожих проектов.
Если вы сомневаетесь, прочитайте чертежи J2EE для идей.
http://www.oracle.com/technetwork/java/javaee/blueprints/index.html
Да. Хорошие идеи, все.
источник
Самое важное, что нужно сделать: просмотреть спецификации, взаимодействовать с заказчиком, чтобы получить более точные спецификации.
Требования, несомненно, являются неполными, расплывчатыми или неправильными. Самая большая трата времени делает неправильные вещи. Клиенты не являются профессиональными разработчиками программного обеспечения, и нельзя ожидать, что они будут хорошими в разработке хорошего набора требований.
Таким образом, вы должны просмотреть технические характеристики, опросить клиента и выяснить, действительно ли это то, что ему / ей нужно и нужно, и он может себе позволить, и т. Д.
Разрабатывайте варианты тестирования / использования и проверяйте их у клиента. Если требование не подлежит проверке, выбросьте его.
Разработайте дизайн и убедитесь, что все части функционируют правильно, что теоретически будет делать то, что вам нужно.
Разработайте прототип архитектуры, который тестирует все технологии, которые будут использоваться на каждом уровне, но игнорирует функциональность. Вы тестируете архитектуру, а не функциональную спецификацию. Неправильная архитектура будет означать, что вам придется все переписывать, поэтому важно правильно подобрать архитектуру. Убедитесь, что он может удовлетворить ваши требования по скорости, эффективности, безопасности и т. Д.
источник
Вы определенно хотите иметь какой-то дизайн, прежде чем начать кодирование.
После этого я обычно предпочитаю сначала выполнить начальную фазу архитектуры, чтобы определить, как слои вашего приложения сочетаются друг с другом. Это будет включать в себя магистральные вещи, такие как безопасность и ведение журнала.
Затем я создаю 1 функцию сверху вниз, чтобы вы что-то реализовали полностью.
Тогда иди оттуда.
источник
Все
Запланируйте все, проще изменить его на бумаге, чем когда его часть уже закодирована, вы получите отличную основу для документации и множество других преимуществ.
источник