What could be a better phone for your kids?
- It texts and calls
- It takes photos
- It plays audio books and is literally an e-reader
- It really, really sucks for Tik-Tok, Youtube, and video games
https://t.co/yhzdQAWuya
🚀 Exciting News Alert! 🚀
📘 The Foundations of Functional Programming in Scala course is now available for FREE on YouTube ! 📘
👩💻 Join thousands of developers who've gained a robust understanding of functional programming through this comprehensive course.
🔍 What to expect:
Error handling techniques 🛠️
Effective data modeling strategies 📊
Parallel data processing methods 📈
Concurrent IO 🔄
🕒 In just 40 hours, unlock the equivalent of years of experience in functional programming.
https://t.co/ffViiwUHA4
“Je suis parti du CEA à 61 ans parce que j’ai été mis à la retraite. A Ohio State j’ai pu continuer la recherche et enseigner pendant encore 12 ans”, Pierre Agostini, 82 ans, prix Nobel de physique..
I discovered the shocking truth about building flexible systems!
This happened while I was reading about Notion’s Data Model.
And the truth turned out to be painfully simple.
Now I can’t wait to share it with you. So here it is👇
Every software engineer has an innate desire to build flexible systems.
Systems that can support any requirements you throw at them.
Usually, this thought process only creates trouble.
You end up building products that try to do too much at the same time. And they end up collapsing like a pack of cards.
But Notion is one of the few products that has avoided this trend.
Over the years, it has managed to support many different requirements and use cases.
You may have seen or used Notion as a:
✅ Note-taking app
✅ To-Do Lists
✅ Project Management app
✅ CMS
✅ Digital Brain
...and more!
A large part of this success goes to the incredibly flexible data model developed by Notion’s team.
But what’s the secret to this flexibility?
It’s the concept of Blocks.
Blocks in Notion are a unit of information.
There are multiple types of Blocks such as:
- Text
- Image
- List
- Row
- Page
Think of Blocks in Notion as Lego blocks in a set.
You combine smaller Blocks to make a bigger Block - a classic demonstration of composition.
Despite their multiple uses, each Block has some key attributes such as:
- ID : Unique and randomly generated UUID V4
- Properties : Customer and user-defined fields
- Type : The kind of Block (text, list, image)
These attributes control how a Block is displayed within the Notion editor.
However, that’s not all.
Each Block also has other attributes meant for linking it to other Blocks in the system.
For example:
- Content : Array of block IDs for nesting blocks inside other blocks
- Parent - The ID of the Block’s parent.
Here’s what a typical Block representation looks like.
So - what’s the simple truth about building flexible systems that we can learn from Notion?
Don’t try to solve all problems directly with your solution.
Instead do this:
✅ Build your software solution like a set of tools.
✅ Make it easy for the users to use those tools.
✅ Support the community in teaching users how to use the tools.
✅ Refine the products further by building more tools.
===
That's all for now!
If you enjoyed this post, what are you waiting for?
- LIKE and comment what you think about it.
- REPOST so that everyone can learn how to build flexible systems.
- BOOKMARK because you’d want to keep revisiting it for inspiration.
- Follow me for more posts like this where I cover practice software design tips
P.S. This post is based on the details available about Notion’s Data Model on their engineering blog.
𝗖𝗮𝗱𝗲𝗮𝘂 𝗽𝗼𝘂𝗿 𝘁𝗼𝘂𝘁 𝗹𝗲 𝗺𝗼𝗻𝗱𝗲 🎁
J'ai un partenariat pour vous faire gagner un bureau assis-debout @FlexispotF E7 !
🆓 Entièrement gratuit
🚛 Livré chez toi
🚀 Valeur 470€
Likes ❤️ ou retweets 🔀 ce concours, pour encore plus de matos à gagner !
Avant on mettait des cadenas sur nos ponts parce qu’il y avait trop d’amour, maintenant on met des cadenas sur nos comptes parce qu’il y a trop de haine
To celebrate the release of Keychron Q9 Plus, we are giving away two Q9 Plus to two lucky winners🎉. The winners will be announced on July 3.
Retweet and join #giveaway👉🏻 https://t.co/JzRMh3e5C1
Order it👉🏻https://t.co/lHosUwoA2O
#keychron#mechanicalkeyboard#customkeyboard