Целесообразно ли сосредоточиться на проектировании компонента или архитектуры программного обеспечения с учетом производительности? Я имею в виду, насколько готов дизайн / архитектура к использованию в среде с высокими требованиями к производительности?
Должны ли мы при разработке компонентов просто следовать хорошим принципам объектно-ориентированного проектирования и просто обеспечивать «расширяемость» компонента. Таким образом, мы немного подправляем дизайн здесь и немного там, когда и когда мы сталкиваемся с проблемами производительности. Хотя таким образом мы часто сталкиваемся с проблемами производительности, когда небольшая настройка программного обеспечения может не помочь.
В качестве альтернативы, если мы придумаем дизайн, пусть даже сложный, проблемы с производительностью станут легкой прогулкой. Нам все равно потребуется настроить программное обеспечение, но настройка часто очень проста, поскольку дизайн ориентирован на производительность.
Примечание. Ни в одном из перечисленных выше случаев я не пытаюсь настроить производительность программного обеспечения перед тем, как столкнуться с проблемами производительности. Перефразируя вопрос, должна ли разработка программного обеспечения быть ориентированной на производительность?
Пожалуйста, не отвечайте мне, говоря, что все зависит от среды, в которой предполагается запускать программное обеспечение. Причина в том, что клиентам любого программного обеспечения промышленного уровня кажется, что все время требуется все больше и больше. Вы можете не планировать, чтобы ваше программное обеспечение постоянно работало в средах с высокой производительностью, но что, если это необходимо? Должны ли мы затем перепроектировать программное обеспечение, когда мы это почувствуем?
Этот вопрос беспокоит меня уже неделю, и у меня пока нет ответа. Что вы думаете об этом?