-
Notifications
You must be signed in to change notification settings - Fork 0
ADR 03 ‐ Frontend in React
- Proposed
- Accepted
- Superseded
As we are developing a web application, it obviously should have a responsive and dynamic interface that everyone can understand easily. There are several ways, programming languages or libraries or frameworks to build the visual components, and we have to choose a way that ensures mantainability, scalability and ohter arquitectural patterns.
We believe that React could be one of the best technologies that actually exist for this task because of its syntax and arquitecture simplifying HTML, CSS and JavaScript work.
Additionally, the webapp template given by the teachers is built in this technology, so continuing using React can reduce some extra work at the beginning.
-
Benefits
- Declarative Syntax: React's declarative syntax simplifies the development process and makes it easier to understand and maintain code.
- Component-Based Architecture: React's component-based architecture promotes code reusability, making it easier to manage and scale the application.
- Virtual DOM: React's virtual DOM enhances performance by efficiently updating and rendering UI components.
- Large Ecosystem: React has a vast ecosystem with a plethora of libraries, tools, and community support, facilitating faster development and problem-solving.
-Trade-offs
- Learning Curve: Developers unfamiliar with React may face a learning curve when getting started with the framework.
- Versioning and Breaking Changes: React occasionally introduces breaking changes with new versions, requiring updates and adjustments to existing codebases.
- Performance Overhead: React's virtual DOM abstraction may introduce a slight performance overhead compared to direct DOM manipulation in certain scenarios.
To ensure use of React inf the project, every developer is warned about it, and everyone who is assigned to a task related with the frontend should use it as the main technology.
- Original Author: Alberto Lago
- Approval date: 20/02/2024
- Approved by: MM 08 - Laboratory Class 04
- Superseded date: N/A
- Last modified date: N/A
- Modified by: N/A
- Last modification: N/A