SlideShare a Scribd company logo
Large Scale SPA 
A Retrospective 
Reza Moaiandin 
@moaiandin
Who am I? 
Job title: Application Developer 
What do I do? Front End Development + Some backend 
For How long? 
8 months as Front End Dev 
2.5 Years as Software engineer 
Strengths : JavaScript & PHP 
I work for Flashtalking Leeds 
Twitter: @moaiandin 
@moaiandin
What is SPA? 
“Single page applications are the modern 
version of web apps where all/majority of the 
interactions are handled on a single page” 
They have very little server interaction (Thin Server Architecture) 
@moaiandin
Any Examples? 
What I do at Flashtalking: AdBuilder (The real deal!) 
Others: Trello, Gmail, Twitter & Facebook (Almost) 
@moaiandin
jQuery Rocks! Why should I care? 
So you think you are a JavaScript Ninja? 
@moaiandin
It’s Messy! 
@moaiandin
Also… 
Not designed for very complex applications 
Lots of nested code 
No Structure 
Bad performance 
SAD JQUERY 
NINJA! 
@moaiandin
What do we get from SPA? 
Speed, Fast response time! 
Modular 
Maintainable 
Decoupled 
Extensible 
Structured 
@moaiandin
It’s nice to work on! 
@moaiandin
How do we do it? 
What do we use? 
@moaiandin
Dos 
Plan 
Keep things structured 
Use task runners (Grunt, Gulp) 
Use libraries that work for your SPA (Backbone, AngularJS) 
Don’t change path 
Test 
Do it right, MV* 
Use routers if you need it (Keep SEO people Happy) 
@moaiandin
Do it right, MV* 
Use routes if you need it (Keeping SEO people Happy) 
SERVER 
MODEL 
VIEW CONTROLLER 
Templates View 
Router 
Events 
Events 
Events 
Model Collection 
Read 
Update 
Client Browser 
@moaiandin
Don’ts 
Don’t Try to reinvent the wheel! 
Look for the tool/library you need before making it! 
Don’t feel constrained to use what the library/tool gives you 
Don’t write tests after development 
It’s not DDT, It’s TDD! 
@moaiandin
Don’t leave crumbs! 
Look out for memory leaks, clean them up! 
@moaiandin
Questions? 
Thank you 
@moaiandin

More Related Content

What's hot

DevOps for Engineers
DevOps for EngineersDevOps for Engineers
DevOps for Engineers
Ahmed AbouZaid
 
Div’s vs Tables
Div’s vs TablesDiv’s vs Tables
Div’s vs Tables
jwmoore76
 
Evaluation Question Number 6
Evaluation Question Number 6Evaluation Question Number 6
Evaluation Question Number 6
bilalahmad1212
 
Schedule and recourses
Schedule and recoursesSchedule and recourses
Schedule and recourses
katiesteph5
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase Experiences
Isatu Conteh
 
The absolute must read book for programmers
The absolute must read book for programmersThe absolute must read book for programmers
The absolute must read book for programmers
Sachin FromDev
 
JsWorld Conference Online - Improving developer collaboration with CodeSandbox
JsWorld Conference Online - Improving developer collaboration with CodeSandbox JsWorld Conference Online - Improving developer collaboration with CodeSandbox
JsWorld Conference Online - Improving developer collaboration with CodeSandbox
Abati Adewale
 
Improving developer collaboration with CodeSandbox
Improving developer collaboration with CodeSandboxImproving developer collaboration with CodeSandbox
Improving developer collaboration with CodeSandbox
Abati Adewale
 
Building native mobile Apps with ReactNative
Building native mobile Apps with ReactNative Building native mobile Apps with ReactNative
Building native mobile Apps with ReactNative
Samuel Barbosa
 
Multipack
MultipackMultipack
The Secret Life of Side Projects
The Secret Life of Side ProjectsThe Secret Life of Side Projects
The Secret Life of Side Projects
Ofir Dagan
 
Android app development – what you should not
Android app development – what you should notAndroid app development – what you should not
Android app development – what you should not
manisha ips
 
Equipment list software
Equipment list softwareEquipment list software
Equipment list software
Shahil Islam
 
Critical analysis 4
Critical analysis 4Critical analysis 4
Critical analysis 4
sijjal
 
Embracing the Change: How to Win with Gutenberg
Embracing the Change: How to Win with GutenbergEmbracing the Change: How to Win with Gutenberg
Embracing the Change: How to Win with Gutenberg
WP Engine
 
Junior.next(LeadDeveloper)
Junior.next(LeadDeveloper)Junior.next(LeadDeveloper)
Junior.next(LeadDeveloper)
Tara Ojo
 
Toronto Virtual Meetup #9 - KPIs and metrics accelerator
Toronto Virtual Meetup #9 - KPIs and metrics acceleratorToronto Virtual Meetup #9 - KPIs and metrics accelerator
Toronto Virtual Meetup #9 - KPIs and metrics accelerator
Alexandra N. Martinez
 
Shrey jairath li
Shrey jairath liShrey jairath li
Shrey jairath li
Shrey Jairath
 
Shrey jairath
Shrey jairathShrey jairath
Shrey jairath
Shrey Jairath
 
From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011
From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011
From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011
tcs digital world
 

What's hot (20)

DevOps for Engineers
DevOps for EngineersDevOps for Engineers
DevOps for Engineers
 
Div’s vs Tables
Div’s vs TablesDiv’s vs Tables
Div’s vs Tables
 
Evaluation Question Number 6
Evaluation Question Number 6Evaluation Question Number 6
Evaluation Question Number 6
 
Schedule and recourses
Schedule and recoursesSchedule and recourses
Schedule and recourses
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase Experiences
 
The absolute must read book for programmers
The absolute must read book for programmersThe absolute must read book for programmers
The absolute must read book for programmers
 
JsWorld Conference Online - Improving developer collaboration with CodeSandbox
JsWorld Conference Online - Improving developer collaboration with CodeSandbox JsWorld Conference Online - Improving developer collaboration with CodeSandbox
JsWorld Conference Online - Improving developer collaboration with CodeSandbox
 
Improving developer collaboration with CodeSandbox
Improving developer collaboration with CodeSandboxImproving developer collaboration with CodeSandbox
Improving developer collaboration with CodeSandbox
 
Building native mobile Apps with ReactNative
Building native mobile Apps with ReactNative Building native mobile Apps with ReactNative
Building native mobile Apps with ReactNative
 
Multipack
MultipackMultipack
Multipack
 
The Secret Life of Side Projects
The Secret Life of Side ProjectsThe Secret Life of Side Projects
The Secret Life of Side Projects
 
Android app development – what you should not
Android app development – what you should notAndroid app development – what you should not
Android app development – what you should not
 
Equipment list software
Equipment list softwareEquipment list software
Equipment list software
 
Critical analysis 4
Critical analysis 4Critical analysis 4
Critical analysis 4
 
Embracing the Change: How to Win with Gutenberg
Embracing the Change: How to Win with GutenbergEmbracing the Change: How to Win with Gutenberg
Embracing the Change: How to Win with Gutenberg
 
Junior.next(LeadDeveloper)
Junior.next(LeadDeveloper)Junior.next(LeadDeveloper)
Junior.next(LeadDeveloper)
 
Toronto Virtual Meetup #9 - KPIs and metrics accelerator
Toronto Virtual Meetup #9 - KPIs and metrics acceleratorToronto Virtual Meetup #9 - KPIs and metrics accelerator
Toronto Virtual Meetup #9 - KPIs and metrics accelerator
 
Shrey jairath li
Shrey jairath liShrey jairath li
Shrey jairath li
 
Shrey jairath
Shrey jairathShrey jairath
Shrey jairath
 
From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011
From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011
From idea to market in 48 hours - Steven Van Bael - droidcon.be 2011
 

Similar to Large Scale SPA

How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
Radovan Semancik
 
Using PhoneGap to develop incredible HTML5 hybrid mobile apps
Using PhoneGap to develop incredible HTML5 hybrid mobile appsUsing PhoneGap to develop incredible HTML5 hybrid mobile apps
Using PhoneGap to develop incredible HTML5 hybrid mobile apps
Monaca
 
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
KNOWARTH - Software Development Company
 
Flow: A living full-stack framework for the web
Flow: A living full-stack framework for the webFlow: A living full-stack framework for the web
Flow: A living full-stack framework for the web
sebastian sastre
 
Front-End Fun: How to finally work with designers!
Front-End Fun: How to finally work with designers!Front-End Fun: How to finally work with designers!
Front-End Fun: How to finally work with designers!
helenalozano6
 
Learning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails LaunchLearning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails Launch
Thiam Hock Ng
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
Jaewoo Ahn
 
Ice dec05-04-wan leung
Ice dec05-04-wan leungIce dec05-04-wan leung
Ice dec05-04-wan leung
Chun Ming Au Yeung
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your Clients
Pantheon
 
How Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectHow Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your Project
Wan Leung Wong
 
Info Session GDSC USICT
Info Session GDSC USICTInfo Session GDSC USICT
Info Session GDSC USICT
DSCUSICT
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
btopro
 
2020 Top Web Development Trends
2020 Top Web Development Trends2020 Top Web Development Trends
2020 Top Web Development Trends
Pencil Agency
 
How to do b tech be projects or any academic projects
How to do b tech be projects or any academic projectsHow to do b tech be projects or any academic projects
How to do b tech be projects or any academic projects
baabtra.com - No. 1 supplier of quality freshers
 
RealDay: Angular.js
RealDay: Angular.jsRealDay: Angular.js
RealDay: Angular.js
Miguel Schmitz Grazziotin
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
Alexandru Bolboaca
 
Google summer of code 2012
Google summer of code 2012Google summer of code 2012
Google summer of code 2012
Pradeeban Kathiravelu, Ph.D.
 
Rapid design prototyping
Rapid design prototypingRapid design prototyping
Rapid design prototyping
Ayako Sayama
 
Universal apps lightning talk
Universal apps lightning talk Universal apps lightning talk
Universal apps lightning talk
Elyse Kolker Gordon
 
Beyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web applicationBeyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web application
Pete Smith
 

Similar to Large Scale SPA (20)

How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
 
Using PhoneGap to develop incredible HTML5 hybrid mobile apps
Using PhoneGap to develop incredible HTML5 hybrid mobile appsUsing PhoneGap to develop incredible HTML5 hybrid mobile apps
Using PhoneGap to develop incredible HTML5 hybrid mobile apps
 
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
 
Flow: A living full-stack framework for the web
Flow: A living full-stack framework for the webFlow: A living full-stack framework for the web
Flow: A living full-stack framework for the web
 
Front-End Fun: How to finally work with designers!
Front-End Fun: How to finally work with designers!Front-End Fun: How to finally work with designers!
Front-End Fun: How to finally work with designers!
 
Learning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails LaunchLearning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails Launch
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
Ice dec05-04-wan leung
Ice dec05-04-wan leungIce dec05-04-wan leung
Ice dec05-04-wan leung
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your Clients
 
How Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectHow Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your Project
 
Info Session GDSC USICT
Info Session GDSC USICTInfo Session GDSC USICT
Info Session GDSC USICT
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
 
2020 Top Web Development Trends
2020 Top Web Development Trends2020 Top Web Development Trends
2020 Top Web Development Trends
 
How to do b tech be projects or any academic projects
How to do b tech be projects or any academic projectsHow to do b tech be projects or any academic projects
How to do b tech be projects or any academic projects
 
RealDay: Angular.js
RealDay: Angular.jsRealDay: Angular.js
RealDay: Angular.js
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Google summer of code 2012
Google summer of code 2012Google summer of code 2012
Google summer of code 2012
 
Rapid design prototyping
Rapid design prototypingRapid design prototyping
Rapid design prototyping
 
Universal apps lightning talk
Universal apps lightning talk Universal apps lightning talk
Universal apps lightning talk
 
Beyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web applicationBeyond responsive design - UI for the modern web application
Beyond responsive design - UI for the modern web application
 

Recently uploaded

All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 

Recently uploaded (20)

All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 

Large Scale SPA

  • 1. Large Scale SPA A Retrospective Reza Moaiandin @moaiandin
  • 2. Who am I? Job title: Application Developer What do I do? Front End Development + Some backend For How long? 8 months as Front End Dev 2.5 Years as Software engineer Strengths : JavaScript & PHP I work for Flashtalking Leeds Twitter: @moaiandin @moaiandin
  • 3. What is SPA? “Single page applications are the modern version of web apps where all/majority of the interactions are handled on a single page” They have very little server interaction (Thin Server Architecture) @moaiandin
  • 4. Any Examples? What I do at Flashtalking: AdBuilder (The real deal!) Others: Trello, Gmail, Twitter & Facebook (Almost) @moaiandin
  • 5. jQuery Rocks! Why should I care? So you think you are a JavaScript Ninja? @moaiandin
  • 7. Also… Not designed for very complex applications Lots of nested code No Structure Bad performance SAD JQUERY NINJA! @moaiandin
  • 8. What do we get from SPA? Speed, Fast response time! Modular Maintainable Decoupled Extensible Structured @moaiandin
  • 9. It’s nice to work on! @moaiandin
  • 10. How do we do it? What do we use? @moaiandin
  • 11. Dos Plan Keep things structured Use task runners (Grunt, Gulp) Use libraries that work for your SPA (Backbone, AngularJS) Don’t change path Test Do it right, MV* Use routers if you need it (Keep SEO people Happy) @moaiandin
  • 12. Do it right, MV* Use routes if you need it (Keeping SEO people Happy) SERVER MODEL VIEW CONTROLLER Templates View Router Events Events Events Model Collection Read Update Client Browser @moaiandin
  • 13. Don’ts Don’t Try to reinvent the wheel! Look for the tool/library you need before making it! Don’t feel constrained to use what the library/tool gives you Don’t write tests after development It’s not DDT, It’s TDD! @moaiandin
  • 14. Don’t leave crumbs! Look out for memory leaks, clean them up! @moaiandin
  • 15. Questions? Thank you @moaiandin

Editor's Notes

  1. Majority of the processing is going to happen on the clients browser
  2. Talk about magento’s slow speed
  3. Agile meetings