2018-09-10 UI Architecture (v7) notes
Date
Sep 10, 2018
Attendees
@Josh Zamor (Deactivated)
@Nikodem Graczewski (Unlicensed)
@Wesley Brown
Goals
Discuss UI Architecture / UI v7
Get architecture concerns out in the open, and prioritize
Quick recap of tech committee discussion.
From last call on 9/7/18:
Sync on Angular and our thoughts on it / potential replacements
We discussed the future of frontend frameworks in the gap kickoff.
Have roughly 20k LOC of Angular 1.X
Development of Angular 1.X is continuing with the last planned release of 1.7 in 2018
Support for Angular 1.X is said to continue through to ~2020
There are some alternatives that would allow us to mix and match frameworks, such as React and Vue, along with Angular 1.X
We have no significant funding to seriously consider a rewrite away from Angular 1.X
Refactor business logic to POJO
POJO's for
Framework "independence"
Testability - objects
Typescript/ES6 - haven't started, would need some investigation into dev experience impact and LOE
Still in the brainstorming phase, caution against refactoring before we have our chosen roadmap
Identify the top architecture concerns that are limiting our ability to deliver (e.g. caching)
Caching is a top concern
There are often many repeated requests (e.g. minimal facilities)
Orderables is a good example
Fetching many times across UI
stock on hand screen, 100x calling orderableFulfills, why?
Only time we have a "caching" strategy is for offline requisition
We have a tooling gap - What JS library/tool can help us cache, and manage that cache. IOW what's the Redis of JS?
JQuery (uses the browser's store) or jquery lite (ships with angular)
Does is enforce using localstorage
Overall we're still looking for a tool to help with caching
Lets us use the storage we want to use
Helps manage the cache
Expiring items in cache
Helps us use HTTP Caching headers
We have a question on when to cache
On login
Just in time
We need to revisit this question
Gather more feedback on development concerns
Did this in tech committee
Wasn't much feedback
For next time: