Koha's been developed over a long period and has allot fo working code.. this is good.
At some point however, the UI paradigm shifted and we're now in a mixed stage.
The Koha UI can be clearly split into 'Modules' and 'Components' with those modules; however we're still writing 'Pages'.
For example, the 'Members' module.
We have the following pages: 'moremember', 'circlation', 'payments', 'routing-lists', 'readingrec', 'viewlog', 'notices', 'statistics', 'purchase-suggestions'.
For each page there is a separate back end script and a separate template (and often a number of pages between for stepping through actions). Each of these scripts and templates duplicates a large amount of code to display a uniform UI plus a small block of page specifc code for the actions.
We should be moving toward a 'Component' based approach instead where the above would turn into:
One Page/Module with a script and a template - Member One Block/Component per the above 'Pages' plus a Block/Component per shared UI feature.
This way we're writing the code to display a 'component' once, instead of repeating it in every 'page'