I do want to mention that while I do work with Angular a lot (and enjoy it), I’m not a “one framework” type of guy. Why? Because if there’s one thing I’ve learned in life it’s that one size never fits all. When someone suggests that one technology or framework is always the best option I like to say, “Walk into a shoe store and say that you want to try on a pair of shoes. When they ask you what size you’d like, tell them it doesn’t matter and see how that goes.” One size doesn’t fit all in shoes – or in technology.
We work with a lot of large and small companies and some are using Angular 5, some have moved to Angular v2+, some are using React and a few are still using jQuery. Nowadays Single Page Application is a rage in web applications. Angular is the latest client side MVC framework with SPA(Single Page Application).
The upgrade to Angular 5 is an incremental one. This is because many of the changes are done invisibly.
However, some breaking changes have been included, so some developers will still have a lot of work to do. But for all the developers who kept their code bases up-to-date, the changes will be easy to handle this time.
The focus of Angular 5 was to make Angular faster again. The loading time has been improved by smaller bundles. The execution has been improved as well by optimizations at the compiler.
But the challenges still remains in the scope of the input and output variables in components. Apart from this , the html directives like ngfor and ngif are a big boost to the HTML part.
Over the course of working on Angular Material, an important goal has been crafting a general, reusable foundation upon which components can be built.The goal of the CDK is to give developers more tools to build awesome components for the web. This will be especially useful for projects that want to take advantage of the features of Angular Material without adopting the Material Design visual language.
These are the plus points of developing in angular-
- Catch Errors Early
Code consistency is an important goal to strive for in any code base. If we or our team have to support production applications then we have to understand how important consistency is and why it leads to better maintenance. So what does Angular offer that provides consistency for teams? The overall framework is based on components and services that you can think of as Lego blocks. All components and services start out the same way. For example, all Angular components do the following:
- Import required ES2015 modules
- Define a @Component decorator (metadata)
- Place code in a component class
Regardless of what component you’re writing, this overall structure is always followed. Sure, there are additional things you can add (implement an interface such as OnInit or others if using TypeScript, put templates inline versus in a separate file, and many others), but the overall structure of a component always looks the same. That’s a good start and provides consistency as team members start out building components.
Another big area of consistency in Angular is with services. Angular 4.x let you choose between factories, services, providers, values and constants when you have code that needs to be reused throughout an application. Some developers prefer factories while others lean toward services. They both do the same thing overall but which one is the “right one”? The answer is that it’s quite subjective. Unless a team agrees on a coding style for team members, each developer goes off and does their own things…something I’ve always called “cowboy coding” (no offense to any cowboys out there) .
Consistency brings productivity into the picture as well. Developers don’t have to worry as much about if they’re doing it the “right way”. Components and services look the same overall, reusable application code is put in service classes, ES6/ES2015 modules organize related functionality and allow code to be self-contained and self-responsible, data is passed into components using input properties and can be passed out using output properties, etc.
With greater consistency, you get the added benefit of productivity. When you learn how to write one component you can write another following the same general guidelines and code structure. Once you learn how to create a service class it’s easy to create another one. It’s like a broken record consistently spinning round and round that feels like many other frameworks you may have used in the past. Combine all of this with the Angular CLI, code snippets that the team creates (or use mine if you use VS Code) and you’re consistent and productive.
Angular is all about organizing code into “buckets”. Everything you create whether it’s components, services, pipes, or directives has to be organized into one or more buckets. If you come from a “function spaghetti code” background in your organization, the sanity that Angular and TypeScript bring to the table can be quite refreshing. The “buckets” I refer to are called “modules” in the Angular world. They provide a way to organize application functionality and divide it up into features and reusable chunks. Modules also offer many other benefits such as lazy loading as well where one or more application features are loaded in the background or on-demand.
Enterprise applications can grow quite large and the ability to divide the labor across multiple team members while keeping code organized is definitely achievable with Angular. Modules can be used to add organization into an application much like packages and namespaces do in other languages/frameworks like Java or .NET. I’ll admit that a solid understanding of Angular modules and the way they can be used is crucial in order to use them successfully. However, once a team architects modules appropriately they can reap the benefits when it comes to the division of labor, code consistency, productivity, and maintenance.
Catch Errors Early
In addition to the benefits TypeScript offers, Angular is also built with testability in mind. The Angular CLI makes the process of unit testing and end-to-end testing a snap (it relies on Karma and Jasmine by default for unit tests but you can use whatever testing tools you’d like). Simply type ng test at the command line and any tests in the project will run. The ng generate command will automatically generate a spec file for you as you create a component, service, etc. If your organization is planning to write unit tests against your Angular code that’s definitely another benefit that will help you catch errors early on in the development lifecycle.