Am 13.05.19 um 12:48 schrieb Amir Sarabadani:
I wonder how many points you get for nerd snipping a
software engineer :)
One, as it's rather easy ;)
Wonderful work Daniel, kudos!
Thank you for your help!
In the given list of bad dependencies, I find User
class depending on Skin class
one of the most problematic ones.
It's nasty on the level of the dependency graph, but it's a trivial dependency,
and easily resolved using a trait or utility method:
Skin::normalizeKey( $wgDefaultSkin );
Want to give it a go?
Thinking this one step further, all logic related to user options should be
factored out of the User class anyway. Filed as
<https://phabricator.wikimedia.org/T223099Y>
Also, ApiQuery class depending on all of its
subclasses is one of the biggest issue making all of API query modules act as
giant big monolith. That can (hopefully) easily addressed and untangle
significant portion of the 40%, a rather low hanging fruit.
Yea... these dependencies a<re however not "real" - they are all dependencies
on
a class name literal (ApiQueryFooBar::class), not the class itself. I have filed
this as a feature request with upstream
<https://github.com/mihaeu/dephpend/issues/47>.
Cheers,
Daniel
--
Daniel Kinzler
Principal Software Engineer, Core Platform
Wikimedia Foundation