Skip to content

lee-dohm/elixir-school

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elixir School License

Lessons in the Fundamentals of Elixir, inspired by Twitter's Scala School.

Your feedback and participation is encouraged, see Contributing for more details.

About Elixir

"Elixir is a dynamic, functional language designed for building scalable and maintainable applications." — elixir-lang.org

Elixir leverages the battle tested ErlangVM to build distributed and fault-tolerant systems with low-latency out of the box.

Features:

  • Scalable
  • Fault-tolerant
  • Functional Programming
  • Extensible

Lessons

Basics

  1. Basics - Setup, basic types and operations.
  2. Collections - List, tuples, keywords, maps, dicts and functional combinators.
  3. Enum - A set of functions for working with collections.
  4. Pattern Matching - Match operator, matching, and the pin operator.
  5. Control Structures - The if/2, unless/2, case, and cond structures.
  6. Functions - Anonymous functions, named functions, and guards.
  7. Composition - Modules, module attributes, and structs.
  8. Mix - Build tool, dependency manager, and CLI tasks.
  9. Testing - ExTest and testing best practices.

Advanced

  1. Concurrency - Processes, Agents, and Tasks.
  2. OTP Behaviors - GenServer, GenEvent, and Supervisors.
  3. Distribution - Distribute work to remote nodes.
  4. Elixir + Erlang - Interoperability with Erlang.
  5. Meta-Programming - Macros, quote, and unquote.
  6. Hex Packages - Packaging and sharing functionality with the community.

Specific Tools

  1. Plug - Composable modules for web applications.
  2. Ecto - Database wrapper and query language.
  3. ETS - Erlang Term Service
  4. Mnesia - A distributed soft real-time database system in Erlang.

About

Lessons in the Fundamentals of Elixir

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors