
Designing Elixir Systems With OTP
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
You know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that''s kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what''s happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.
Elixir is gaining mindshare as the programming language you can use to keep you software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP.
If you''re using frameworks like Phoenix or Nerves, you''re already experiencing the features that make Elixir an excellent language for today''s demands. This book shows you how to go beyond simple programming to designing, and that means building the right layers. Embrace those data structures that work best in functional programs and use them to build functions that perform and compose well, layer by layer, across processes. Test your code at the right place using the right techniques. Layer your code into pieces that are easy to understand and heal themselves when errors strike.
Of all Elixir''s boons, the most important one is that it guides us to design our programs in a way to most benefit from the architecture that they run on. The experts do it and now you can learn to design programs that do the same.
What You Need:
Elixir Version 1.7 or greater.
More details
Other editions
Additional editions

Content
- Cover
- Table of Contents
- Acknowledgments
- James Gray
- Bruce Tate
- Introduction
- Worker-Bee-Driven Design
- Who Should Read This Book
- Online Resources
- 1. Build Your Project in Layers
- We Must Reimagine Design Choices
- Choose Your Layers
- Begin with the Right Datatypes
- Build Your Functional Core
- Establish Your Boundaries
- Test Your Code
- Plan Your Lifecycle
- Invoke Your Workers
- Do Fun Things with Big, Loud Worker-Bees
- Part I-Do Fun Things...
- 2. Know Your Elixir Datatypes
- Primitive Types
- Lists
- Maps and Structs
- Strings
- Tuples
- Functions as Data
- When to Leave Elixir
- Know Your Elixir Datatypes
- 3. Start with the Right Data Layer
- Access Patterns Shape Data Structures
- Immutability Drives Everything
- Try It Out
- Start with the Right Data
- 4. Build a Functional Core
- Organize Core Functions by Purpose
- Compose a Quiz from Functions
- Build at a Single Level of Abstraction
- Keep the Left Margin Skinny
- Try Out the Core
- Build Your Functional Core
- 5. Test Your Core
- Simplify Tests with Common Setup Functions
- Improve the ExUnit Infrastructure
- Provide Test Data with Fixtures
- Prime Tests with Named Setups
- Make Tests Repeatable
- Compose Within Tests
- Take Tests Beyond the Elixir Base
- Test Your Functional Core
- Part II-...with Big, Loud Worker-Bees
- 6. Isolate Process Machinery in a Boundary
- Maintain Composition Through Uncertainty
- Build Your Optional Server
- Wrap the Server in an API
- Prefer Call Over Cast to Provide Back Pressure
- Extend Your APIs Safely
- Wrap Your Core in a Boundary API
- 7. Customize Your Lifecycle
- Understand the Lifecycle Building Blocks
- Configure Applications to Start Supervisors
- Start Per-User Processes with a Dynamic Supervisor
- Touch Up the API Layer
- Manage Your Lifecycles with Supervisors
- 8. Summon Your Workers
- Know Your Motivations
- Know Your Tools
- Add a Proctor to Run Timed Quizzes
- Summon Your Workers
- 9. Assemble Your Components
- Add Persistence as a Boundary Service
- Integrate MasteryPersistence into Mastery
- Integrate Your OTP Dependencies into Phoenix
- Organize Code for OTP Abstractions
- Build Scenic Projects with Layers
- Assemble Your Components
- 10. Test the Boundary
- Tests Call the API as a User Would
- Isolate the Proctor's Boundary Concerns
- Test Your Boundary
- Bibliography
- Index
- - SYMBOLS -
- - A -
- - B -
- - C -
- - D -
- - E -
- - F -
- - G -
- - H -
- - I -
- - K -
- - L -
- - M -
- - N -
- - O -
- - P -
- - Q -
- - R -
- - S -
- - T -
- - U -
- - V -
- - W -
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.