TwistingTwists
Journal : Designing Elixir systems with OTP
This is my Journal for readings on Designing Elixir Systems with OTP.
Will post chapter 01 tomorrow! Stay tuned!
Most Liked
AstonJ
Nice one TT! Another book I am interested in reading at some point! ![]()
3
TwistingTwists
Chapter 01
Concepts / RE-Thinks:
DFTwBLWB : Do Fun things with Big Loud Worker Bees - acronym to think about layering application.
DFT = for building blocks of project
BLWB = for letting components work together.
Why layers?
- Testing each component with SIMILAR functions together (because they are grouped together! )
- Healing - supervisors
- the concept is (called
lifecycle) as simple as turn-off the TV and restart tofixit! - So, shut down CLEANLY (note,emphasis)!
- the concept is (called
Managing state :
- recursion and message passing to manage state.
- This is new! = message passing is usually an advanced concept and not ‘generally’ used to manage state, unless - Elixir or MVC model.
3
TwistingTwists
Chapter 02 : Know Your Elixir Datatypes
Types and pro-cons
| DataType | Properties | Pro | Cons |
|---|---|---|---|
| Atoms | are integer + constant + NOT garbage collected | use = name concepts + constant tables type lookup | NOT convert user-input to atom |
| Arrays = NOT in Elixir! | - | random access is cheap + traversing O(n) + | |
| Lists | NOT arrays! + singly linked-lists + | pattern matching on head is O(1) | Appending at END of lists or LARGE lists |
| Maps | random access O(log n) => useful for heavily edited data | use MapSet when only Keys (uniqueness) | |
| Strings | are binaries => efficiently stored + copy is a FULL copy (unlike lists) | DO NOT LET processes hold references to long string => may cause memory leaks + NOT use long strings for storing info + DONT concatenate | |
| Tuples | fixed length data structure | use for tagging data + read chunks of data like csv | slow append => don’t edit (if need to, use Maps) |
| Functions | send function to data, NOT data to function | ||
| PATTERN matching | allows multiple dimension inheritance (sort of) => better than inheritance!! |
3
Popular Community topics
So I have enough money to last a year. Realistically I’m still going to have to work part time painting. I’m so done with it though!
I h...
New
Crystal recently reached version 1. I had been following it for awhile but never got to really learn it. Most languages I picked up out o...
New
Concurrent Data Processing in Elixir is now content complete and I finally found the time I’ve been looking for to dedicate behind readin...
New
My overall initial first impressions of this book are very good.
I will document my local spacemacs setup to as I work through the book.
New
The very first time I’ve seen a line of Elixir I was in awe. Coming from Ruby the syntax was familiar.
But I wanted to know what was thi...
New
I have read first chapter. Will add my notes / code tries / self exploration as I go along!
Thank you @AstonJ for encouraging to start ...
New
With Phoenix and LiveView having recently had a fairly major release, and Programming Phoenix LiveView being updated too, we thought it w...
New
How did a sleepy valley become the epicenter of the technological world as we know it? In the 40th Anniversary Edition of my book, “Charg...
New
Learning Domain-Driven Design
Building software is harder than ever. As a developer, you not only have to chase ever-changing technologic...
New
https://fs.blog/mental-models/
I’ve been reading Farnham Street for a while, and this topic is the recommended starting point for new re...
New
Other popular topics
Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular wor...
New
What chair do you have while working… and why?
Is there a ‘best’ type of chair or working position for developers?
New
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
I have seen the keycaps I want - they are due for a group-buy this week but won’t be delivered until October next year!!! :rofl:
The Ser...
New
This looks like a stunning keycap set :orange_heart:
A LEGENDARY KEYBOARD LIVES ON
When you bought an Apple Macintosh computer in the e...
New
Hi folks,
I don’t know if I saw this here but, here’s a new programming language, called Roc
Reminds me a bit of Elm and thus Haskell. ...
New
We’ve talked about his book briefly here but it is quickly becoming obsolete - so he’s decided to create a series of 7 podcasts, the firs...
New
zig/http.zig at 7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 · ziglang/zig.
General-purpose programming language and toolchain for maintaini...
New
Author Spotlight:
Bruce Tate
@redrapids
Programming languages always emerge out of need, and if that’s not always true, they’re defin...
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /python
- /js
- /rails
- /security
- /go
- /swift
- /vim
- /clojure
- /java
- /emacs
- /haskell
- /svelte
- /onivim
- /typescript
- /kotlin
- /c-plus-plus
- /crystal
- /tailwind
- /react
- /gleam
- /ocaml
- /elm
- /flutter
- /vscode
- /ash
- /html
- /opensuse
- /zig
- /centos
- /deepseek
- /php
- /scala
- /react-native
- /lisp
- /textmate
- /sublime-text
- /nixos
- /debian
- /agda
- /django
- /deno
- /kubuntu
- /arch-linux
- /nodejs
- /revery
- /ubuntu
- /manjaro
- /spring
- /julia
- /lua
- /diversity
- /markdown
- /v









