mkroetzsch added a comment.

@daniel As long as it works for you, this is all fine by me, but in my 
experience with PHP this could cost a lot of memory, which could be a problem 
for the long item pages that already caused problems in the past.

> But it requires the serialization and formatting code to depend on the lookup 
> services


I know that it's always nice in software architecture to reduce the number of 
dependencies (for all kinds of reasons). However, I don't see a strong reason 
why code that formats a sitelink should not depend on the facility that 
provides the URL to link to. When things have a conceptual dependency, it is 
not bad design to have a code dependency there as well. I don't think there is 
any reason to have duplicate code in either solution -- that's just a matter of 
coordinating work within the team (not saying it is easy, but architecture 
alone will not solve this ...).

> Relying on global state like that for conveniance is what MediaWiki is doing 
> all over the place, with horrible results for testability and modularity


The state would not be global (I was over-simplifying). Of course you would 
have a $db object that provides the access to the sites table. Reading from a 
table is a stateless operation, so there is no state (global or local) involved 
and you can indeed use static code if you like. But of course you could also 
use a Sites object like in WDTK. Regarding testing, I guess you already have a 
mock db connection object anyway (otherwise, how would you test db read 
operations ...). I don't see a reason why this solution should be any less 
modular or testable than what you propose. There is also no need to have any 
duplicate code.


TASK DETAIL
  https://phabricator.wikimedia.org/T118860

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: mkroetzsch
Cc: mkroetzsch, adrianheine, hoo, thiemowmde, aude, Jonas, JanZerebecki, 
JeroenDeDauw, Aklapper, StudiesWorld, daniel, Wikidata-bugs, Mbch331



_______________________________________________
Wikidata-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to