Как Вы начинаете разрабатывать большую систему? [закрытый]

Ваш input не имеет атрибута name . Это то, что клиент будет передавать на сервер. Флажок вызовет ошибку 400 при доступе к ключу формы, который не был отправлен.


9
задан Brett Veenstra 6 April 2012 в 09:29
поделиться

10 ответов

Вы знаете много об ООП? Если так, изучите Spring и Будьте в спящем режиме для содержания реализации в чистоте и ортогональный. Если Вы получаете это, необходимо найти TDD хорошим способом сохранить дизайн компактным и минимизированным, тем более, что Вы "автоматизировали тестирование" и выполнение.

ОБНОВЛЕНИЕ: Рассмотрение первого убило ответов, я не мог не согласиться больше. Особенно в пространстве Java, необходимо найти много наставников/ресурсов при разработке приложения с Объектами, не ориентированного на базы данных подхода. Проектирование баз данных обычно является первым шагом для людей Microsoft (который я ежедневно делаю, но нахожусь в программе восстановления, er, Высоком звуке. Сеть). Если Вы сосредотачиваете внимание на том, что необходимо поставить клиенту и позволить ORM выяснить, как сохранить объекты, дизайн должен быть лучше.

10
ответ дан 4 December 2019 в 08:35
поделиться

Это очень походит на мое первое задание. Прямо из университета, меня попросили разработать базу данных и слой бизнес-логики, в то время как другие люди будут заботиться о UI. Между тем босс смотрел через мое плечо, негнущееся отпускать того, что раньше было его ребенком и было теперь моим, и тыкание его пальцем в нем. Три года спустя разработчики бежали из компании, и мы были все еще на расстоянии в X месяцы от фактической продажи чего-либо.

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

Так мой совет:

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

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

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

5
ответ дан 4 December 2019 в 08:35
поделиться

Я также не соглашаюсь о запуске с базы данных. DB является просто артефактом того, как сохраняются Ваши бизнес-объекты. Я не знаю об эквиваленте в Java, но .NET имеет звездные инструменты, такие как SubSonic, которые позволяют Вашему дизайну DB оставаться жидким, поскольку Вы выполняете итерации посредством своего дизайна бизнес-объектов. Я сказал бы прежде всего (даже перед выбором, что технологии представить), фокусируются на процессе и определяют Ваши существительные, и глаголы... затем создают из тех абстракций. Эй, это действительно работает в "реальном мире", точно так же, как ООП 101 учило Вас!

3
ответ дан 4 December 2019 в 08:35
поделиться

Главным является способность абстрагировать сложность системы так, чтобы Вы не увязали им, как только Вы начинаетесь.

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

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

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

  • ТЕПЕРЬ, необходимо думать о разработке базы данных, схем ER, Дизайна Класса, DFDs, развертывания, и т.д.

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

2
ответ дан 4 December 2019 в 08:35
поделиться

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

2
ответ дан 4 December 2019 в 08:35
поделиться

Это был мой опыт, который JAVA-приложения (.NET также), которые рассматривают базу данных в последний раз, очень вероятно, выполнят плохо при размещении в корпоративную среду. Необходимо действительно думать об аудитории. Вы не сказали, было ли это веб-приложение или нет. Так или иначе инфраструктура, на которой Вы реализуете, важна при рассмотрении, как Вы обрабатываете свои данные.

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

1
ответ дан 4 December 2019 в 08:35
поделиться

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

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

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

1
ответ дан 4 December 2019 в 08:35
поделиться

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

Составьте его на простой бумаге, думая, где разделить от кода. Remeber для не смешивания логики с кодом GUI (распространенная ошибка). Таким образом, Вы будете установлены расшириться, Ваши приложения достигают в будущем к сервлетам и/или апплетам или независимо от того, что платформа приходит. Раздел в слоях так, чтобы можно было ответить на большие изменения быстрее, не восстанавливая все. Слои не должны видеть никакие другие слои, чем их самые близкие соседние слои.

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

Btw. Даже при том, что это не имеет никакого отношения к дизайну, я был бы точно так же, как, чтобы сказать, что Вы не поставите вовремя. Сделайте реалистическую оценку на потреблении времени и затем удвойте его :-) Я предполагаю здесь, что Вы не будете одними в этом проекте и что люди придут и уйдут, в то время как проект прогрессирует. Вы, возможно, должны обучить людей на полпути через проект, люди уезжают в отпуск / нуждаются в операции и т.д.

1
ответ дан 4 December 2019 в 08:35
поделиться

Я нашел очень проницательные идеи о запуске нового крупного проекта, на основе

  • методы общественного блага
  • Разработка через тестирование
  • и прагматический подход

в книге, Выращивающей Объектно-ориентированное программное обеспечение, Ведомое Тестами.

Это все еще разрабатывается, но сначала 3 главы могут быть тем, что Вы ищете и по моему скромному мнению стоящие чтения.

0
ответ дан 4 December 2019 в 08:35
поделиться

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

По крайней мере это было моей главной ошибкой в разработке.

Сохраните это простым!

0
ответ дан 4 December 2019 в 08:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: