Introduction To Phoenix Web Framework from Elixir

Introduction To Phoenix Web Framework from Elixir

Phoenix web framework is awesome. Backed by the beauty and productive Elixir and performance and realibility of Erlang VM. This presentation is for Singapore Elixir Meetup in March 2016

7e6790995bb5b4644e19330038ff4c48?s=128

Riza Fahmi

March 31, 2016
Tweet

Transcript

  1. Riza Fahmi - ElixirDose.com - @rizafahmi22 - riza@ hacktiv8.com PRODUCTIVE.

    RELIABLE. FAST.
  2. SPONSOR THANKS!

  3. INTRODUCTION YOU’RE MY REGULATOR, MY COMPILER ▸ Scream when things

    go too fast / slow / are unclear ▸ Scream when cool things happen ▸ Help me when live coding, I’m suck at it. Find errors for me before the compiler do ▸ Similar to Phoenix channel, this is two way communication channel. Don’t let me do all the talking!
  4. INTRODUCTION SLIDES ARE UP! https://slideshare.net

  5. INTRODUCTION WHO AM I ▸ Was at CitizenLab, a Belgium-based

    early stage startup. As a CTO ▸ Now at Hacktiv8, a startup for dev bootcamp ▸ Run ElixirDose — an Elixir-focused blog since November 2013
  6. INTRODUCTION WHAT WE’LL SEE ▸ The Awesomeness of Phoenix ▸

    Build something with Phoenix ▸ Some live coding
  7. SOME GLOSSARY Web Framework Programming Language Erlang Virtual Machine

  8. WHAT IS PHOENIX

  9. “Framework for building HTML5 apps, API backends and distributed systems

    to take on the modern web.” Chris McCord
  10. HOW IS PHOENIX DIFFERENT?

  11. PRODUCTIVITY PERFORMANCE VS

  12. LET’S TALK PRODUCTIVITY

  13. PRODUCTIVITY SHORT TERM ▸ Documentation / Guides / Generators ▸

    Eliminates trivial choices
  14. PRODUCTIVITY LONG TERM ▸ Maintainability ▸ Tried and true architecture

    patterns ▸ Let it crash mentality
  15. “IF I HAVE TO BUILD SKYNET, KILLER ARTIFICIAL INTELLIGENT FROM

    TERMINATOR MOVIES, I WOULD USE ERLANG AND ERLANG VM. MOSTLY BECAUSE IT’S UNKILLABLE AND KEEP COMING BACK!” Simon St.Laurent from MostlyErlang Podcast
  16. MORE FEATURES PLEASE…

  17. FEATURES STATIC BUILD TOOLS WITH ES6 AS DEFAULT Ultra fast

    HTML5 build tools Compiles/lints your scripts and styles Concatenates your scripts and styles Minifies it Watches for file changes
  18. FEATURES PRETTY AND HELPFUL ERROR PAGES

  19. FEATURES CHANNELS ▸ The main reason why Phoenix exists in

    the first place ▸ It’s websocket with steroid ▸ Cross-platform, cross-languages ▸ For creating modern, real-time apps ▸ Beyond HTML
  20. FEATURES MORE… ▸ Form builder ▸ Live reloading ▸ MCV

    with twist ▸ much more…
  21. LET’S TALK PERFORMANCE NOW

  22. None
  23. PERFORMANCE VIEWS & TEMPLATES ▸ Precompiled and pretty fast! ▸

    Views render templates ▸ It’s beyond HTML
  24. PERFORMANCE WHAT ABOUT SOME BENCHMARK Frameworks Throughput (req/s) Latency (ms)

    Plug (Elixir) 54,948.14 3.83 Gin (Go) 51,483.20 1.94 Phoenix (Elixir) 43,063.45 2.82 Express Cluster (Nodejs) 27,669.46 3.73 Martini (Go) 14,798.46 6.81 Express (Nodejs) 9,965.56 10.07 Sinatra (Ruby) 9,182.86 6.55 Rails (Ruby) 3,274.81 17.25 https://github.com/mroth/phoenix-showdown
  25. PERFORMANCE ROBUST CONCURRENCY MODEL ▸ “processes” is extremely lightweight units

    of concurrency ▸ Garbage collection is per process, no global pauses
  26. “ WE DO NOT HAVE ONE WEB-SERVER HANDLING 2 MILLIONS

    SESSIONS. WE HAVE 2 MILLION WEBSERVERS HANDLING ONE SESSION EACH.” Joe Armstrong - Erlang Father http://goo.gl/DprVTC
  27. LET’S BUILD SOMETHING

  28. WHAT WE’LL BUILD ELIXIR VIDEO PORTAL ▸ CRUD app for

    collecting Elixir-related video ▸ Similar confreaks.tv or pyvideo.org
  29. OFF ROAD… WE GO!

  30. WANT MORE?

  31. WANT MORE… READ SOME BOOKS

  32. WANT MORE… WATCH AND LEARN

  33. I’M DONE. THANKS FOR TUNING IN!