SlideShare una empresa de Scribd logo
1 de 15
© Copyright FeedHenry Ltd. 2013
Enterprise Mobile Development
Damian Beresford
Twitter: @dberesford
@feedhenry
1
WIT Masters April 2014
http://bit.ly/enterprise-mobile
© Copyright FeedHenry Ltd. 2013
FeedHenry Platform
© Copyright FeedHenry Ltd. 2013
Customers
• Customers
• Transport
• Law Enforcement
• Utilities
• Aviation
• Medical
• ‘Hello world’ Enterprise Proxy Pattern:
3
© Copyright FeedHenry Ltd. 2013
FeedHenry Open Source
4
© Copyright FeedHenry Ltd. 2013
Mobile Development
• HTML5 / Native
• Cordova
• Backbone
• Angular
• Ionic Framework
• Ember
• famo.us
• Rachet
• Xamarin
5
© Copyright FeedHenry Ltd. 2013
MEAN Stack
• MEAN – full stack javascript
• Mongo
• Express
• Angular
• Node
• MeanR (Redis)
6
© Copyright FeedHenry Ltd. 2013
Javascript
7
© Copyright FeedHenry Ltd. 2013
Node.js Anti Patterns
• Java mind set
• OOP
• Monolithic Systems
8
© Copyright FeedHenry Ltd. 2013
Anti Anti Patterns
• Data! Functions! Modules!
• Callbacks, async, etc
• Functional Programming
• Underscore
• Start with _each, _map, _filter, _reduce
• Unix/KISS mindset
• Microservices
9
© Copyright FeedHenry Ltd. 2013
Testing Stack
• Turbo – test runner
• Istanbul – code coverage
• Proxyquire – mock your require’s
• Grunt – ties it all together
• See FeedHenry Node.js Cloud Testing Guide
10
© Copyright FeedHenry Ltd. 2013
Testing – unit vs acceptance
• Eyes on code!
• unit tests should require no external dependencies, external services should
be mocked out (e.g. internet access, writing to file/database, etc)
• unit tests should be super quick to run
• unit tests should be reliable as no external dependencies
• unit tests should just test your own logic
• acceptance tests can require external dependencies, which do require
setup (which should be well documented!)
• as such they can take longer to run
• acceptance tests are a more 'end to end' philosophy
11
© Copyright FeedHenry Ltd. 2013
Micro Services
• martinfowler.com/articles/microservices.html
• yobriefca.se/blog/2013/04/29/micro-service-architecture
• slideshare.net/michaelneale/microservices-and-functional-programming
• klangism.tumblr.com/post/80087171446/microservices
• richardrodger.com/monolithic-nodejs
12
“The microservice architectural style is an
approach to developing a single application as
a suite of small services, each running in its
own process and communicating with
lightweight mechanisms”
© Copyright FeedHenry Ltd. 2013
Mirco Services
• Mix of Message Bus and REST API
• REST API - JSON in JSON out (robustness principal)
• Message Bus – Rabbit MQ
• Not just node.js, DropWizard for Java
• Continuous Integration - Small Production Deploys
• Operations – monitor all the things
• Dedicated Ops and Support teams
13
© Copyright FeedHenry Ltd. 2013
Mirco Services – complexity
• Not a silver bullet – but does help with complexity
• Still deal with lots of business rules, moving parts, etc
• Easy !== Simple
• Work at simplicity
• Need Master Builders to keep all the balls in the air
• Boxology
14
© Copyright FeedHenry Ltd. 2013
Demo
• https://wit-t.sandbox.feedhenry.com/
• wit@example.com
15

Más contenido relacionado

La actualidad más candente

Building rest services using aspnetwebapi
Building rest services using aspnetwebapiBuilding rest services using aspnetwebapi
Building rest services using aspnetwebapiBrij Mishra
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsEugene Fidelin
 
Event-Sourcing your React-Redux applications
Event-Sourcing your React-Redux applicationsEvent-Sourcing your React-Redux applications
Event-Sourcing your React-Redux applicationsMaurice De Beijer [MVP]
 
Dublin JUG February 2018 - Building microservices with Vert.x
Dublin JUG February 2018 - Building microservices with Vert.xDublin JUG February 2018 - Building microservices with Vert.x
Dublin JUG February 2018 - Building microservices with Vert.xBert Jan Schrijver
 
Vert.x NL meetup October 2017 - Building microservices with Vert.x
Vert.x NL meetup October 2017 - Building microservices with Vert.xVert.x NL meetup October 2017 - Building microservices with Vert.x
Vert.x NL meetup October 2017 - Building microservices with Vert.xBert Jan Schrijver
 
Microsoft Azure News - January 2018
Microsoft Azure News - January 2018Microsoft Azure News - January 2018
Microsoft Azure News - January 2018Daniel Toomey
 
React - Redux applications & Event Sourcing
React - Redux applications & Event SourcingReact - Redux applications & Event Sourcing
React - Redux applications & Event SourcingMaurice De Beijer [MVP]
 
Microservices and Service Mesh
Microservices and Service MeshMicroservices and Service Mesh
Microservices and Service MeshSwaminathan Vetri
 
Malmberg meetup June 2018 - Building microservices with Vert.x
Malmberg meetup June 2018 - Building microservices with Vert.xMalmberg meetup June 2018 - Building microservices with Vert.x
Malmberg meetup June 2018 - Building microservices with Vert.xBert Jan Schrijver
 
Agile Integration using Microsoft Azure
Agile Integration using Microsoft AzureAgile Integration using Microsoft Azure
Agile Integration using Microsoft AzureBizTalk360
 
Microservices; A Quick Introduction
Microservices; A Quick IntroductionMicroservices; A Quick Introduction
Microservices; A Quick IntroductionAbouzar Noori
 
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBuilding Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBizTalk360
 
Introduction To Micro Frontends
Introduction To Micro Frontends Introduction To Micro Frontends
Introduction To Micro Frontends Meitar Karas
 
What is a Capability URL (and why do I care?)
What is a Capability URL (and why do I care?)What is a Capability URL (and why do I care?)
What is a Capability URL (and why do I care?)Daniel Appelquist
 

La actualidad más candente (17)

Building rest services using aspnetwebapi
Building rest services using aspnetwebapiBuilding rest services using aspnetwebapi
Building rest services using aspnetwebapi
 
Building The Wix SDK
Building The Wix SDKBuilding The Wix SDK
Building The Wix SDK
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontends
 
Event-Sourcing your React-Redux applications
Event-Sourcing your React-Redux applicationsEvent-Sourcing your React-Redux applications
Event-Sourcing your React-Redux applications
 
Dublin JUG February 2018 - Building microservices with Vert.x
Dublin JUG February 2018 - Building microservices with Vert.xDublin JUG February 2018 - Building microservices with Vert.x
Dublin JUG February 2018 - Building microservices with Vert.x
 
Vert.x NL meetup October 2017 - Building microservices with Vert.x
Vert.x NL meetup October 2017 - Building microservices with Vert.xVert.x NL meetup October 2017 - Building microservices with Vert.x
Vert.x NL meetup October 2017 - Building microservices with Vert.x
 
What is new in ASP.NET Core
What is new in ASP.NET CoreWhat is new in ASP.NET Core
What is new in ASP.NET Core
 
Microsoft Azure News - January 2018
Microsoft Azure News - January 2018Microsoft Azure News - January 2018
Microsoft Azure News - January 2018
 
React - Redux applications & Event Sourcing
React - Redux applications & Event SourcingReact - Redux applications & Event Sourcing
React - Redux applications & Event Sourcing
 
Microservices and Service Mesh
Microservices and Service MeshMicroservices and Service Mesh
Microservices and Service Mesh
 
Malmberg meetup June 2018 - Building microservices with Vert.x
Malmberg meetup June 2018 - Building microservices with Vert.xMalmberg meetup June 2018 - Building microservices with Vert.x
Malmberg meetup June 2018 - Building microservices with Vert.x
 
Agile Integration using Microsoft Azure
Agile Integration using Microsoft AzureAgile Integration using Microsoft Azure
Agile Integration using Microsoft Azure
 
Microservices; A Quick Introduction
Microservices; A Quick IntroductionMicroservices; A Quick Introduction
Microservices; A Quick Introduction
 
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBuilding Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
 
Azure signalr service
Azure signalr serviceAzure signalr service
Azure signalr service
 
Introduction To Micro Frontends
Introduction To Micro Frontends Introduction To Micro Frontends
Introduction To Micro Frontends
 
What is a Capability URL (and why do I care?)
What is a Capability URL (and why do I care?)What is a Capability URL (and why do I care?)
What is a Capability URL (and why do I care?)
 

Similar a Enterprise Mobile Development

Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Damian Beresford
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approachFoyzul Karim
 
Building Resilient Microservices
Building Resilient Microservices Building Resilient Microservices
Building Resilient Microservices IndicThreads
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
Microservices Security: dos and don'ts
Microservices Security: dos and don'tsMicroservices Security: dos and don'ts
Microservices Security: dos and don'tsMinded Security
 
Say no to microservices slideshare
Say no to microservices slideshareSay no to microservices slideshare
Say no to microservices slideshareLykle Thijssen
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to MicroservicesCisco DevNet
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobiGnosis
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5Richard Hudson
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudSrinivasan Nanduri
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS
 
Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015AnyPresence
 
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
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Cultureifnu bima
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
Cloud service api design rules presentation
Cloud service api design rules presentationCloud service api design rules presentation
Cloud service api design rules presentationesebeus
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMohammedShahid562503
 
Microservices
MicroservicesMicroservices
MicroservicesIdeyatech
 

Similar a Enterprise Mobile Development (20)

Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approach
 
Building Resilient Microservices
Building Resilient Microservices Building Resilient Microservices
Building Resilient Microservices
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Microservices Security: dos and don'ts
Microservices Security: dos and don'tsMicroservices Security: dos and don'ts
Microservices Security: dos and don'ts
 
Say no to microservices slideshare
Say no to microservices slideshareSay no to microservices slideshare
Say no to microservices slideshare
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to Microservices
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training Presentation
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015
 
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
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Cloud service api design rules presentation
Cloud service api design rules presentationCloud service api design rules presentation
Cloud service api design rules presentation
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
Microservices
MicroservicesMicroservices
Microservices
 
Micro-frontends – is it a new normal?
Micro-frontends – is it a new normal?Micro-frontends – is it a new normal?
Micro-frontends – is it a new normal?
 

Último

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
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
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 

Último (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
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 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

Enterprise Mobile Development

  • 1. © Copyright FeedHenry Ltd. 2013 Enterprise Mobile Development Damian Beresford Twitter: @dberesford @feedhenry 1 WIT Masters April 2014 http://bit.ly/enterprise-mobile
  • 2. © Copyright FeedHenry Ltd. 2013 FeedHenry Platform
  • 3. © Copyright FeedHenry Ltd. 2013 Customers • Customers • Transport • Law Enforcement • Utilities • Aviation • Medical • ‘Hello world’ Enterprise Proxy Pattern: 3
  • 4. © Copyright FeedHenry Ltd. 2013 FeedHenry Open Source 4
  • 5. © Copyright FeedHenry Ltd. 2013 Mobile Development • HTML5 / Native • Cordova • Backbone • Angular • Ionic Framework • Ember • famo.us • Rachet • Xamarin 5
  • 6. © Copyright FeedHenry Ltd. 2013 MEAN Stack • MEAN – full stack javascript • Mongo • Express • Angular • Node • MeanR (Redis) 6
  • 7. © Copyright FeedHenry Ltd. 2013 Javascript 7
  • 8. © Copyright FeedHenry Ltd. 2013 Node.js Anti Patterns • Java mind set • OOP • Monolithic Systems 8
  • 9. © Copyright FeedHenry Ltd. 2013 Anti Anti Patterns • Data! Functions! Modules! • Callbacks, async, etc • Functional Programming • Underscore • Start with _each, _map, _filter, _reduce • Unix/KISS mindset • Microservices 9
  • 10. © Copyright FeedHenry Ltd. 2013 Testing Stack • Turbo – test runner • Istanbul – code coverage • Proxyquire – mock your require’s • Grunt – ties it all together • See FeedHenry Node.js Cloud Testing Guide 10
  • 11. © Copyright FeedHenry Ltd. 2013 Testing – unit vs acceptance • Eyes on code! • unit tests should require no external dependencies, external services should be mocked out (e.g. internet access, writing to file/database, etc) • unit tests should be super quick to run • unit tests should be reliable as no external dependencies • unit tests should just test your own logic • acceptance tests can require external dependencies, which do require setup (which should be well documented!) • as such they can take longer to run • acceptance tests are a more 'end to end' philosophy 11
  • 12. © Copyright FeedHenry Ltd. 2013 Micro Services • martinfowler.com/articles/microservices.html • yobriefca.se/blog/2013/04/29/micro-service-architecture • slideshare.net/michaelneale/microservices-and-functional-programming • klangism.tumblr.com/post/80087171446/microservices • richardrodger.com/monolithic-nodejs 12 “The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms”
  • 13. © Copyright FeedHenry Ltd. 2013 Mirco Services • Mix of Message Bus and REST API • REST API - JSON in JSON out (robustness principal) • Message Bus – Rabbit MQ • Not just node.js, DropWizard for Java • Continuous Integration - Small Production Deploys • Operations – monitor all the things • Dedicated Ops and Support teams 13
  • 14. © Copyright FeedHenry Ltd. 2013 Mirco Services – complexity • Not a silver bullet – but does help with complexity • Still deal with lots of business rules, moving parts, etc • Easy !== Simple • Work at simplicity • Need Master Builders to keep all the balls in the air • Boxology 14
  • 15. © Copyright FeedHenry Ltd. 2013 Demo • https://wit-t.sandbox.feedhenry.com/ • wit@example.com 15