Skip to content

amrza/elixir-school

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 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. Concurrency cont - GenServer, GenEvent, and Supervisors.
  3. Distribution - Distribute work to remote nodes.
  4. Elixir + Erlang - Interoperability with Erlang.
  5. Macros - Defining functionality with quote and unquote.

Specific Tools

  1. Plug - Composable modules for web applications.
  2. Ecto - Database wrapper and query language.

About

Lessons in the Fundamentals of Elixir

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published