One of the advantages of being a relatively fresh web developer is that I am yet to be burdened with the experience of using old development methodologies and bias that comes along with it. This meant that when I heard about Angular JS, a really neat Javascript application framework developed by Google, I thought Cool, why not learn about it?

Angular JS and its new-age Javascript web application framework siblings such as KnockoutJS are a breed of tools that aim to liberate you in your quest to build web apps that rock. Most people already well into web development are happy using JQuery, for example. It took me around two months to get to the point where I'm now comfortable with some of the AngularJS paradigms. There are a few key ideas you need to understand when starting out Angular:

  • You never want to edit the DOM manually unless you absolutely have to; use the provided helper 'directives' and methods which will give you the most optimum way to do it
  • You will probably see 'two way data binding' as one of the major advantages of AngularJS; it's basically the ability to have an input box link to a Javascript object or variable and have changes in both reflected in the other; hence 'two way binding'
  • Architecture your applications well; AngularJS uses a MVC architecture to separate the various business logic components of your application. Show the user something? Use a view container. Want to manage your information? Write a model. Need interactivity? Define that stuff in a controller. To share data around various modules in the application, and to retrieve data from other sources, you'll want to use services.
  • Use Stack Overflow lots, and don't be afraid to get your hands dirty in code along the way. AngularJS is, unfortunately, a poorly documented framework, and it'll take a long time to 'get it'.
  • If you want to get a good idea of how an Angular application should be organised, you can take a look at Angular Seed and Angular RequireJS Seed; they provide two common methods of handling the many many lines of code you will write in your app

As part of my Business Requirements Modelling class at university, I decided to write a small web application that you can create user story maps out of, based on AngularJS seed. It won't beat Atlassian's JIRA by any means, but it's free and relatively easy to use. Check it out.

It's hard to explain precisely how cool AngularJS really is. It's a well thought out framework that has a host of little gems that you come to appreciate one by one. I'm sure I'll write more about it in the future.