I have spent quite
a while developing some Angular applications for work and personally. So I
thought I would shed some light on my experience in using the technology.
Firstly to put simply Angular is a platform that makes it easy to build
applications with the web. Its growing popularity is evident through what
Google trends show. As Angular is in its 6th version I thought
I would evaluate what I like and dislike about the technology.
First off the bat I
really enjoy Angular’s component-based architecture. It is similar in this way
to AngularJS’s MVC (Model-View-Controller) architecture but provides a much
greater improvement in my opinion. Components act as small pieces of interface
which can be combined together on a single web page. This enforces such core
object orientated principles such as single responsibility and reusable code.
This makes development a lot easier to understand, manage and be more
efficient. It also allows for code to be maintained easily as code can be changed
in one place as components are easily decoupled from each other. As well as
this having independent components lends itself well to unit testing.
Another great pro
for Angular is its use of RxJS which allows Angular to handle asynchronous data
calls. Although the library is difficult to learn and believe me as I am still
learning how to use the library. RxJS provides a great pipeline of functions
that help reduce code and simplify the process of handling asynchronous calls
with multiple events. It manages to turn a complicated series of actions into
concise, simple code which is easy to change and manipulate. Another advantage
of using this library is that all observables take the same shape, therefore
integrating observables allows for similar implementations. A slight drawback I
would have of RxJS is its error messages can be too cryptic to understand which
again hinders the already steep learning curve. In summary the RxJS is great
for simplifying a complex process which can be understood in a few lines of
code.
However a drawback I have felt with using this
technology is that because it is being developed at a rapid place, there is
always changes to versions. This is no bad thing, but from my experience of
projects being put on hold and then coming back to Angular after it has been
updated 3 times can be unsettling and disruptive. Often more time is spend
updating and changing packages than developing. For example Angular 6 was
rolled out in May 2018 and Angular 7 is planned for October 2018. However with
the introduction to the new ng update <package> command,
updating packages may become easier. As well as this I feel the Angular CLI
documentation lacks documentation. I couldn’t put it any better than what I
found in this excellent blog post “While the command line is very
useful and loved by Angular developers, you aren’t going to find enough info in
their official documentation on GitHub and you’ll spend some time exploring
threads on GitHub to get answers. Luckily, the community is there to
help”. You can check that awesome blog post out here:
Another great feature of Angular is Typescript
which is basically a superset of Javascript. I really enjoy coding with it,
it’s clean, it’s fast, and it’s easy to code with. I have had limited
experience in using Javascript however I find the syntax of typescript so
simple and intuitive. It was easy to pick up and start implementing big changes
to my projects fast. As well as this its seamless integration with Angular
functions is brilliant. The language is open source and developed and
maintained by Microsoft and from a personal point of view I am struggling to
find any faults with it.
In conclusion I really enjoy working with Angular.
Its ability to build and scale enterprise applications at a rapid rate is quite
astonishing. It’s backed by Google and is constantly being developed so it’s
here to stay. The ease of use and design features it provides allow me to make
some really slick web applications with reducing a lot of the code that would
have been needed traditionally. My only slight niggles is that the CLI
interface can be frustrating with updating and modifying packages. This has led
me to getting frustrated and spending longer than necessary on Stack Overflow
trying to fix these small problems. However in terms of development I have no
major complaints and would recommend the technology to anyone.
Follow @EdwardMuldrew
Comments
Post a Comment