There are a couple maintainability issues with the current code organization:
Maintenance is a challenge because changes to VUI, other dependencies, or the READMEs need to be duplicated across each app template.
Most of the code is duplicated across each app templates, creating risk of unintended divergence.
Constraints
As a code generator, this project's primary goal is to produce usable and helpful output. This output must be:
Simple.
Readable / understandable.
Maintainable.
Proposed solution
I think we can address the issues I listed while achieving our goal by combining the app templates into a single template. This change will be supported by:
Surfacing appType as a configuration option.
Creating a boundary inside of the app template between the common parts of the app and the part which mounts the unique UI.
A unique SearchContext will be tightly coupled to the unique UI, because different UIs issue different types of search requests.
Dynamically producing a README based on templates, changing the introductory content depending on the appType.
Problem
There are a couple maintainability issues with the current code organization:
Constraints
As a code generator, this project's primary goal is to produce usable and helpful output. This output must be:
Proposed solution
I think we can address the issues I listed while achieving our goal by combining the app templates into a single template. This change will be supported by:
appType
as a configuration option.appType
.