Structuring apps in Scala

1,477 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,477
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Structuring apps in Scala

  1. 1. Thursday, March 14, 13
  2. 2. Structuring apps in Scala a.k.a. I have no idea what I’m doing phil calçado @pcalcado http://philcalcado.com Scala User Group - Berlin BrandenburgThursday, March 14, 13
  3. 3. WHY BOTHER?Thursday, March 14, 13
  4. 4. SOLVING INTERESTING PROBLEMSThursday, March 14, 13
  5. 5. SOLVING INTERESTING PROBLEMS meh.Thursday, March 14, 13
  6. 6. SOLVING BORING PROBLEMS IN A INTERESTING WAYThursday, March 14, 13
  7. 7. SOLVING BORING PROBLEMS IN A INTERESTING WAY hell yeah!Thursday, March 14, 13
  8. 8. SOUNDCLOUD DEVELOPER CHALLENGE’S TEST SUITEThursday, March 14, 13
  9. 9. Recruitment Challenge W(hy)TF?Thursday, March 14, 13
  10. 10. Old Challenge Build me a file uploaderThursday, March 14, 13
  11. 11. Old Challenge Build me a file uploader BoringThursday, March 14, 13
  12. 12. Old Challenge Build me a file uploader Boring Use flash pluginThursday, March 14, 13
  13. 13. Old Challenge Build me a file uploader Boring Use flash plugin Not enough codeThursday, March 14, 13
  14. 14. New Challenge Given a series of events and a bunch of connected clients, who should be notified of which events?Thursday, March 14, 13
  15. 15. What I’m used toThursday, March 14, 13
  16. 16. What I’m used toThursday, March 14, 13
  17. 17. Combinators all the way downThursday, March 14, 13
  18. 18. a LOT of codeThursday, March 14, 13
  19. 19. a LOT of wiringThursday, March 14, 13
  20. 20. not leveraging the type systemThursday, March 14, 13
  21. 21. I am pretty sure I’m doing it wrong.Thursday, March 14, 13
  22. 22. TWITTERThursday, March 14, 13
  23. 23. Instance-Based InjectionThursday, March 14, 13
  24. 24. Extremely thin, orthogonal, traitsThursday, March 14, 13
  25. 25. Use method visibilityThursday, March 14, 13
  26. 26. TYPESAFE/PRECOGThursday, March 14, 13
  27. 27. Modules are abstractThursday, March 14, 13
  28. 28. typesafe: self-types for dependenciesThursday, March 14, 13
  29. 29. Precog: Instead of import, extends or withThursday, March 14, 13
  30. 30. SOUNDCLOUD APPSThursday, March 14, 13
  31. 31. ACTUALLY, HOW ARE WE BUILDING APPS?Thursday, March 14, 13
  32. 32. internet Legacy Application (Rails) DatabaseThursday, March 14, 13
  33. 33. internet API Sounds Users Stats Stream Notifications Settings Recommender MessagingThursday, March 14, 13
  34. 34. SOUNDCLOUD APPSThursday, March 14, 13
  35. 35. A LOT LIKE TYPESAFE’SThursday, March 14, 13
  36. 36. Controllers define dependency on componentsThursday, March 14, 13
  37. 37. Components are abstractThursday, March 14, 13
  38. 38. One flat instanceThursday, March 14, 13
  39. 39. I was pretty sure I was doing it wrong.Thursday, March 14, 13
  40. 40. I am pretty sure I’m still doing it wrong.Thursday, March 14, 13
  41. 41. I am pretty sure I’m still doing it wrong. what do you use?Thursday, March 14, 13
  42. 42. REFERENCES • http://bit.ly/pcalcado-goto • http://bit.ly/effective-scala-Dependency-injection • http://bit.ly/Bakery-from-the-Black-Lagoon • http://bit.ly/Martin-Odersky-Reflection-and- CompilersThursday, March 14, 13
  43. 43. phil calçado http://philcalcado.com @pcalcado www.soundcloud.comThursday, March 14, 13

×