Magical Mystery Tour of V8 Back Office

Umbraco Spark 2019

Pete Duncanson / @peteduncanson /

HQ Rock!

  • V8 is a huge achievement
  • There is never enough time
  • People in glass houses...
  • But its good to be improving
  • "Positive thinking" can only get you so far
  • What do I know?

V8 launched

  • Too soon?
  • If only I believed in it hard enough...
  • Got to be released sometime
  • We've crossed the "Event Horizon"

Why too early?

  • Worked on right up to the wire
  • Where are the docs?
  • Whats changed?
  • Call that a FAQ page?
  • Where are the packages?
  • Missed Opportunities...

Missed opportunities?

  • API's now can't be changed
  • Package developers only want to upgrade once
  • AngularJS upgrade in name only
  • No frontend tests
  • Actually theres 150 for "blue prints"

Yet it has to be released at some point

  • The difficult "second" album
  • Time to bed in before Code Garden
  • Focus on other business
  • Its the future so lets make it work

Doing OUR bit to make it better

  • Dig into the stuff HQ can't do
  • Document the bits they haven't
  • Highlight the areas that need work
  • Suggest how those areas could be improved
  • Start working on them
  • If you can submit a Pull Request

Package development

  • Its a lot of work
  • UI can change breaking our hacks
  • Lack of front end UI tests means anything can change - theres no contract
  • No way to store config built in
  • Need more support on what should be included

Automated testing of the frontend

  • Started it!
  • Community effort needed
  • Trapped by the UI
  • Trapped by the AngularJS upgrade
  • Trapped by the Event Horizon
  • I blame Brexit

Optimising the back office

  • Speed for everyone!
  • Reducing JS is best way to it
  • Less code to download
  • Less code to parse and run
  • Refactoring to AngularJS 1.7 goodies helps
  • Can we use ES6?

Javascript compression revisited

  • ClientDependency does ok
  • Can modern stuff do better?

AngularJS v1.7 goodies

  • Inline templates
  • Switch to using components
  • No separate controller file
  • Load components when needed?
  • Reduce "scope" leaking
  • All results in less code!

We can use ES6!

  • V8 browser support has changed
  • Build chain already uses Babel
  • Added ruleset to target those browsers only
  • ES6 again removes a lot of boiler plate code

The AngularJS code base is...funky

  • Bloated namespaces
  • Hard to find anything
  • Which template to edit?
  • Where to add a new component?
  • Which controller does what?
  • What events are available?

Why bother?

  • Its already working?
  • A better environment for all
  • Easier bug fixes and PR's
  • Components get us close to the future
  • Better performance for all
  • Who else is going to?
  • I've learnt a tonne!

I hope you've been inspired!