Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Clojure, Web and Luminus

3,632 views

Published on

Published in: Technology, Design
  • Be the first to comment

Clojure, Web and Luminus

  1. 1. Clojure,WebandLuminusMonday, April 29, 13
  2. 2. • :name “Edward Tsech”• :nick “edtsech”• :langs [:clojure :haskell :shen]• :interests [:fp :frp :data]AboutMonday, April 29, 13
  3. 3. Agenda• Why Clojure?• Clojure + Web• Clojure Toolbox• Libraries vs Frameworks• Existing frameworks• Luminus’ approachMonday, April 29, 13
  4. 4. Why Clojure?Monday, April 29, 13
  5. 5. Clojure as Ecosystem• Mature ecosystem of JVM• Interactive development (REPL)• ClojureScript• Leiningen• Emacs/Vim/SublimeText??• DatomicMonday, April 29, 13
  6. 6. Clojure as Language• Rapid development• Concurrency• FP• Metaprogramming• DSL• Data centricMonday, April 29, 13
  7. 7. Clojure + WebMonday, April 29, 13
  8. 8. Clojure + Web• Ring - HTTP abstraction (WCGI, Rack,Hack)• Compojure - routing DSL (Sinatra, Scotty,Scalatra)Monday, April 29, 13
  9. 9. Functional WebArchitecturehttps://speakerdeck.com/weavejester/functional-web-architectureMonday, April 29, 13
  10. 10. Clojure Web Toolbox• Auth - Friend• JSON - data.json,cheshire• Validation - lib-noir,Validateur• Testing - Kerodon,Peridot• Logging - tools.logging• XML - data.xml, data.zip• SQL - Korma,clojure.java.jdbc• Deploy - Leiningen• HTML - ...• CRUD - ?• Performance - GrinderMonday, April 29, 13
  11. 11. LibrariesvsFrameworksMonday, April 29, 13
  12. 12. Libraries• Easy to compose• You have to know ecosystem• You are not limited what you can build andhow to build it• You have to create your own architectureMonday, April 29, 13
  13. 13. Frameworks• Take care of users (security, ...)• Basic architecture• Defaults (Libraries)• Docs, tutorials, guides, ecosystem• Habits• Limitations (what..., how...)Monday, April 29, 13
  14. 14. Existing Frameworks• Conjure• Noir• Joodo• Pedestal• LuminusMonday, April 29, 13
  15. 15. Origins• Noir• Noir + lib-noir• lib-noir• lib-luminus + Luminus• lib-noir + LuminusMonday, April 29, 13
  16. 16. Luminus• Freedom (up to youwhat and how)• Utilize existing Clojureecosystem• Libraries composability• Flexible templates• Basic architecture• Defaults• Documentation• Take care of newcomersMonday, April 29, 13
  17. 17. Improvements• Improve profiles system• Improve architecture• Add profiles*• Write guides, tutorials, docsMonday, April 29, 13
  18. 18. Questions?Monday, April 29, 13
  19. 19. Links 1• Luminus - http://www.luminusweb.net/• luminus-template - https://github.com/yogthos/luminus-template• luminus - https://github.com/yogthos/luminus• lib-noir - https://github.com/noir-clojure/lib-noirMonday, April 29, 13
  20. 20. Links 2• A brief overview of the Clojure web stack -http://brehaut.net/blog/2011/ring_introduction• Project Templates - http://brehaut.net/blog/2013/project_templates• Functional Web Architecture -https://speakerdeck.com/weavejester/functional-web-architectureMonday, April 29, 13

×