FriendsOfREDAXO / rexstan

redaxo phpstan addon
https://staabm.github.io/archive.html#rexstan
MIT License
35 stars 3 forks source link

Parameter für cognitive complexity evtl. einstellbar oder per Default erhöhen #246

Closed aeberhard closed 1 year ago

aeberhard commented 1 year ago

Wo kommt die Grenze 50 für eine Klasse her? Class cognitive complexity is 51, keep it under 50

Das gleiche gibt es auch für Methoden.

Evtl. die Werte erhöhen oder einstellbar machen!?

Liegt das an den reinen Code-Zeilen oder an der Tiefe der Verschachtelung!?

aeberhard commented 1 year ago

Oder sollte man da einfach die Extension weglassen ? :)

staabm commented 1 year ago

moin,

die grenzwerte sind die defaults und sind hier eingestellt: https://github.com/FriendsOfREDAXO/rexstan/blob/a2f4b1d65fcf62dff25ff4eea4ea12524c113c7e/vendor/symplify/phpstan-rules/config/packages/cognitive-complexity/cognitive-complexity-rules.neon

Evtl. ... einstellbar machen!?

wir könnten sie auch einstellbar machen, aber ich befürchte die meisten rexstan user würden keinen sinnvollen wert finden. auch befürchte ich dass man am addon schon sehr viel einstellen kann und noch mehr einstellungen würden es noch unübersichtlicher machen.

Evtl. die Werte erhöhen !?

warum willst du den wert erhöhen? wenn diese fehlermeldung anschlägt ist es oft ein gutes zeichen dass man seine klasse eigentlich aufteilen oder refakturieren sollte, da sie zu groß werden :)

wenn man die fehlermeldungen als störend empfindet, sollte man die extension nicht verwenden.

Liegt das an den reinen Code-Zeilen oder an der Tiefe der Verschachtelung!?

in den einstellungen befindet sich ein link zu einem artikel, der erklärt wie sich die komplexität berechnet

aeberhard commented 1 year ago

Hi Markus,

ok da hast Du Recht. Danke für die Infos! 👍 Bin gerade dran ein Addon von grundauf mit Kontrolle per rexstan zu bauen. Die Klasse ist m.E. noch nicht zu komplex :)). Werde da mal weiter optimieren und z.B. auch überflüssige Getter-Methoden die es gar nicht braucht entfallen lassen wie z.B. getDebug(). Und einige Sachen in eigene Klassen auslagern.

staabm commented 1 year ago

wie der zufall so will wurde das paket neu released und hat jetzt einstellungen die man via config separat konfigurieren kann.

https://github.com/FriendsOfREDAXO/rexstan/blob/ef46eea4383f5b863acd89065fe8e3840bd2a8ae/config/native-type-coverage.neon#L4-L9

das geht übrigens seit kurzem auch für die dead-code einstellungen mit

https://github.com/FriendsOfREDAXO/rexstan/blob/ef46eea4383f5b863acd89065fe8e3840bd2a8ae/config/native-type-coverage.neon#L4-L9

d.h. man kann in seiner redaxo/data/addons/rexstan/user-config.neon die parameter überschreiben (diese datei wird aber aktuell überschrieben beim speichern der settings aus dem backend)

aeberhard commented 1 year ago

Ah, gut zu wissen. Da hatte wohl auch jemand anderes das Bedürfnis da irgendwie eingreifen zu können :)

Habe jetzt aber den Weg gewählt den Code im mehrere Klassen usw. aufzuteilen :)