NEXT UI: evolution story

Maxim Milovanov, Lead Software Engineer
Cambridge, MA
August 29, 2018

NIBR INFORMATICS (NX)



NIBR INFORMATICS (NX)
Business use only
NIBR Informatics (NX)
Agenda
1. Team introduction
2. Project introduction
3. Migration to new NIBR style guide
4. Replacing Angular 1 to Angular 6
6. Typescript and it's benefits
7. Q/A
5. App structure

Business use only
NIBR Informatics (NX)
Project Team
Mike Tarselli, Scientific Lead
David Cotter, Technical Lead
Thomas Veith, Architect
Vimala Selvaraj, Business Analyst
Andreas Vallen, Application Service Manager
Maxim Milovanov, UI Developer
Andrei Listopadov, UI Developer
Olga Veith, QA Engineer
Mathias Asp, Project Manager
Keith Vedananda, UI Developer
Roman Bolshev, UI Developer
Anton Lunev, UI Developer

Business use only
NIBR Informatics (NX)
Project Information
Outsource chemistry processes
Trading and bidding system
Document exchange
Numbers
Purpose
450 people per day all around the world
30000 chemical reagents were delivered in last 4 years
90000 biological tests were ordered in last year
Help people to do better job

Business use only
NIBR Informatics (NX)
Project Information
Angular 1.3 => Angular 4 => Angular 5 => Angular 6
Grunt => Webpack => Angular-cli
Numbers
Tech stack
340 different UI components
230 modules
2 UI developers
82 lazy loaded chunks
530kb initial load
~650 *.ts files
143 different routes

Business use only
NIBR Informatics (NX)
NIBR Style guide update
September 2017




Business use only
NIBR Informatics (NX)
CSS variables



Business use only
NIBR Informatics (NX)
NIBR Style guide update
November 2017 - First production app in new style




Business use only
NIBR Informatics (NX)
Angular update
September 2016 - Angular 2 release
May 2017 - first commit with Angular 4 #87010
January 2018 - first commit without Angular 1 #90461


Business use only
NIBR Informatics (NX)
Update strategies
Vertical slicing
Horizontal slicing
Our approach
New framework introduction

Business use only
NIBR Informatics (NX)
Framework upgrade



Business use only
NIBR Informatics (NX)
NgUpgrade


Business use only
NIBR Informatics (NX)
Vertical slicing


Business use only
NIBR Informatics (NX)
Vertical slicing






Business use only
NIBR Informatics (NX)
Vertical slicing


Business use only
NIBR Informatics (NX)
Horizontal slicing


Business use only
NIBR Informatics (NX)
Horizontal slicing





Business use only
NIBR Informatics (NX)
Our update strategy






Business use only
NIBR Informatics (NX)
App structure

Business use only
NIBR Informatics (NX)
Type script
Intellisense(IDE support)
API contract
Documentation
Compilation time type checking
Easy refactoring

Business use only
NIBR Informatics (NX)
Questions?
Thank you!
evolution
By Maxim Milovanov
evolution
- 993