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.
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.
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:
- Open Source
- Extends HTML Vocabulary
- Forward Thinking
We see examples of extending the HTML Vocabulary.
Joe shows us the developer guide and then the API guide.
This lesson ends with a quick quiz.
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
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
- 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.
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.
- Bash Shell
- JetBrains Webstorm
- Node JS or ASP.NET MVC web server