В изолированном ответе производительность будет всегда всегда на первом месте.
Мы не знаем, попадете ли вы в этот фрагмент кода миллион раз подряд, поэтому производительность по-прежнему является проблемой. Мы не знаем, станет ли наш драгоценный фрагмент кода узким местом вашего приложения, поскольку мы не знаем, как оно взаимодействует.
(То же самое происходит при написании кода библиотеки: я не знаю, как это используется. Одной из причин повторного использования кода IMO является не просто «перемещение похожего кода в общую сущность».)
Поддерживаемость еще больше зависит от того, как код взаимодействует с неизвестным нам кодом. Ответ решит проблему в заданной вами области: вы можете запросить или пометить как SQL, или SQL Server, или MySQL. Остальное мы просто не знаем: сколько у вас похожих путей кода? Как часто этот кусок кода будет меняться в течение жизни проекта? Будете ли вы придерживаться этой конкретной версии сервера баз данных в течение десяти лет или будете часто обновляться?
Решение вопросов обеспечения во многом является вашей работой: является ли вопрос, который вы задаете, сущностью, которая должна быть изолирована?
Читабельность в основном сделано, остальное ваша работа.
При ответе мы обычно заинтересованы в том, чтобы вы понимали ответ, поэтому он должен быть удобочитаемым, по крайней мере, для вас. Если вы скопируете этот фрагмент в свой код и добавите комментарий // That weird query
, это не моя проблема.
Добавьте к этому тот факт, что производительность легче понять: из двух функционально эквивалентных ответов вы всегда выберете тот, который говорит «как Джо, но чуть быстрее», если только он не делает огромных ошибок в отделе M + R.
Когда вы пишете это сейчас, похоже, что причина преждевременной оптимизации заманчива. Это является неправильным приоритетом по нескольким причинам.
Низкий приоритет для оптимизации имеет две основные причины: