enterprise mobile development
TRANSCRIPT
© Copyright FeedHenry Ltd. 2013
Enterprise Mobile Development
Damian BeresfordTwitter: @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/
15