Core Platform Team/Initiative/Quantify and reduce coupling in MediaWiki Core/Initiative Description
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on any information on this page. The Core Platform Team and its initiatives do not exist anymore. See MediaWiki Engineering Group instead since 2023. |
- Summary
This project aims to improve the modularity of the MediaWiki code base by reducing instances of tight coupling, with a focus on removing cyclic dependencies between components.
- Significance and Motivation
Small components with well defined interfaces are easier to understand and maintain than large complex components. Tight coupling between components, especially if circular, means that the two components behave as one, and cannot be understood or modified independently.
By removing coupling, we allow code to be put in a library. This makes future coupling impossible since it is no longer in the code base. It also makes our code usable in other projects outside of MediaWiki.
Having smaller components that can be understood and maintained separately means it becomes easier to modify the software, easier to find bugs, and easier to train new engineers to work on the software. All of these factors contribute to the goal of delivering improvements to our users more quickly.
Current investigation is ongoing here:
https://docs.google.com/document/d/1hC4sYLsVN0bAVUHkCDPSk-RAjK6_2IYM_GBOjKmkk-M/edit#
This project is likely to be scoped into smaller projects which are focused on specific parts of the code base.
- Outcomes
Architect our code, services and infrastructure for change and sustainability
- Baseline Metrics
TBD
- Target Metrics
TBD
- Stakeholders
Extension developers
Core code developers
- Known Dependencies/Blockers
Adding API integration tests
Architecture Principles