Dokumen tersebut membahas tentang bahasa pemrograman Elixir dan framework Phoenix. Elixir adalah bahasa fungsional dan dinamis yang berjalan pada BEAM, sedangkan Phoenix adalah framework modern untuk membangun aplikasi web yang menerapkan MVC. Keduanya memiliki fitur-fitur seperti LiveView, PubSub dan Channel yang mendukung pengembangan aplikasi real-time.
4. /rizafahmi /rizafahmi /rizafahmi22
BAHASA PEMROGRAMAN ELIXIR
Bahasa pemrograman fungsional, dinamis, dan mudah
dikelola.
Berjalan diatas BEAM (Erlang Virtual Machine) yang
terkenal tangguh.
Biasa digunakan untuk membangun sistem
yang terdirstribusi, hemat sumber daya dan fault-
tolerant.
5. /rizafahmi /rizafahmi /rizafahmi22
BAHASA PEMROGRAMAN ELIXIR
PARADIGMA FUNGSIONAL
Paradigma fungsional menawarkan
penulisan kode yang lebih jelas,
transformasi data yang transparan dan
mudah dites.
6. /rizafahmi /rizafahmi /rizafahmi22
BAHASA PEMROGRAMAN ELIXIR
Sintaksis terinspirasi dari bahasa Ruby dengan
performa setara Erlang.
Menggunakan actor-model dalam implementasi
concurrency.
Sudah memiliki
ekosistem yang lengkap.
7. /rizafahmi /rizafahmi /rizafahmi22
EKOSISTEM ELIXIR
iex — Interactive Elixir, REPL. Dapat digunakan untuk eksperimen dan debugging
mix — Alat bantu untuk kompilasi, testing, mengelola pustaka tambahan
hex — Kumpulan pustaka yang bisa digunakan di proyek Elixir
exunit — Unit testing framework
8. /rizafahmi /rizafahmi /rizafahmi22
PROYEK ELIXIRYANG MENARIK
Ecto — Alat untuk pemetaan data dan database. Terinspirasi dari C# LINQ
Nerves — Platform dan infrastruktur untuk IoT
Membrane Framework — Framework untuk mengelola multimedia stream
Nx — Numerical framework, biasa digunakan untuk kebutuhan machine learning
Livebook — Alat untuk menulis kode dan berkolaborasi secara interaktif
9. /rizafahmi /rizafahmi /rizafahmi22
PENGGUNA ELIXIR
ELIXIR-COMPANIES.COM
Discord — Kebutuhan real-time dan Elixir digunakan sebagai
tulang-punggung infrastruktur chat
Pepsico — Digunakan oleh tim sales dan marketing untuk kebutuhan
analisa data
Spotify — Digunakan untuk aplikasi internal
Heroku — Digunakan di beberapa servis seperti lisensi dan
fi
nansial
seperti invoice, pembayaran kartu kredit dll.
Pinterest — Digunakan untuk mengirim 14 ribu noti
fi
kasi per detik
13. KESIMPULAN
ELIXIR
• Elixir adalah bahasa pemrograman fungsional dan dinamis.
• Berjalan diatas BEAM atau Erlang VM yang sudah terbukti
kehandalannya.
• Sering digunakan untuk membangun sistem terdistribusi, hemat
sumber daya dan fault-tolerant.
• Digunakan oleh banyak perusahaan untuk berbagai kebutuhan seperti
mengirimkan noti
fi
kasi, aplikasi real-time, dsb.
14.
15. /rizafahmi /rizafahmi /rizafahmi22
KOMPONEN PHOENIX
Plug — Spesi
fi
kasi modul-modul untuk membangun web server.
Cowboy — HTTP server yang ringan dan cepat
Ecto — DSL untuk berinteraksi dengan database
16. /rizafahmi /rizafahmi /rizafahmi22
FITUR EKSTRA PHOENIX
BATTERIES INCLUDED
Channel — Fitur real-time, berbahan dasar websocket
LiveView — Membangun aplikasi web modern tanpa JavaScript
PubSub — Sistem pub/sub terdistribusi
Auth — Menyediakan sistem otentikasi
25. /rizafahmi /rizafahmi /rizafahmi22
KESIMPULAN
PHOENIX
• Phoenix adalah web framework yang lengkap, biasa digunakan untuk
membangun aplikasi web ataupun web services.
• Mengadopsi pola MVC dan mengutamakan produktivitas developer
sekaligus performa memukau.
• Sering digunakan untuk membangun sistem terdistribusi, dan aplikasi
real-time.
• Framework bergaya “batteries included” namun tetap
fl
eksibel.
27. /rizafahmi /rizafahmi /rizafahmi22
PHOENIX LIVEVIEW
Sebuah metode untuk mengirimkan html, css dan aset
lainnya dari server ke client melalui websocket.
Digunakan untuk membangun real-time, single-page
application tanpa JavaScript.
36. /rizafahmi /rizafahmi /rizafahmi22
PHOENIX LIVEVIEW
KESIMPULAN
• LiveView adalah metode untuk mengirimkan perubahan halaman web
melalui websocket. HTML over the wire, istilah yang sedang dipopulerkan.
• Digunakan untuk membangun aplikasi real-time ataupun single-page
application tanpa menulis kode JavaScript.
• Dapat dikombinasikan dengan dengan
fi
tur Phoenix lainnya seperti
PubSub, LiveComponent, dll.
43. Joe Armstrong
“We do not have ONE web-server handling
2 millions sessions. We have 2 million
webservers handling one session each.”
44. KESIMPULAN
• Elixir adalah bahasa pemrograman fungsional dan dinamis yang
berjalan diatas BEAM atau Erlang VM yang sudah terbukti
kehandalannya.
• Phoenix adalah sebuah web framework lengkap yang mengutamakan
produkti
fi
tas sekaligus performa aplikasi.
• Memiliki berbagai
fi
tur menarik mulai dari LiveView, PubSub, Channel,
Auth dan banyak lagi.