-
Notifications
You must be signed in to change notification settings - Fork 1
Refactoring details #570
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
Refactoring details #570
Conversation
Coverage reportClick to see where and how coverage changedThe report is truncated to 25 files out of 62. To see the full report, please visit the workflow summary page. This report was generated by python-coverage-comment-action |
maximilianKalff
left a comment
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.
Finde es cool, wie jetzt calculate und plot zusammen gehandelt werden. Ich hatte noch ein paar Fragen an manchen Stellen, aber die habe ich alle dazugeschrieben. :))
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.
Warum werden die Parameter alle so spezifiziert? Damit grenzt man ja die Flexibilität der Funktionen schon ein, weil man jetzt nicht mehr alle Parameter, die der Random Forest Classifier von sklearn bietet, nutzen kann.
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.
Ich habe eigentlich versucht, dass keine Funktionalität oder Flexibiltät verloren geht, sondern nur die **kwargs ausspezifiziert, wenn es konkrete Parameter sind, die verwendet werden oder entfernt, wenn sie überhaupt nicht genutzt werden. Wenn ich etwas übersehen habe, dann ändere ich das gerne. Kannst du mir dafür eine konkrete stelle nennen, an der Flexibilität verloren geht?
Zum Hintergrund, warum ich das gemacht habe: Ich fand es sehr unverständlich, was für parameter bei den Kwargs verwendet erwartet werden und missverständlich, wenn die Funktion kwargs angenommen hat, obwohl mit diesen nichts getan wird. So wollte ich in den Funktionen klarer machen, welches eigentlich die Parameter sind, die genutzt werden.
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.
Ich vermute die build_pie_bar_plot Funktion wurde sonst nirgends aufgerufen? Aber ist es vielleicht nicht sinnvoll, wenn man eine generische allgemeine Funktion für diese Art von Plot hat? Für den Fall, dass man sie nochmal verwenden möchte. Also warum hast du das zusammengeführt?
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.
Grundsätzlich bin ich voll bei dir und fände eine allgemeine Funktion auch sehr sinnvoll. Allerdings ist die Funktion an dieser stelle so spezifisch (Bspw. durch sie Labels ["Proteins kept", "Proteins filtered"]), dass man sie sowieso kein zweites mal verwenden kann. Hintergrund war einfach nur, dass ich die zweite Funktion, die nichts tut, entfernen wollte, weil sie nichts tut.
Eigentlich ist die Funktion auch genau so gut an anderer Stelle wieder verwendbar, wie vorher, dadurch, dass ich nur Parameter umbenannt habe.
Fändest du es trotzdem besser, wenn ich wieder eine zusätzliche Funktion einfüge?
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.
Sollen die Sachen auskommentiert bleiben?
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.
Gerade festgestellt, dass die Felder zwar nicht normal verwendet werden, dafür aber an anderer Stelle genutzt werden und daher habe ich sie wieder ein kommentiert.
Jonas0000
left a comment
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.
Hab auf die ersten Kommentare geantwortet. Rest kommt gleich :D
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.
Ich habe eigentlich versucht, dass keine Funktionalität oder Flexibiltät verloren geht, sondern nur die **kwargs ausspezifiziert, wenn es konkrete Parameter sind, die verwendet werden oder entfernt, wenn sie überhaupt nicht genutzt werden. Wenn ich etwas übersehen habe, dann ändere ich das gerne. Kannst du mir dafür eine konkrete stelle nennen, an der Flexibilität verloren geht?
Zum Hintergrund, warum ich das gemacht habe: Ich fand es sehr unverständlich, was für parameter bei den Kwargs verwendet erwartet werden und missverständlich, wenn die Funktion kwargs angenommen hat, obwohl mit diesen nichts getan wird. So wollte ich in den Funktionen klarer machen, welches eigentlich die Parameter sind, die genutzt werden.
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.
Grundsätzlich bin ich voll bei dir und fände eine allgemeine Funktion auch sehr sinnvoll. Allerdings ist die Funktion an dieser stelle so spezifisch (Bspw. durch sie Labels ["Proteins kept", "Proteins filtered"]), dass man sie sowieso kein zweites mal verwenden kann. Hintergrund war einfach nur, dass ich die zweite Funktion, die nichts tut, entfernen wollte, weil sie nichts tut.
Eigentlich ist die Funktion auch genau so gut an anderer Stelle wieder verwendbar, wie vorher, dadurch, dass ich nur Parameter umbenannt habe.
Fändest du es trotzdem besser, wenn ich wieder eine zusätzliche Funktion einfüge?
Jonas0000
left a comment
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.
Fertig, @maximilianKalff schaue gerne nochmal rüber, ob das jetzt so für dich passt bzw. du bei den ersten Kommentaren auch mit der Erklärung als Backgroundinfo eine Änderung haben möchtest.
@sarahvgls ich denke, dass du jetzt schon drüber schauen kannst, wenn du möchtest.
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.
Gerade festgestellt, dass die Felder zwar nicht normal verwendet werden, dafür aber an anderer Stelle genutzt werden und daher habe ich sie wieder ein kommentiert.
sarahvgls
left a comment
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.
Ein paar Anmerkungen von meiner Seite:
- Super cool, dass du das alles gemacht hast. Also wirklich, meinen absoluten Respekt!!!
- Ich finde einige der renames wirklich sinnvoll und du vernichtest echt einige Code smells, sehr sehr gut!
- zu den kwargs:
Ich habe mich dazu eben auch etwas eingelesen, was denn eigentlich so üblich ist, vor allem, da ich **kwargs schon recht häufig treffe und daher anfangs auch eher die Meinung vertreten wollte, dass wir die doch lieber behalten wollen. Aber muss dir dann doch eigentlich zustimmen, dass ein sinnvolles weitergeben dieser Parameter einfach ein code smell ist und nicht zur verständlichkeit beiträgt. @maximilianKalff Sag gerne noch mal Bescheid, wenn dir was einfällt, warum es doch so besser wäre (vielleicht übersehen Jonas und ich ja gerade was). Ich könnte mich aber auch gut damit anfreunden, dass man so die vielen Parameter doch direkt sieht und - sollte es Bedarf geben dies zu erweitern, man einfach mehr Parameter hinzufügt und diese dann halt verwendet. Aber ein intransparentes **kwargs klingt hier schon eher nach einer Unsicherheit, was man eigentlich übergibt. - Das anders-behandeln von Input parameters ist so viel smarter, das ist echt eine Verbesserung!!
- Ich habe ein paar Todos gefunden, sag gerne mal bescheid ob du die noch schnell angreifst, ansonsten gerne ein Issue dafür aufmachen
- Ich hab ein paar Fragen und Anmerkungen im Code dazu geschrieben, sag mir gerne mal, was du so davon hältst
- den html teil hab ich tbh geskippt
Und damit beende ich mal meinen review-Spam hier, vielen Dank für deine Arbeit!!!
|
@sarahvgls ich sollte jetzt alle deine Kommentare bearbeitet haben. Vielen Dank für die vielen Hinweise und sinnvollen Kommentare. Könntest du nochmal rüber schauen und Kommentare als erledigt markieren, wenn sie aus deiner Sicht erledigt sind. Falls ich bei der Menge etwas übersehen habe, sag gerne nochmal Bescheid |
sarahvgls
left a comment
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.
Noch ein paar kleine Anmerkungen, sonst sollte alles passen :))
|
|
||
|
|
||
| class PlotVolcano(PlotStep): | ||
| class PlotVolcano(DataAnalysisStep): |
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.
Blöde frage vielleicht aber ist es dann nicht irgendwie unvollständig, dass wir noch ein paar PlotSteps haben obwohl die eigentlich entfernt werden sollen?
|
Und mir fällt gerade auf, dass der eine Test nach deinen letzten Änderungen wohl leider failt weil wohl kwargs fehlen. Wäre super, wenn du das noch wieder in den Tests anpassen könntest :)) |
|
@maximilianKalff Helloo, könntest du nochmal über deine Kommentare schauen? |
26c87be to
a5bd23c
Compare
Description
refactoring of details page ended up in refactoring steps.
Plot and calculate forms are combined into one so that calculating and plotting is possible by one click.
Handling of methods is overworked.
The definition of input keys is done by the method parameters to have less duplicated code.
There is still some stuff left to improve but i want to concentrate on the migration to react.
Tested a lot of steps including the MVP steps.