Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Отрефакторить пагинацию #112

Closed
astynax opened this issue Feb 2, 2021 · 2 comments · Fixed by #114
Closed

Отрефакторить пагинацию #112

astynax opened this issue Feb 2, 2021 · 2 comments · Fixed by #114
Assignees
Labels
backend enhancement New feature or request good first issue Good for newcomers

Comments

@astynax
Copy link
Contributor

astynax commented Feb 2, 2021

Сейчас в коде, который отвечает за пагинацию, всё очень хрупко. Есть и откровенно странные штуки вроде константы, объявляемой посреди тела функции - ну не делают так! Ещё напрягают магические числа вроде 8/3 и 4/7 там и здесь.

И вот эта функция вроде и обособлена, но на деле глубоко завязана на двукратно вложенный объект в роли аргумента. Это сильно усложняет тестирование. А тестировать надо бы! Особенно после отлова бага #111.

Предлагаю переделать функцию так, чтобы она возвращала только paginator а возвращала объект slice. Такое тестировать уже сильно проще: пагинатор легко замокать, а слайсы легко сравнивать. 8 и 3 нужно выразить либо одно через другое, либо через отдельный параметр функции, который передавать из константы в классе. Точно так же нужно передавать и VISIBLE_AT_BOUNDARY - чтобы класс, к которому примешивается пагинация, мог ею управлять. И шаблон нужно так изменить, чтобы никакие 4 и 7 в нём не фигурировали, а брались из класса же (или вычислялись бы на основе его полей).

@astynax
Copy link
Contributor Author

astynax commented Feb 2, 2021

@antlu возьмешь?

@astynax astynax added backend enhancement New feature or request good first issue Good for newcomers labels Feb 2, 2021
@antlu
Copy link
Collaborator

antlu commented Feb 2, 2021

Возьму.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend enhancement New feature or request good first issue Good for newcomers
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants