1

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

  1. Масштабируемость
  2. ремонтопригодности кода
  3. Производительность

I argued in a blogpost что для в архитектуре нашей системы я бы точно использовал порядок важности, как указано выше:

масштабируемость >> ремонтопригодность >> производительность

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

  1. Что вы думаете о важности этих трех факторов?
  2. Я также утверждал, что для их достижения необходимо сделать тщательное планирование и дизайн перед началом. Есть ли у вас какие-либо другие советы?
+0

«единственная худшая стратегическая ошибка, которую может сделать любая компания-разработчик программного обеспечения: они решили переписать код с нуля». http://www.joelonsoftware.com/articles/fog0000000069.html – PiTheNumber

ответ

0

Масштабируемость - это другое зверь, чем производительность.

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

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

Если это сайт социальной сети, я бы ранжировать элементы, как:

Масштабируемость> Performance> Maintenance

0

Я считаю, что это должно быть

ремонтопригодность >> масштабируемость >> производительность

Масштабируемость/Производительность

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

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

ремонтопригодность

Самым важным для меня является ремонтопригодность, потому что это дороже. В блоге stackoverflow было сообщение об этом, но я не могу найти его прямо сейчас. Проблемы с производительностью в основном могут быть решены, если вы просто покупаете лучшее/больше оборудования и бросаете его на проблему. Аппаратное обеспечение относительно дешево и постоянно снижается в цене. Действительно дорогое время программирования программистов.

 Смежные вопросы

  • Нет связанных вопросов^_^