Clojure, Web and Luminus

3,221 views
2,980 views

Published on

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,221
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×