SlideShare une entreprise Scribd logo
1  sur  27
Our Battle Against Technical Debt
Behind Great Product #3: Build Your Code for the Future
Frandy & Herwidodo, February, 24th 2017
Who are we?
• Frandy Jaya
• Binusian
• Join blibli in 2012
• Java & JavaScript
Developer
• Herwidodo
• Budi Luhur, Computer
Science
• Join blibli in 2015
• Front End Developer
– Focus on Performance
and technology
Agenda
• What is Technical Debt and why it is sometime
sensible to take it
• Our journey to tackle technical debt and
modernize our technology stack
• Peek into our future Front End technology
Blibli.com UI pre launch 2010
Blibli.com UI Circa 2012
Build Your Code for the Future
Technical Debt
Technical Debt
Technical Debt is a wonderful metaphor developed by
Ward Cunningham to help us think about this problem.
In this metaphor, doing things the quick and dirty way
sets us up with a technical debt, which is similar to a
financial debt.
Like a financial debt, the technical debt incurs interest
payments, which come in the form of the extra effort
that we have to do in future development because of
the quick and dirty design choice.
https://martinfowler.com/bliki/TechnicalDebt.html
Taking Technical Debt is Sensible
• Time to market trump good design when you
have unproven business
• Until it is hold you back, crippling your
productivity
Taking Technical Debt is Sensible
• Paying technical debt is hard, it needs support
from very top level
• Rewrite / Refactor based on proven
technology
Architectural Debt
Blibli.com SOA architecture circa 2013
Store Front
Back officeMerchant
ESB
Blibli.com UI Circa 2013
• Technology
– Dojo
– JSP
– JQuery
– Websphere Commerce Server
• Technical Debt
– Huge javascript file
– Slow backend
• Temporary remedies
– YSlow to evaluate
performance
– YUI Compressor
– Implement SOLR to help
backend performance issue
Blibli.com UI rewrite 2014
Technology
• AngularJS 1.2
• Responsive Design
• Solr 4
• Java 7, Spring and Tomcat
• Redis
• Google Pagespeed and Varnish
Combination of Server Side Rendering and SPA
• Checkout page is
SPA
• Product Detail page
is half SPA
• Catalog, search and
others are server
side rendering for
SEO puprpose
Content Problem
• Problem
– Content is scattered in Code
– No database to hold content data
– Multichannel UI is not possible
• Solution
– In House CMS system
– Save content in database
– Layout in database
Improved Architecture
Store Front
Engine
Back officeMerchant
ESB
Store Front
UI
SOLR
CMS
Internet
Responsive vs Adaptive
• Our responsive problem
– Desktop and mobile web UI share almost nothing,
all element are different
– Mobile web was really slow
• Responsive done right
– Start with mobile web design
– Make it responsive to desktop web
– Success example
• salestockindonesia.com
Mobile Web UI revamp to adaptive 2015
• One controller 2 completely sparate UI
• CMS support 2 layout : Desktop and Mobile
Web
• SASS and Grunt introduction on mobile web
UI
• SPA page still using responsive
• Mobile Web performance increase
dramatically
Break Monolithic to Microservices 2015
Store Front
UI
SOLR
CMS
Internet
20+ Microservices
to handle transactions
Travel UI
Digital
Product UI
10+ Microservices
to handle travel
10+ Microservices
to handle Digital Product
Front End Performance 2016
• Server side load < 1s
• Front end average load time ~ 12s
• What was the problem
– Blocked javascript execution
– DOM size ~ 700kb
– Page size ~ 3MB
– Single big CSS file block rendering
• Solution
– Differ javascript
– Decrease DOM size using ajax and lazy load
– Lazy load all image, start download when image in viewpoint
– Break CSS, inline CSS for layout and rendering
– Put third party JS at the and of DOM
• Result : frond end average load time ~4s - 6s
Front End Performance Result
Code Quality : Block Element Modifire (BEM)
• Maintainable
• Easy Tracking
• Modular
• Flexible
• Support partial load
• Fit with component based modern framework
ex : React, Vue, Polymer.
Brand new Travel UI is using BEM and SPA
Code Quality : Design System and Blistrap
Front-End Tooling and Development Cycle
• It is crazy time where front end developer
need compiler and build tools !!
– SASS
– Grunt : Concate & minify CSS + JS
• Existing UI application is basically Java Project
– Use Maven to build
– Use tomcat to run application
– Takes ~ 10 minutes from fresh build to application
ready
A Peek to Our Front End Technology in Future
• Separate backend and front end completely
– Single Page Application
– Backend as API
• Front End developer friendly tools
– VueJS
– SASS
– Webpack
– NodeJS to simulate route and response of Backend API
• Automated testing and quality gate
– VueJS unit testing
– CodeceptJS for acceptance test
• Reactive backend using Spring and RxJava to connect to
many microservices using nonblocking IO
We Are Hiring!!
THANK YOU

Contenu connexe

Tendances

Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page ApplicationKMS Technology
 
Advancing Content Management for Omni-Channel User Experiences by Roland Bene...
Advancing Content Management for Omni-Channel User Experiences by Roland Bene...Advancing Content Management for Omni-Channel User Experiences by Roland Bene...
Advancing Content Management for Omni-Channel User Experiences by Roland Bene...eZ Systems
 
Agriya services
Agriya servicesAgriya services
Agriya servicesiScripts
 
Single page applications
Single page applicationsSingle page applications
Single page applicationsDiego Cardozo
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSPantheon
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A TeamMuhammad Akbar Yasin
 
Developing An Effective e-Learning Platform From Ready-Made Script
Developing An Effective e-Learning Platform From Ready-Made ScriptDeveloping An Effective e-Learning Platform From Ready-Made Script
Developing An Effective e-Learning Platform From Ready-Made ScriptiScripts
 
Single page application
Single page applicationSingle page application
Single page applicationArthur Fung
 
Web Development In 2018
Web Development In 2018Web Development In 2018
Web Development In 2018Traversy Media
 
PHP Framework
PHP FrameworkPHP Framework
PHP Frameworkceleroo
 
Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014
Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014
Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014Duy Lâm
 
Learning Single page Application chapter 1
Learning Single page Application chapter 1Learning Single page Application chapter 1
Learning Single page Application chapter 1Puguh Rismadi
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework differenceiScripts
 
Single page applications
Single page applicationsSingle page applications
Single page applicationsPrafful Garg
 
Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--devaltsav
 
Shaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's API
Shaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's APIShaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's API
Shaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's APICaroline_Rose
 

Tendances (20)

Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
 
Advancing Content Management for Omni-Channel User Experiences by Roland Bene...
Advancing Content Management for Omni-Channel User Experiences by Roland Bene...Advancing Content Management for Omni-Channel User Experiences by Roland Bene...
Advancing Content Management for Omni-Channel User Experiences by Roland Bene...
 
Agriya services
Agriya servicesAgriya services
Agriya services
 
Single page applications
Single page applicationsSingle page applications
Single page applications
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMS
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
 
Developing An Effective e-Learning Platform From Ready-Made Script
Developing An Effective e-Learning Platform From Ready-Made ScriptDeveloping An Effective e-Learning Platform From Ready-Made Script
Developing An Effective e-Learning Platform From Ready-Made Script
 
Single page application
Single page applicationSingle page application
Single page application
 
Web Development In 2018
Web Development In 2018Web Development In 2018
Web Development In 2018
 
PHP Framework
PHP FrameworkPHP Framework
PHP Framework
 
Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014
Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014
Building Single-page Web Applications with AngularJS @ TechCamp Sai Gon 2014
 
Learning Single page Application chapter 1
Learning Single page Application chapter 1Learning Single page Application chapter 1
Learning Single page Application chapter 1
 
Benefits of developing a Single Page Web Applications using AngularJS
Benefits of developing a Single Page Web Applications using AngularJSBenefits of developing a Single Page Web Applications using AngularJS
Benefits of developing a Single Page Web Applications using AngularJS
 
Single page applications
Single page applicationsSingle page applications
Single page applications
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework difference
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
 
Single page applications
Single page applicationsSingle page applications
Single page applications
 
Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--dev
 
Shaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's API
Shaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's APIShaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's API
Shaddy Zeineddine: Queuing w/ MongoDB & BreakMedia's API
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 

En vedette

Lesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comLesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comifnu bima
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBjava-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBifnu bima
 
Blibli.com[kiyosaki]
Blibli.com[kiyosaki]Blibli.com[kiyosaki]
Blibli.com[kiyosaki]Edo Alfendo
 
Development di Blibli
Development di BlibliDevelopment di Blibli
Development di Blibliifnu bima
 
Harbolnas 2015 part 01
Harbolnas 2015 part 01Harbolnas 2015 part 01
Harbolnas 2015 part 01JAKPATAPP
 
e commerce pada perusahaan lazada indonesia
e commerce pada perusahaan lazada indonesiae commerce pada perusahaan lazada indonesia
e commerce pada perusahaan lazada indonesiaSammuel Des Andre
 
Analisis pada e-commerce dan website Tokopedia.com
Analisis pada e-commerce dan website Tokopedia.comAnalisis pada e-commerce dan website Tokopedia.com
Analisis pada e-commerce dan website Tokopedia.comCllszhr
 
Digital Marketing Overview
Digital Marketing OverviewDigital Marketing Overview
Digital Marketing OverviewAnton Koekemoer
 

En vedette (13)

Lesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comLesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.com
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBjava-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
 
E-Commerce blibli.com
E-Commerce blibli.comE-Commerce blibli.com
E-Commerce blibli.com
 
Blibli.com[kiyosaki]
Blibli.com[kiyosaki]Blibli.com[kiyosaki]
Blibli.com[kiyosaki]
 
Development di Blibli
Development di BlibliDevelopment di Blibli
Development di Blibli
 
Blibli.com
Blibli.comBlibli.com
Blibli.com
 
Harbolnas 2015 part 01
Harbolnas 2015 part 01Harbolnas 2015 part 01
Harbolnas 2015 part 01
 
Analisis lingkungan internal
Analisis lingkungan internalAnalisis lingkungan internal
Analisis lingkungan internal
 
e commerce pada perusahaan lazada indonesia
e commerce pada perusahaan lazada indonesiae commerce pada perusahaan lazada indonesia
e commerce pada perusahaan lazada indonesia
 
Analisis pada e-commerce dan website Tokopedia.com
Analisis pada e-commerce dan website Tokopedia.comAnalisis pada e-commerce dan website Tokopedia.com
Analisis pada e-commerce dan website Tokopedia.com
 
HangOut_with_FreakOut_Deck_blibli
HangOut_with_FreakOut_Deck_blibliHangOut_with_FreakOut_Deck_blibli
HangOut_with_FreakOut_Deck_blibli
 
Digital Marketing Overview
Digital Marketing OverviewDigital Marketing Overview
Digital Marketing Overview
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similaire à Our Battle Against Technical Debt

Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureSARCCOM
 
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Jason Strimpel
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFacesLukáš Fryč
 
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJSSrijan Technologies
 
Performance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsPerformance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesAndy_Gaskell
 
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails MonolithRiding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails MonolithSean McCullough
 
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Aaron Saunders
 
ReactJS with WordPress Headless Approach
ReactJS with WordPress Headless ApproachReactJS with WordPress Headless Approach
ReactJS with WordPress Headless ApproachJP Wallhorn
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentationcolberding
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Rise and Fall of the Frontend Developer
Rise and Fall of the Frontend DeveloperRise and Fall of the Frontend Developer
Rise and Fall of the Frontend DeveloperRafael Casuso Romate
 
SadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikul Islam
 
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
[RakutenTechConf2013] [E-2] HTML5 in Rakuten[RakutenTechConf2013] [E-2] HTML5 in Rakuten
[RakutenTechConf2013] [E-2] HTML5 in RakutenRakuten Group, Inc.
 
My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...
My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...
My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...Ananya Sen
 
Theming and Branding in App Builder
Theming and Branding in App BuilderTheming and Branding in App Builder
Theming and Branding in App BuilderJohnMcGuigan10
 
The Business Case for Speed
The Business Case for SpeedThe Business Case for Speed
The Business Case for SpeedSiriusWay
 

Similaire à Our Battle Against Technical Debt (20)

Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering Culture
 
Eureko frameworks
Eureko frameworksEureko frameworks
Eureko frameworks
 
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFaces
 
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
 
Performance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsPerformance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React Applications
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails MonolithRiding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
 
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
 
ReactJS with WordPress Headless Approach
ReactJS with WordPress Headless ApproachReactJS with WordPress Headless Approach
ReactJS with WordPress Headless Approach
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentation
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Rise and Fall of the Frontend Developer
Rise and Fall of the Frontend DeveloperRise and Fall of the Frontend Developer
Rise and Fall of the Frontend Developer
 
SadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikulIslamDotNetResume
SadikulIslamDotNetResume
 
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
[RakutenTechConf2013] [E-2] HTML5 in Rakuten[RakutenTechConf2013] [E-2] HTML5 in Rakuten
[RakutenTechConf2013] [E-2] HTML5 in Rakuten
 
Sitecore and Responsive Web Design
Sitecore and Responsive Web Design Sitecore and Responsive Web Design
Sitecore and Responsive Web Design
 
My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...
My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...
My presentation at Grace Hopper Conference 2014, about Rewrite/Refactor with ...
 
Theming and Branding in App Builder
Theming and Branding in App BuilderTheming and Branding in App Builder
Theming and Branding in App Builder
 
The Business Case for Speed
The Business Case for SpeedThe Business Case for Speed
The Business Case for Speed
 

Plus de ifnu bima

Northstar Metrics and OKR
Northstar Metrics and OKRNorthstar Metrics and OKR
Northstar Metrics and OKRifnu bima
 
A brief history of metrics
A brief history of metricsA brief history of metrics
A brief history of metricsifnu bima
 
IT Today IPB 2017 : bring new era of business with e-commerce
IT Today IPB 2017 : bring new era of business with e-commerceIT Today IPB 2017 : bring new era of business with e-commerce
IT Today IPB 2017 : bring new era of business with e-commerceifnu bima
 
solr @ blibli
solr @ bliblisolr @ blibli
solr @ blibliifnu bima
 
Java Technology
Java TechnologyJava Technology
Java Technologyifnu bima
 
Rembug Presentation
Rembug PresentationRembug Presentation
Rembug Presentationifnu bima
 
Free Software Foundation,FSF,Opensource
Free Software Foundation,FSF,OpensourceFree Software Foundation,FSF,Opensource
Free Software Foundation,FSF,Opensourceifnu bima
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Springifnu bima
 

Plus de ifnu bima (11)

Northstar Metrics and OKR
Northstar Metrics and OKRNorthstar Metrics and OKR
Northstar Metrics and OKR
 
A brief history of metrics
A brief history of metricsA brief history of metrics
A brief history of metrics
 
Clean code
Clean codeClean code
Clean code
 
IT Today IPB 2017 : bring new era of business with e-commerce
IT Today IPB 2017 : bring new era of business with e-commerceIT Today IPB 2017 : bring new era of business with e-commerce
IT Today IPB 2017 : bring new era of business with e-commerce
 
solr @ blibli
solr @ bliblisolr @ blibli
solr @ blibli
 
Java Technology
Java TechnologyJava Technology
Java Technology
 
Spring Mvc
Spring MvcSpring Mvc
Spring Mvc
 
Rembug Presentation
Rembug PresentationRembug Presentation
Rembug Presentation
 
IT Carier
IT CarierIT Carier
IT Carier
 
Free Software Foundation,FSF,Opensource
Free Software Foundation,FSF,OpensourceFree Software Foundation,FSF,Opensource
Free Software Foundation,FSF,Opensource
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
 

Dernier

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 

Dernier (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

Our Battle Against Technical Debt

  • 1. Our Battle Against Technical Debt Behind Great Product #3: Build Your Code for the Future Frandy & Herwidodo, February, 24th 2017
  • 2. Who are we? • Frandy Jaya • Binusian • Join blibli in 2012 • Java & JavaScript Developer • Herwidodo • Budi Luhur, Computer Science • Join blibli in 2015 • Front End Developer – Focus on Performance and technology
  • 3. Agenda • What is Technical Debt and why it is sometime sensible to take it • Our journey to tackle technical debt and modernize our technology stack • Peek into our future Front End technology
  • 4. Blibli.com UI pre launch 2010
  • 6. Build Your Code for the Future Technical Debt
  • 7. Technical Debt Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. https://martinfowler.com/bliki/TechnicalDebt.html
  • 8. Taking Technical Debt is Sensible • Time to market trump good design when you have unproven business • Until it is hold you back, crippling your productivity
  • 9. Taking Technical Debt is Sensible • Paying technical debt is hard, it needs support from very top level • Rewrite / Refactor based on proven technology
  • 10. Architectural Debt Blibli.com SOA architecture circa 2013 Store Front Back officeMerchant ESB
  • 11. Blibli.com UI Circa 2013 • Technology – Dojo – JSP – JQuery – Websphere Commerce Server • Technical Debt – Huge javascript file – Slow backend • Temporary remedies – YSlow to evaluate performance – YUI Compressor – Implement SOLR to help backend performance issue
  • 13. Technology • AngularJS 1.2 • Responsive Design • Solr 4 • Java 7, Spring and Tomcat • Redis • Google Pagespeed and Varnish
  • 14. Combination of Server Side Rendering and SPA • Checkout page is SPA • Product Detail page is half SPA • Catalog, search and others are server side rendering for SEO puprpose
  • 15. Content Problem • Problem – Content is scattered in Code – No database to hold content data – Multichannel UI is not possible • Solution – In House CMS system – Save content in database – Layout in database
  • 16. Improved Architecture Store Front Engine Back officeMerchant ESB Store Front UI SOLR CMS Internet
  • 17. Responsive vs Adaptive • Our responsive problem – Desktop and mobile web UI share almost nothing, all element are different – Mobile web was really slow • Responsive done right – Start with mobile web design – Make it responsive to desktop web – Success example • salestockindonesia.com
  • 18. Mobile Web UI revamp to adaptive 2015 • One controller 2 completely sparate UI • CMS support 2 layout : Desktop and Mobile Web • SASS and Grunt introduction on mobile web UI • SPA page still using responsive • Mobile Web performance increase dramatically
  • 19. Break Monolithic to Microservices 2015 Store Front UI SOLR CMS Internet 20+ Microservices to handle transactions Travel UI Digital Product UI 10+ Microservices to handle travel 10+ Microservices to handle Digital Product
  • 20. Front End Performance 2016 • Server side load < 1s • Front end average load time ~ 12s • What was the problem – Blocked javascript execution – DOM size ~ 700kb – Page size ~ 3MB – Single big CSS file block rendering • Solution – Differ javascript – Decrease DOM size using ajax and lazy load – Lazy load all image, start download when image in viewpoint – Break CSS, inline CSS for layout and rendering – Put third party JS at the and of DOM • Result : frond end average load time ~4s - 6s
  • 22. Code Quality : Block Element Modifire (BEM) • Maintainable • Easy Tracking • Modular • Flexible • Support partial load • Fit with component based modern framework ex : React, Vue, Polymer.
  • 23. Brand new Travel UI is using BEM and SPA
  • 24. Code Quality : Design System and Blistrap
  • 25. Front-End Tooling and Development Cycle • It is crazy time where front end developer need compiler and build tools !! – SASS – Grunt : Concate & minify CSS + JS • Existing UI application is basically Java Project – Use Maven to build – Use tomcat to run application – Takes ~ 10 minutes from fresh build to application ready
  • 26. A Peek to Our Front End Technology in Future • Separate backend and front end completely – Single Page Application – Backend as API • Front End developer friendly tools – VueJS – SASS – Webpack – NodeJS to simulate route and response of Backend API • Automated testing and quality gate – VueJS unit testing – CodeceptJS for acceptance test • Reactive backend using Spring and RxJava to connect to many microservices using nonblocking IO