Чистый код. Похожие названия методов
На днях мы использовали метод SequenceMatcher.ratio()
из модуля difflib, чтобы оценить сходство двух строк.
А что бы вы сказали, если узнали, что у того же класса есть ещё методы quick_ratio()
и real_quick_ratio()
? С описанием «возвращает верхнюю границу ratio довольно быстро» и «возвращает верхнюю границу ratio очень быстро»?
Я бы сказал, что это плохой код. Если бы коллега принёс такой код на ревью, я бы предложил подумать ещё. Либо ты нормально называешь эти методы, чтобы понятно было, когда какой использовать. Либо прячешь их в глубине модуля и не делаешь частью публичного API.
Конкретно в данном случае я бы сделал «быстрый» и «очень быстрый» методы приватными, потому что они нужны только для оптимизации работы других публичных методов difflib. Используются примерно так:
if matcher.real_quick_ratio() >= cutoff and \
matcher.quick_ratio() >= cutoff and \
matcher.ratio() >= cutoff:
...
Как вспомогательные методы — ладно. Но точно не в публичный интерфейс.
★ Подписывайтесь на новые заметки.