Welcome to this review of the Pluralsight course Angular JS Fundamentals by Joe Eames and Jim Cooper.
Joe has worked both full and part time as a technical teacher for over ten years.
He is a frequent blogger and speaker, organizer of ng-conf, the AngularJS conference, and a panelist on the JavaScript Jabber podcast
Jim Cooper is a software developer at Pluralsight, with more than 20 years of software development experience.
He has a passion for Agile processes, especially lean software development, and has been developing production Angular apps since before v1.0.
Jim has over 10 years of TDD and pair programming experience.
Course Overview
This course teaches all of the major features of Angular JS (except for Angular 1.5 Components which is covered by Scott Allen’s Building Components with Angular 1.5 course).
We also learn how to get the most from it, regardless of whether we are beginners, or more experienced Angular JS developers.
The overall objective from this course is for you to be ready to build production-ready applications in Angular JS.
The version of the course that I am reviewing is the 19th August 2015 update which is based on Angular v1.4.
Introduction to Angular
Joe begins by saying Angular JS allows us to throw away our client side spaghetti code and write simple and elegant MVC-style single page applications.
The first two modules are from Joe, then Jim presents the Services, Routing and Directives modules. Joe bookends the course with a module showing us how the Angular team designed Angular JS to allow us to develop our apps in a fully test driven way.
In this course we will build EventReg, an Event registration site.
To see if this course is currently up to date, see https://github.com/joeeames/AngularFundamentalsFiles
Introduction to Angular
Joe says Angular is an opinionated MV* framework, and opinionated software generally allows us to solve problems more quickly and easily.
He discusses several advantages of opinionated software over unopinionated software and recommends reading 37 Signals Getting Real Chapter 4: Make Opinionated Software.
MV* means having a Model, a View, and something else. Angular uses controllers and so is often called an MVC framework. However Angular also uses Directives and Services so is more than just a regular MVC framework.
At the time of the course recording Angular has more than 100 contributors. Today, this figure is over 1,500.
The full list of features or reasons to be interested in Angular JS which Joe explains is:
- MV*
- Open Source
- Comprehensive
- Testable
- Extends HTML Vocabulary
- Forward Thinking
We see examples of extending the HTML Vocabulary.
Regarding the Forward Thinking point, if this is important to you I recommend taking a look at Angular 2 as well as other JavaScript frameworks. This course covers Angular v1.x.
Joe shows us the developer guide and then the API guide.
This lesson ends with a quick quiz.
Angular Architecture
Some powerful features of Angular are:
- Two way binding
- Dirty checking
- Dependency Injection
We learn answers to the following questions:
- What is the central component in an angular application?
- Directives are part of which component?
- In which component should you put your complex business logic?
Demo: Hello World in Angular
Joe writes a hello world app. This puts the JavaScript in a script tag in index.html.
The app displays Hello World in the browser.
The Angular Event Reg Application
The last app was pretty boring, but this main app is more interesting and will have several features, around 500 lines of JS and around 200 lines of HTML, plus tests.
Joe warns that not all aspects of the application will cover all the best practices. Joe has produced a separate course on Angular Best Practices which you may want to watch later.
The features of our app will be:
- List of Angular Events
- Event Details
- Create New Events & Sessions
- Edit Events & Sessions
- Login
- Client to Server communication (Node JS and ASP.NET MVC)
The application will use Bootstrap. If you have not used Bootstrap before you might want to read my Bootstrap 3 review.
Angular Version
Joe explains the original course was produced with v1.0.5 and it was since updated for Angular v1.4.
He recommends using the latest stable version of Angular JS.
Tools Used
- Bash Shell
- JetBrains Webstorm
- Node JS or ASP.NET MVC web server