SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
WELCOME

Integrating

into
legacy applications

Dienstag, 08. Oktober 13
Hi! I am Michael!

@LevelbossMike
Runtastic Head of Web Frontend

Dienstag, 08. Oktober 13
PROBLEM?!

Progressive
Enhancement
is

Dienstag, 08. Oktober 13
AGREEMENT

Dienstag, 08. Oktober 13
AGREEMENT

Dienstag, 08. Oktober 13
AGREEMENT

Dienstag, 08. Oktober 13
AGREEMENT

Dienstag, 08. Oktober 13
IT WORKS BUT..

Structure?
Maintainability?
Testability?
Extensibility?
Dienstag, 08. Oktober 13
IT WORKS BUT..

-> inconsistent
Structure?
Maintainability?
Testability?
Extensibility?

Dienstag, 08. Oktober 13
IT WORKS BUT..

-> inconsistent
Structure?
Maintainability? -> bad
Testability?
Extensibility?

Dienstag, 08. Oktober 13
IT WORKS BUT..

-> inconsistent
Structure?
Maintainability? -> bad
-> no
Testability?
Extensibility?

Dienstag, 08. Oktober 13
IT WORKS BUT..

-> inconsistent
Structure?
Maintainability? -> bad
-> no
Testability?
Extensibility? -> hell no!

Dienstag, 08. Oktober 13
SOLUTION

Framework!
Dienstag, 08. Oktober 13
ALTERNATIVES

Do It

Existing

Yourself Framework
Twitter & Facebook
yeah, right

Dienstag, 08. Oktober 13

(Backbone), Marionette, Knockout, Batman,
React, Flight, Angular, Ember...
Runtastic <3 <3 <3 Ember.js

Angular.js Ember.js
✓ popular (#4 github.com)

✓ popular (#22 github.com)

✓ easy to learn

␡ easy to learn

␡ convention over configuration
␡ url-support
␡ nested UIs
␡ minimizes DOM-updates
␡ data-store

✓ convention over configuration

Dienstag, 08. Oktober 13

✓ url-support
✓ nested UIs
✓ minimizes DOM-updates
✓ data-store
TRUTH

“

JS-Frontend development is not trivial.
Anybody expecting to build a functional app
in 5 minutes is batshit insane and should
gtfo and die in a fire.

Dienstag, 08. Oktober 13

”
FINALLY

Dienstag, 08. Oktober 13
CONVENTIONS

Structure?
-> yes
Maintainability?
-> yes
Testability?
-> yes
Extensibility?
-> yes

Dienstag, 08. Oktober 13
INTEGRATION
Easy:
Use the built in rootElement-property on Ember.Application
1 App = Ember.Application.create({
2
rootElement: '#ember-app'
3 });

http://emberjs.jsbin.com/iVUCIRo/1
Protip:You can have multiple Ember apps on one page.
-> Prevent Ember from changing URL by extending the default Router.
1 App.Router = Ember.Router.extend({
2
location: 'none'
3 });

Dienstag, 08. Oktober 13
ADVANCED INTEGRATION

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

App = Ember.Application.create({
rootElement: '#ember-app',
ready: function() {
if (Ember.$('#ember-app').data('mode') == 'search') {
this.set('searchMode', true);
}
}
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
if (App.get('searchMode')) {
this.transitionTo('searchResults');
} else {
this.transitionTo('profile');
}
}
});

http://emberjs.jsbin.com/iVUCIRo/5
Dienstag, 08. Oktober 13
COMPONENTS
Components can be shared across applications.
Components can be used to wrap 3rd party libraries (e.g. d3)
Components can be used outside of a big Ember application.
1 jsFrameworks = [
2
'Backbone', 'Marionette', 'Knockout', 'Batman',
3
'React', 'Flight', 'Angular', 'Ember'];
4
5 RT.SearchFieldComponent.create({ arrayToSearch: jsFrameworks })
6
.appendTo('#component');

http://emberjs.jsbin.com/ezApeGe/6
Protip:Write now, use now and later in a single page app.
-> Components can be nested! Composition FTW!
Dienstag, 08. Oktober 13
QUESTIONS?

Dienstag, 08. Oktober 13

Más contenido relacionado

Similar a Integrating Ember.js into legacy applications

Frozen Rails Slides
Frozen Rails SlidesFrozen Rails Slides
Frozen Rails Slides
carllerche
 
Building a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltBuilding a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and Salt
Docker, Inc.
 
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE EditorImplementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
peychevi
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
Corey Purcell
 

Similar a Integrating Ember.js into legacy applications (20)

Frozen Rails Slides
Frozen Rails SlidesFrozen Rails Slides
Frozen Rails Slides
 
Drupal 8 for site builders
Drupal 8 for site buildersDrupal 8 for site builders
Drupal 8 for site builders
 
Building a platform with Django, Docker, and Salt
Building a platform with Django, Docker, and SaltBuilding a platform with Django, Docker, and Salt
Building a platform with Django, Docker, and Salt
 
RailsConf 2013: RubyMotion
RailsConf 2013: RubyMotionRailsConf 2013: RubyMotion
RailsConf 2013: RubyMotion
 
JSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web Design
 
Green Shoots in the Brownest Field: Being a Startup in Government
Green Shoots in the Brownest Field: Being a Startup in GovernmentGreen Shoots in the Brownest Field: Being a Startup in Government
Green Shoots in the Brownest Field: Being a Startup in Government
 
Infrastructure as Code with Chef / Puppet
Infrastructure as Code with Chef / PuppetInfrastructure as Code with Chef / Puppet
Infrastructure as Code with Chef / Puppet
 
Smartgears
SmartgearsSmartgears
Smartgears
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJS
 
A Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an IslandA Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an Island
 
With your bare hands
With your bare handsWith your bare hands
With your bare hands
 
Building a platform with Django, Docker and Salt | Djangocon lightning talk
Building a platform with Django, Docker and Salt | Djangocon lightning talkBuilding a platform with Django, Docker and Salt | Djangocon lightning talk
Building a platform with Django, Docker and Salt | Djangocon lightning talk
 
Building a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and SaltBuilding a Platform with Django, Docker and Salt
Building a Platform with Django, Docker and Salt
 
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE EditorImplementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
 
One Page, One App -or- How to Write a Crawlable Single Page Web App
One Page, One App -or- How to Write a Crawlable Single Page Web AppOne Page, One App -or- How to Write a Crawlable Single Page Web App
One Page, One App -or- How to Write a Crawlable Single Page Web App
 
Unleashing the Rails Asset Pipeline
Unleashing the Rails Asset PipelineUnleashing the Rails Asset Pipeline
Unleashing the Rails Asset Pipeline
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programming
 
Passing a Front end Developer interview
Passing a Front end Developer interview Passing a Front end Developer interview
Passing a Front end Developer interview
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 Keynote
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Integrating Ember.js into legacy applications