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
As one of my New Year resolutions is to read more tech I’ve decided on an attempt to document my travels in Mannings Modern Java in Actio...
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
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
To be a more productive reader when rereading a book, it is very convenient to create small rebar3 projects based on books’ samples and i...
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
TL;DR I am reading “Domain Modeling Made Functional” and discussing and keeping a journal of what I learned from it, any co-readers welco...
New
Hello all.
Creating this space here for general discussion and chat about Powerful Command-Line Applications In Go
In particular, we ca...
New
With Tailwind now the default CSS framework shipped with Phoenix we thought it would be nice to run this book club on the Elixir Forum.
...
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
Other popular topics
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
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
My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and...
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
Do the test and post your score :nerd_face:
:keyboard:
If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
Hello everyone! This thread is to tell you about what authors from The Pragmatic Bookshelf are writing on Medium.
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
Hello,
I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /python
- /js
- /rails
- /security
- /go
- /swift
- /vim
- /java
- /clojure
- /emacs
- /haskell
- /typescript
- /svelte
- /onivim
- /kotlin
- /c-plus-plus
- /crystal
- /react
- /tailwind
- /gleam
- /ocaml
- /elm
- /vscode
- /flutter
- /html
- /ash
- /deepseek
- /zig
- /opensuse
- /centos
- /php
- /react-native
- /scala
- /lisp
- /sublime-text
- /textmate
- /debian
- /nixos
- /agda
- /deno
- /django
- /kubuntu
- /arch-linux
- /nodejs
- /ubuntu
- /spring
- /revery
- /manjaro
- /julia
- /quarkus
- /diversity
- /lua
- /markdown









