Accelerate Your User Experience With Client-side JavaScriptLessons Learned From QuickBooks Online (QBO) презентация

Содержание

Intuit’s Mission: To improve our customers’ financial lives so profoundly… they can’t imagine going back to the old way

Слайд 1Accelerate Your User Experience With Client-side JavaScript Lessons Learned From QuickBooks Online

(QBO)

Joe Wells
Engineering Fellow, Intuit


Слайд 2Intuit’s Mission:
To improve our customers’ financial lives so profoundly… they can’t imagine

going back to the old way

Слайд 3A Premiere Innovative Growth Company


Слайд 4Key Concepts
Everything as a service
Client-side frameworks to accelerate coding
Designing services from

the UI-first
Plugin framework to unlock innovation
Putting it all together: working with your experience designers

Слайд 5QBO Transformation


Слайд 6Under the Hood: Everything as a Service


Слайд 7QBO 2001-2010 Architecture
Server-Side Presentation


Single Data Center
JSP / Custom Java UI


Слайд 8QBO 2014 Architecture
Configurable Tax Model
Accounting Standards
eInvoicing & Payments
Global & AppStore Billing
Intuit

Partner Platform

JMS Messaging




Client Rendering
HTML5
iOS
Android

Data-Only Transport

Developer
API Services

Global Accounting Engine

World-Wide
Data Centers


Слайд 9QBO Technologies
Client Rendering
HTML5
iOS
Android
Developer
API Services
Global Accounting Engine
World-Wide
Data Centers

Data-Only Transport


Слайд 10Client-side Frameworks


Слайд 11Frameworks
You’re using require.js, right?
And SASS/LESS please?
What about two-way binding?


Слайд 12Example: Two-way Binding

${nls.date}

data-dojo-type="qbo/widgets/DateTextBox”/>

visible: showDate
Hide/Show bound to this.model properties

${nls.date}
Externalization of strings

value: date
2-way value binding


Слайд 13UI-first Services


Слайд 14A common mistake is to design your services and then adapt

your UI to those services.

This is backwards!

And it results in extra complexity in your client code.

Слайд 15What Not to Do: Services First
{
phoneNumber: “650-944-1111”,
defaultTerms:

“30 Days”,
reportingMethod: “cash”,
payrollPeriod: “weekly”,
hasShipping: true
}

/companyPreferences

{
date: “2014-06-26”,
amount: 100.00,
customer: “John”
}

/invoice

Which ones apply to an Invoice? What is the logic to interpret them?


Слайд 16if (invoice.isNew && prefs.hasShipping) {
$(‘#shippingAddress’).show();
$(‘#shippingAmount’).show();
} else if (invoice.isEdit

&&
!!invoice.shippingAddress) {
$(‘#shippingAddress’).show();
$(‘#shippingAmount’).show();
}

Repeated over dozens of preferences!






Слайд 17Alternative: UI First


visible: hasShipping”
/>

{
hasShipping: true
}

/invoice?txnId=-1

{
hasShipping: true
}

/invoice?txnId=45


Слайд 18Our JSON
{
"txnId" : -1,
"txnTypeId" : 4,
"date" : "2014-06-26",

"txnProps" : {
"hasShipping" : true,
"hasDiscount" : true,
"hasLocation" : true,
"hasCharges" : true,
"hasReimbExpense" : true,
"taxReimbExpense" : false,

{
"txnId" : 101,
"txnTypeId" : 4,
"date" : "2014-06-26",
”amount" : 100.00,
”customer" : ”John”,
"txnProps" : {
"hasShipping" : true,
"hasDiscount" : true,
"hasLocation" : true,
"hasCharges" : true,
"hasReimbExpense" : true,
"taxReimbExpense" : false,


Слайд 19Accelerated Workflow


Слайд 20Workflow – QA


Resource Request
Serve json requests, images, js, css, fonts, …
Response

from QA Server

Chrome browser

QA Server


Слайд 21Workflow – Node.js localhost


Serve json requests, images, js, css, fonts, …
Chrome

browser

QA Server

Resource Request

Local Content?

No

Response from QA Server

Response from Node.js


Слайд 22Node.js localhost
var express = require("express");
var httpProxy = require("http-proxy");
var https = require("https");
var

fs = require("fs"); //load ssl cert

Слайд 23Plugin Framework to Unlock Innovation


Слайд 25Replaceable Plugin


Слайд 26Payroll in the US


Слайд 27Payroll in Australia


Слайд 28Let’s Code One


Слайд 29Putting It All Together: Working With Your Designers


Слайд 30Launch, August 2013


Слайд 31August 2012


Слайд 32October 2012


Слайд 33September 2012


Слайд 34November 2012


Слайд 35December 2012


Слайд 36February 2012


Слайд 37April 2013


Слайд 38June 2013


Слайд 39Launch, August 2013


Слайд 41Key Concepts
Everything as a service
Client-side frameworks to accelerate coding
Designing services from

the UI-first
Plugin framework to unlock innovation
Putting it all together: working with your experience designers

Слайд 42Thanks!
Joe_Wells@Intuit.com


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика