WE ENABLE CLOUD-NATIVE ORGANIZATIONS
meshBlog

Learn more about Cloud, Multi-Cloud and Software Delivery

Coder's Corner

Our head of software development Johannes recently presented a talk about our experience building meshPanel to the DarmstadtJS meetup group. The meshPanel is the primary user interface our customers use to create and manage cloud computing resources across cloud platforms such as OpenStack and Cloud Foundry and different datacenter locations jointly operated by meshcloud and providers.

The talk in particular is about our experience working with the brand new angular framework and shares some of our lessons learned. You can find the slides from the talk on Slideshare.

2 responses to “Angular 2 – a story from the trenches”

  1. Jannik says:

    Hi Johannes,

    thanks for the fascinating talk!

    You mentioned in the talk that you have a koans-like test suite for getting to know RxJS. Were you talking about https://github.com/Reactive-Extensions/RxJSKoans or is this something different? If the latter, would you mind sharing it?

    Cheers,

    Jannik

    • Hi Jannik,
      great to hear from you. The test suite consists of a couple of hand-rolled jasmine specs to better understand rxjs operator behavior. I mainly write these specs when I’m unsure after reading the docs and official tests of the operators (e.g. here are the tests for mapTo()).

      Understanding the tests requires you understand the marble-syntax DSL they use to write the tests. I’ve provided an example and links e.g. in this Stackoverflow answer: http://stackoverflow.com/questions/38496604/switchmap-vs-mergemap-in-the-ngrx-example/42227335#42227335

      Many of the tests I wrote myself are for edge cases when I couldn’t figure out RXJS behavior from the docs, e.g. like this one:

      
        describe('Subject', () => {
          it('subscribe to completed re-delivers complete', () => {
            const s = new Subject();
            s.complete();
      
            const o = s.asObservable();
            let i = 0;
            o.subscribe({ complete: () => i++ });
            o.subscribe({ complete: () => i++ });
      
            expect(i).toBe(2);
          });
      ...
      

Leave a Reply to Johannes Rudolph Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.