Front End Development
at DriveTime
A brief overview of the current state of front end development at DriveTime and a look at what is on the current roadmap
in 2016
Presentation by Allen Rice
Frame up
Where we are

Where we're going
Front end dev stack refresher
Source: "
A Front-end Dev Stack in Visual Studio"











Where we are / How do you develop?
We've put a lot of time into internal engineering to
make our devs lives as easy as possible
-
We have tight control over the developers experiences via custom visual studio extensions
-
Major architectural pieces live in shared libraries and tooling so we get consistent build patterns and practices
-
We compile as much as we currently can by referencing our C# directly in our TypeScript via TypeLite
- Our larger applications are built with the mediator pattern
Highlights
- Unit tests are automatically created to cover our front end code
- Small pieces of shared code is starting to be created and used
- Training (ease and duration), day to day work and project kickoffs are greatly impacted by our tooling
- Feature switches and feature branches are giving the business a lot of options and flexibility
Speaking of highlights
We're among some interesting company


Where are we going?
- Code generation
- Improved unit testing
-
Improved tooling
- Improved patterns
- Invest in creating shared code
- Investing more into R & D
Code Generation
Currently, every dev hand write their ajax calls
# of ajax calls:
-
MyDriveTime: 13+
- VisionLTE: 46+
- POS: 50+
Those are all prone to error and took time to write
Solution: MvcControllerToProxyGenerator
Getting more out of our compiled languages
Unit testing
Right now, no one knows what the current code coverage is

Devs, Dev managers, and QA all need to know code coverage
Answer: Istanbul and Jenkins
What does it look like

Just another addition

Improved Tooling
Our scaffolders are very basic, aren't intelligent,
and are used very frequently
We want to reduce the amount of work
required and empower our power users
Desired Features:
- Settings and templates stored in project
- Apply common UI/UX patterns
Tooling cont.
before / after


Improved Patterns
Working in a mediator can be tough
Getting it right is important
A new pattern for the mediator itself:
events, orchestration and processors
We're trying it with LeadManagement
New Mediator Design pattern

Shared Code
We built the foundation for sharing, now we need content
- Common functionality
- Shared UI components
- Mediator & Sandbox pieces
- Code examples
- More 3rd party integration (AI, GA, etc)
Shared Code Cont.
All of this work should be seen as its own product
- DriveTime Template Pack
- DriveTime.UI.Package
- DriveTime.UI (bower)
- DriveTime.Build (npm)
- DriveTime.UI.NuGet (nuget)
- Need to allocate resources for contributions
Research & Development
Spend more time looking at tooling:
MvcControllerToProxyGenerator
was
discovered by accident
Collecting data:
Using analytical data collected via our tooling
Ultimate re-use:
Running TypeScript from Xamarin for mobile apps
Stretch goal:
Enabling strongly typed views via JSX modifications
R&D Continued
Need to stay on top of feature lists!
Angular,
React
BreezeJS
Backbone
Ember
Xamarin
Web Essentials
RECAP!
-
Formalizing our development ecosystem
-
Formalizing our architectural implementations
-
Getting coverage data out of the system for the first time
-
Getting free stuff with shared code and code generation
- Natural evolution of front end software development at DriveTime
Front End Development At DriveTime 2016
By Allen Rice
Front End Development At DriveTime 2016
A brief overview of the current (mid 2016) state of front end development at DriveTime and a look at what is on the current roadmap
- 1,012