Создать дублирующую функцию с немного другим алгоритмом или использовать более медленную, более общую функцию? - PullRequest
0 голосов
/ 21 июля 2011

Я всегда был сторонником принципа СУХОЙ: другими словами, пишите код один раз и только один раз. У меня есть функция, которая по существу отфильтровывает данные по «последнему уникальному отчету». В моем алгоритме функция предполагает, что входящие данные отсортированы, что делает их очень эффективными. Однако эта функция потенциально должна обрабатывать данные, которые не отсортированы. Какова лучшая практика: иметь одно общее решение, которое будет медленнее, или иметь две слегка отличающиеся функции, причем одна будет гораздо более эффективной?

РЕДАКТИРОВАТЬ: я должен отметить, что, хотя производительность это хорошая вещь, это не критично для приложения, поскольку это внутренний инструмент.

1 Ответ

3 голосов
/ 21 июля 2011

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

Так

function filterData(object data)
{
    ...
}

function sortAndFilterData(object data)
{
    // Do sorting
    ...
    // Filtering
    filterData(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...