It is hard to believe that it was already two weeks ago that Andrew Tarr and I were in Salt Lake City attending ng-conf 2017. I have to say that it was a great conference and I learned even more than I had anticipated in the three days we were there.

The format of the conference was set up where the first and third days were a single track that brought everyone together in the grand ballroom and the second day was more of a choose your own adventure where you chose what workshops you attended. They split the ballroom into three smaller rooms where there were also AMA and birds-of-a-feather meetings going on at the same time. I really like this kind of setup because I got to sit in on several sessions that answered questions I didn’t even know that I had or topics that I may not have originally been interested in.

Day 1

The keynote really set the tone for the whole conference and was jam packed with a ton of good information. One of the things that the organizers stressed from the get-go was that Angular is more than a programming language; it is a community. After spending three days immersed in this environment, I have to agree with this and am happy to consider myself part of the Angular community – now I just have to figure out how I can make meaningful contributions to this community.

During the keynote, it was mentioned that 44% of the developers who participated in the 2017 StackOverflow developer survey said they are using either AngularJs or Angular. One of the other things that was discussed was the naming and versioning of Angular. The old Angluar 1.x is to be referred to as AngularJs and the new stuff should be referred to just as Angular.

The use of semantic versioning and release schedules was covered as well. The plan is to have a new patch version released every week, a minor version every month, and a major version every six months. The themes for the releases are that patches will be just fixes, minor releases will be new features with seamless updates, and major versions will include new features with simple updates.

I have been doing AngularJs development for a couple of years now. One of the first people in the Angular community I really latched onto was John Papa. When he was the first presenter following the keynote, I was really excited to hear what he had to say. John explained how the right tools can make all the difference. He first talked about the Angular CLI and how much easier it makes life when developing new apps. John also covered VS Code, Angular Snippets and Language Services within VS Code, and Azure Functions.

Some of my other favorite topics from the first day included “Embracing Component Tranquility”, “Thoughtful Component Design”, “Reactive Programming with RxJS”, and “How to Scratch an Itch.”

Day 2

Day 2 of the conference was a bit more hectic. It definitely required a bit of planning if you wanted to make it to the workshops you wanted to attend and build in enough time to move between them.

My favorite sessions of the day included “RxJS: The Good Parts” and “Diving into TypeScript”. The RxJS workshop, led by Chris Gosselin and Daniel Figueiredo, went deep on many of the common operators of RxJS. One of the more interesting points they made was the difference between how chaining operators in RxJS differs from JavaScript array operator chaining and how RxJS can outperform plain JavaScript because it acts more like a funnel on the result sets while JavaScript will perform a whole iteration over the items in an array for each operation that is being performed.

In the “Diving into TypeScript” workshop, John Papa and Dan Wahlin really sold me on the benefits of using TypeScript in more of my projects. Their big reasons for advocating TypeScript are:

  • It acts as guardrails keeping your Script code from driving you off a cliff.
  • You get the future syntax and features of ECMAScript today as the TypeScript team is able to work on features shortly after they are agreed upon by the ECMAScript governing body.
  • It will detect errors in your code at development time instead of at run time on a webpage.
  • Using the right IDE you can get IntelliSense.
  • There is a lot of enhanced tooling that has been built around TypeScript

One of the technologies that I was most excited to learn about (and am itching to find the right project to use it on) is Google Firebase. It looks like a great jumping off point for building new serverless applications. Features like easy to use authentication, application analytics, and real-time and offline databases make this very attractive. The database portion is what really intrigued me. We got to build a demo application that, with very little code, automatically pushed updates out to all of the active clients instantaneously.

Mike Brocci delivered a great presentation titled “Kick Your Components up a Notch with Directives, BAM!” This was one of the topics that I didn’t know that I needed to know about. He gave us great information about different types of directives and how to effectively use them to help eliminate duplication of business logic in our components.

Day 3

On the final day, Brad Green and Rob Wormald from Google presented the keynote about where Google uses Angular, why they use open source, the benefits of TypeScript, and building apps that people love to use.

I also attended a very cool yet short presentation about Angular Form validation. It covered some of the upcoming features in the validation, including custom validator chains, controlling the order and timing of validation, emitting errors whenever your application requires it, and doing “push”-based validations. I am definitely looking forward to these features as they will help make life easier and give us better validation logic than what we get with the MVC forms-based validation.

Odds and Ends

One of the topics that kept coming up in talks was the use of lazy-loading and pre-rendering. Before the conference, I hadn’t seen any samples of Angular apps that were using lazy-loading, so I assumed that just wasn’t something that was available. Not only is it available, but the Angular team has made it really easy to implement. They have done it even one better by adding in the ability to set things up to pre-load, which eliminates the time it takes to pull down new code and run it thru the JavaScript JIT compiler after the user clicks on a link.

If you combine lazy-loading with pre-rendering, you will give your users a speedy first page load and give search engines and social scrapers enough data to render, analyze, and display your page.

Conclusions

I didn’t really know what to expect going in to ng-conf 2017, but I think it may be one of the more defining moments in my software development career. I have come away from it as a huge advocate for finding more places where we can use Angular in our projects and realize the benefits of using it over building a simple ASP.Net MVC website. I think there are ways that we can shape our use of Angular to match our patterns and practices to create more maintainable products.

I know that I was definitely drinking the Angular Kool-Aid straight from the hose for three days at the conference, but here we are almost two weeks removed and I still feel the same way. I’m already looking forward to ng-conf 2018.

Looking For More?

Sign up to receive useful software development tips and news from the Don't Panic Labs team.

You have successfully subscribed!

Share This