You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BCC IT department develop multiple web projects using different technology stack. Most popular at time of writing are Vue.js and React.js ecosystems.
They share similar or even the same concepts with with different syntax ad tools. The goal of architecture analysis is to find out solution where
we could share as much UI/front-end code as possible and reducing repeating yourself and provide consistent styling between similar components.
Decision
To be discussed.
Consequences
Slow development at the beginning
Architecture might be too challenging by unexperienced developers. Architecture requires good knowledge of algorhytms and patterns used on the front-end.
Must be very well tested with at least TDD
As this architecture is complex it needs to cover use cases for multiple BCC project to make sense investing time on it.
Developing with this architecture will fail if developers are focused on out-of-the-box solutions. This architecture requires to identify templates/patterns rather than using libraries which solves simple use cases. This is generic solution which is focused on reusing as much as possible.
Debugging might by more complex. Developers needs to known architecture to be able to identify potential issues.
This architecture requires big effort also on backend side: building validators, JSON schema which make sure that data which is given to front-end will be rendered properly.
Architecture is good for long-term solutions because it separates layers for business logic into separate place. Traditional modern front-end apps binds business logic with front-end code. Poor separation of concerns. Metadata approach solves that problem.
Alternatives
Developing standard SPA applications as before with ability to share some content by using micro front ends. This solution will not solve inconsistency and technology stack fragmentation between BCC projects.
We need to admit that choosing Vue.js or React.js is not based on analysis between those ecosystems, but personal preferences and familiarity of developers with specific frameworks.
The text was updated successfully, but these errors were encountered:
Remember that ADRs are publicly available hence do not include any confidential information in the issue description!
To read more about ADR please refer to documentation.
Metadriven architecture looks like an interesting approach for large systems with many similar UIs (like an ERP system).
At this stage I have a few concerns with this approach in our context:
There is no framework to support this (we need to role out our own framework - which isn't really part of our core business)
Basing multiple teams on a custom-built framework will increase coupling between teams. In general we want to reduce coupling (meaning teams can develop and deploy independently), but increase collaboration (meaning it's easier to consume services / share ideas across teams).
Context
BCC IT department develop multiple web projects using different technology stack. Most popular at time of writing are Vue.js and React.js ecosystems.
They share similar or even the same concepts with with different syntax ad tools. The goal of architecture analysis is to find out solution where
we could share as much UI/front-end code as possible and reducing repeating yourself and provide consistent styling between similar components.
Decision
To be discussed.
Consequences
Alternatives
Developing standard SPA applications as before with ability to share some content by using micro front ends. This solution will not solve inconsistency and technology stack fragmentation between BCC projects.
We need to admit that choosing Vue.js or React.js is not based on analysis between those ecosystems, but personal preferences and familiarity of developers with specific frameworks.
The text was updated successfully, but these errors were encountered: