-
Notifications
You must be signed in to change notification settings - Fork 91
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
tech(perf): revoir l'algo qui re-ordonne les champs pour de meilleurs perf #9919
Conversation
e88d29f
to
91cd30b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bien joué, merci beaucoup pour cette réécriture 🚀 .
J'ai pas mal de remarques pour fignoler parce que cette partie est un poil touchy et du coup, j'ai l'impression que mettre du polish n'est pas du temps perdu.
def next_position_for(siblings:, after_coordinate: nil) | ||
if siblings.to_a.empty? # first element of the list, starts at 0 | ||
0 | ||
elsif after_coordinate # middle of the list, between two items | ||
after_coordinate.position + 1 | ||
else # last element of the list, end with last position + 1 | ||
siblings.to_a.last.position + 1 | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
def next_position_for(siblings:, after_coordinate: nil) | |
if siblings.to_a.empty? # first element of the list, starts at 0 | |
0 | |
elsif after_coordinate # middle of the list, between two items | |
after_coordinate.position + 1 | |
else # last element of the list, end with last position + 1 | |
siblings.to_a.last.position + 1 | |
end | |
# either we are at the beginning of the list or after another item | |
def next_position_for(after_coordinate:) | |
if after_coordinate.nil? # first element of the list, starts at 0 | |
0 | |
else # after another item | |
after_coordinate.position + 1 | |
end |
Alors ce changement me paraît logique ... Néanmoins, j'ai peur que nos tests ne correspondent plus à la réalité :
- je crois qu'avant un refacto récent de l'ui, le front pouvait appeler
add_tdc
sans préciser leafter_coordinate
pour ajouter un tdc en dernière position. - d'après mes essais, ce n'est plus le cas aujourd'hui
- mais c'est toujours utilisé dans le setup des specs => ce changement risque d'en casser une palanquée.
Du coup, si t'es d'accord avec le change, je veux bien m'occuper du refacto des tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gros taff, et j'ai l'impression que c'est un gros tas de spaghetti autour de ça. Mais je comprends ton envie nettoyer cette dette. Etant donné que tu as validé, je compte merger et ouvrir une autre PR. (me reste a cleaner le renumber, qui est exactement sur ce cas d'usage)
438888a
to
2ac6925
Compare
…e_de_champ on move_type_de_champ
…ype_de_champ on remove_type_de_champ
…sition otherwise have to process parent_coordinates...
Co-authored-by: LeSim <mail@simon.lehericey.net>
…blic factory for ordered champs
75f9070
to
0f194a5
Compare
6e35758
No description provided.