Масштабируемый VS Расширяемый
Я не уверен, разрешен ли этот тип вопросов здесь, но он связан с программными проектами.
Есть ли разница между масштабируемым и расширяемым?
Является ли расширяемый подмножеством масштабируемого? Т.е. масштабируемый (расширяемый)
Некоторые считают, что это одно и то же, другие - как другое. Какие есть отличия?
Я вынужден поверить:
Масштабируемость - сделать систему более устойчивой к нагрузке (пропускная способность и т. Д.) И увеличить ее.
Расширяемый - добавьте больше функциональности в систему.
Разве они не одинаковы?
Изменить: Если расширяемый добавляет больше функциональности в систему, а масштабируемый может рассматриваться как увеличение системы, разве это не теоретически одно и то же, доказывая, что расширяемый это просто подмножество масштабируемого?
2 ответа
Я не носитель языка, но я думаю, что есть разница.
Если что является масштабируемым, это означает, что он может адаптироваться к росту. Это не говорит о том, как он принимает (то есть, либо будучи настолько хорошо приспособленным, что может принимать больше запросов, либо добавляя больше ресурсов того же типа, либо легко меняя компоненты).
Википедия говорит:
[Это] способность расширяться, чтобы приспособиться к [некоторому] типу роста.
Теоретически это может также относиться к "сокращению", но это обычно не так интересно с точки зрения ИТ.
Вы предложили:
Расширяемый - добавьте больше функциональности в систему.
Возможно, но не обязательно. Это может также относиться к добавлению большей емкости, которая служит тем же целям, что и раньше.
Я бы сказал:
Масштабируемость означает, что система способна приспосабливаться к росту. Т.е. система растет.
Расширяемость означает, что вы можете (легко) что-то добавить в систему. То есть что-то новое присоединяется к системе - что не должно быть связано с ростом.
Согласитесь с Observer. Просто чтобы добавить еще несколько примеров:
Расширяемость: насколько легко ваше программное обеспечение может поддерживать "хуки" для новых функций, интерфейсов, устройств, типов ввода и т. Д.
Масштабируемость: насколько легко ваше программное обеспечение сможет справляться с растущей базой пользователей / дополнительными данными и т. Д. Пример. Если ваша база пользователей будет расти в будущем или вы решите сохранить дополнительные данные для каждой сущности, масштабируется ли ваша база данных? Является ли ваше программное обеспечение масштабируемым для роста пользовательской базы?