Mongo
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Mongo

on

  • 619 views

Things we learned while using Mongo and Scala at Udini.

Things we learned while using Mongo and Scala at Udini.

Statistics

Views

Total Views
619
Views on SlideShare
616
Embed Views
3

Actions

Likes
0
Downloads
6
Comments
0

2 Embeds 3

http://www.linkedin.com 2
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Mongo Presentation Transcript

  • 1. Papers
  • 2. Articles
  • 3. Dissertations
  • 4. 144.000.000
  • 5. NoSQL
  • 6. no ␣ SQL
  • 7. S3
  • 8. ...
  • 9. Mongo
  • 10. ♥Mongo
  • 11. ♥Scala
  • 12. 1
  • 13. Scala ⬍Mongo
  • 14. Java driver✗ Easy to use, hard to misuse✗ When in Rome, do as the romans do✗ Dont make the client do anything the library could do
  • 15. Java driver✗ Easy to use, hard to misuse✗ When in Rome, do as the romans do✗ Dont make the client do anything the library could do ☑
  • 16. Casbah✗ Easy to use, hard to misuse✓ When in Rome, do as the romans do✗ Dont make the client do anything the library could do✗ Obey the principle of least astonishment
  • 17. Casbah✗ Easy to use, hard to misuse✓ When in Rome, do as the romans do✗ Dont make the client do anything the library could do✗ Obey the principle of least astonishment Leaky abstractions
  • 18. codes: [ “foo”, “bar” ]obj.as[BasicDBList]("codes") .toList .map(_.asInstanceOf[String]) Don’t make me think
  • 19. Casbah:coll.findOne(“name” $ne “wilfred”)Mongo:db.coll.findOne({ name : { $ne : “wilfred” } })☹ Casbah:coll.findOne( MongoDBObject(“name” -> “wilfred”)) Don’t make me think!Mongo:db.coll.findOne({ name : “wilfred”})
  • 20. Casbah✗ Easy to use, hard to misuse✓ When in Rome, do as the romans do✗ Dont make the client do anything the✗ library could do Obey the principle of least astonishment ☑
  • 21. Salat✗ Easy to use, hard to misuse✓ When in Rome, do as the romans do✓ Dont make the client do anything the✗✗✓ library could do Obey the principle of least astonishment Control Symmetry ☒
  • 22. RogueBeaucatcher Lift Subset ?
  • 23. Homegrown
  • 24. obj.insert[Metadata] ("metadata", doc.metadata)obj.extract[Metadata] ("metadata") Doesn’t make me think!
  • 25. 2
  • 26. Versioning
  • 27. Version 1 { street: “Lingedijk”, housenumber: 132 } ⬍Version 2 { address: “Lingedijk 132” }
  • 28. { version: 1, street: “Lingedijk”, housenumber: 132} Read time ➡ reconciliation Memory{ ➡ version: 2, address: “Lingedijk 132”}
  • 29. Rollback
  • 30. 3
  • 31. Objectmapping
  • 32. Subclasses indifferent collections
  • 33. Conclusion
  • 34. ♥ Scala♥ Mongo☹ Libraries✎ Versioning D.I.Y.☼ Composition