Elixir & Phoenix
Learn Elixir and Phoenix: pattern matching, pipes, processes, GenServer, supervisors, Ecto, LiveView, PubSub, testing with ExUnit and deploying releases.
Start course →
What you'll learn
- Explain the BEAM and set up Elixir projects with Mix, Hex and IEx.
- Write functional Elixir with pattern matching, multi-clause functions, pipelines, Enum and Stream.
- Model data with structs, protocols and behaviours, and handle errors with tagged tuples and with.
- Build concurrent, fault-tolerant systems with processes, GenServers, supervisors, Tasks and ETS.
- Create Phoenix applications with contexts, Ecto, JSON APIs, LiveView, PubSub and Channels.
- Test with ExUnit, keep quality with Credo and Dialyzer, and deploy releases with runtime configuration.
Syllabus
Getting Started with Elixir
- What Elixir Is and Why the BEAM Matters
- Installing Elixir: IEx, Mix and Hex
- Basic Types and Immutability
Pattern Matching, Functions and Pipelines
- The Match Operator and Pattern Matching
- Modules, Functions and Guards
- The Pipe Operator, Enum and Stream
Control Flow, Structs and Errors
- case, cond, if and with
- Structs, Protocols and Behaviours
- Errors: Tagged Tuples, Exceptions and Bang Functions
Processes and OTP
- Processes and Message Passing
- GenServer: Stateful Servers
- Supervisors and Fault Tolerance
Tasks, ETS and Metaprogramming
- Tasks and Concurrent Work
- ETS, Agents and Shared State
- Macros and Metaprogramming
Phoenix and Ecto
- Phoenix Fundamentals
- Ecto: Schemas, Changesets and Queries
- Contexts, JSON APIs and Authentication
Real-Time Features and Testing
- Phoenix LiveView
- Channels, PubSub and Presence
- Testing with ExUnit
Deployment, Quality, Idioms and Revision
- Releases, Configuration and Deployment
- Code Quality: Formatter, Credo, Dialyzer and Types
- Idiomatic Elixir and Common Pitfalls
- Revision and Interview Questions