ng-nl. brief review

logo

I was happy to visit NG-NL Conference in Amsterdam (the first AngularJS one in NL) and would like to share my thoughts with you.

As far as there were a lot of topics to discuss conference was run in 2 tracks. Here you can find the whole schedule. I followed next route:

ng-nl plan so several words about each one.

Intro + Welcome (slides, video)

It was great speech by Aaron Frost. We can say that it was about everything and nothing(from tech side) the same time. He provided good structured way how everyone can grow as a professional inside AngularJS/JavaScript(and probably not only) community.

After several days/weeks/months listeners could forget the context, but they never forget awesome comparison that authors of frameworks and tools like builders who are constructing a bridge across the river, river of different development issues. And they know that these bridges would be used not only by them but mostly by juniors. So he wished us create our own bridges, help to improve existing ones and never troll builders.

Very inspiring! Thank you, Aaron.

Videogular and the future of HTML5 video (slides, video)

It was presentation of Videogular – HTML5 video player for AngularJS by Raúl Jiménez. First part of the presentation for me was like “reading” documentation for component and explaining obvious things. Second part was more interesting with life coding and real example. Site sawfish.stimme.de shows Videogular connected to google maps API that is really impressing!

@Raul, I will definitely have more detailed look on your project.

Lazy load anything using ocLazyLoad (slides, video)

A very short talk by Olivier Combe. He presented his extension ocLazyLoad that allows to do lazy loading for modules in AngularJS. Pointed out how important lazy loading is, especially for mobile limited network connection. Also it was some explanation how it could work with router (both ngRoute and ui-router). It’s nice that ocLazyLoad also support dependancy injection for loaded modules.

There are some expectations to get similar functionality in Angular1.5, we’ll see.

@Olivier, why only 20 min for such a fundamental concept? Already dived into the source code.

Visual Review – Automated GUI testing with Protractor

Daniel Marjenburgh presented Visual Review – tool to check visual changes between different project builds (btw name is terrible extremely difficult to google it :). The tool works together with protractor (thanks to special plugin VisualReview-protractor) that makes it really tasty. The base idea is quite simple: to make and compare screenshots. In protractor scenario code it looks simply like:

[javascript]
vr.takeScreenshot(‘AngularJS-homepage’);
[/javascript]

@Daniel, I liked the idea. Only one question is still open for me: how could I make it work with remote browsers (for example Browserstack service)?

TDD in javascript – Not a myth (slides)

In all the details and for the very basics – TDD in JavaScript by Ofir Dagan. In this presentation you could find answers for all the questions: “why to do testing?”, “how to do it right?”, “which tools to use?”, “how to analyse the coverage?” and even “how mother nature do TDD”. It’s really good and quick introduction for developers who want to start with testing.

@Ofir, I wish I met you 2 years ago when I started my “trial and error method” with TDD.

Inside The Angular Directive Compiler (video)

I even could not imaging that this lecture about Directive Compiler would be so interesting for me. Step by step together with Tero Parviainen we recreated functionality of $compileProvider.$compile method. It consists of 4 steps:

  • compile (parse html template for directives)
  • link (link them to the scope)
  • inheritance (create new scope if needed and operate with it)
  • isolation (not provide the scope by itself but do attribute binding)

@Tero, you pushed me to look into source code more often :) And of course thank you for the book!

Domain Model Objects in AngularJS (video)

Gert Hengeveld showed how we could create Model layer based on javascript classes (or constructor functions). During all the presentation I had filling that backend developer wants to bring his concepts to client side(To be sure that I understood concept correctly I went to original article). I was not convinced that I should try this approach. There were so many theoretical things that we ostensibly would be able to do with this structure(I even don’t remember the whole list): validation, relations, etc… I would like to see your implementation of this concepts. Because without implementation it’s nothing to discuss. In our applications for data layer we are using Restangular wrapped with our services where we do validation and all this stuff, and it works pretty well.

@Gert, if you have some code to share – please show it, I really would like to have a look.

How I made a mess of my Angular application (slides, video)

Very funny speech by Dave Smith about past Angular mistakes and ruler punishment. I just provide the list of mentioned mistakes and solution(in brackets) for them:

  • scope abuse ( do not create scope everywhere)
  • global controller functions ( use another syntax )
  • shadow scope ( use “controllers as ” or nested model)
  • $watch abuse ( use ng-change, events, flux pattern)
  • ng-include ( just don’t use ng-include)
  • pass scope like param to services ( never do so)
  • home grown build tools ( many existing proven tools)

btw, it was a suggestion to put own Angular mistakes on twitter with tag #ngoops (not much for now)

@Dave, mine were(except several from your list):

  • bad file structure
  • everything in controller (DOM manipulations and business logic)
  • used jQuery a lot instead native directives

Modern authentication solutions (slides, video)

Manfred Steyer told us a lot about OAuth 2.0 and OpenID and not much about AngularJS implementation.  And it would be also interesting to hear about some existing solutions for Angular and compare them.

@Manfred, 45 min definitely not enough for OAuth specific. I guess audience divided into 2 parts: who worked with OAuth before – for them it was boring, and who did not know this protocol – they still don’t know it.

AngularJS Lab

I don’t know why, but we skipped this.

But still I had quite interesting talk with Christoph Burgdorf. Christoph, thank you for advise about detecting language for authorised user.

Closing Keynote (video)

keynote

I’m glad to be with Carmen Popoviciu in one community.

 

@organisers, @speakers, thank you very much for such a great event!