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