loading...

Choosing Front End Framework for Large Scale Application(Angular/React/Vue)

jeexan2 profile image Jysan Aziz ・1 min read

Recently I am working in a Large scale application which includes HR system, Accounting system and many more. We have decided to go with Java Spring Boot 2.0 write now. We will use Multi module architecture for back-end technology.We want to select the front end framework right now that's why we need your experience sharing about Angular/ React / Vue. What are the pros and cons about using them? Please share your view and experience which will be pretty helpful for me.

Discussion

markdown guide
 

Angular is a fully featured, platform agnostic application framework. React and Vue are primarily UI libraries. All three are focused on component based UI.

There is a lot to take in with regards to Angular since it has so many features:

  • Grouped and shared functionality with NgModules
  • Dependency management (it uses Dependency Injection)
  • Client-side routing
  • Lazy-loading
  • Development tools
  • Testing utilities
  • Platform specific tools
  • Data binding
  • HTTP requests
  • Observables
  • API reference
  • Guides for development and testing
  • Tutorial
  • Typings for TypeScript
  • Template based UI components with a declarative syntax
  • Forms and validation
  • Formatting
  • Globalization
  • Animations
  • Premade UI components (Angular Material)
  • Reusable UI behaviour (Angular CDK)
  • Web components (Angular Elements)

Some - if not a lot - of these features are not included in React or Vue so you will have to find 3rd party libraries and tools.

Angular has a lot of custom declarative syntax to learn in its templates. There is good documentation for getting started and well beyond the basics. However, there are many advanced use cases that to this day are not documented. Maybe because it is such a large framework but less than 2 years old.

While it takes months and months - possibly years - to get a firm handle on all the features that you need, you are on your way to a scalable, maintainable, testable codebase.

With that being said, Angular does not handle:

  • Application State Management
  • Multi-threading
  • Software architecture, e.g. Separation of Concerns

If you have a complex application, i.e. lots of components with lots of sources of state updates, you will need to think carefully about ensuring a unidirectional data flow by using immutable data and minmising the dirty checking change detection.

 

I wouldn’t go into pros and cons, since I might hurt someone’s sentiments towards a framework, but I see your use case is Java and enterprise. Which makes me assume your team would like to work with types and powerful tooling. I would recommend digging deeper into the Angular and Typescript system. Angular is a strongly typed framework and should fit your enterprise needs well. The other frameworks you mentioned can also be used, but they are less of frameworks and more of a V (View) in MVC, as Reacr puts it.

 

One more vote for Angular, it has opinionated architecture, which is a bold plus in a long run. Once I saw how messy architecture can be in React application, since there's no opinions, you can do whatever you want.