There is no "perfect" system - Deepstash

Bite‑sized knowledge

to upgrade

your career

Ideas from books, articles & podcasts.

There is no "perfect" system

There is no "perfect" system

There is no single design for any system that works perfectly. There are always trade-offs. Two different people can come up with different designs, with both being excellent given different assumptions.

Your goal is to:

  1. Understand the use case
  2. Scope the problem you are solving
  3. Make reasonable assumptions
  4. Create a solid design based on those assumptions
  5. Be open about the trade-offs you made and the weaknesses of your design

STASHED IN:

3

published ideas

📖 Cracking the Coding Interview

MORE IDEAS FROM THE SAME ARTICLE

Depending on the type of system you are designing, you need to estimate its scale: how many users will access it every day, how much data you will store and process, etc.

You should be careful when making assumptions. Incorrect assumptions can dramatically change th...

Once you have a basic design in mind, focus on the key issues. Identify the bottlenecks and major challenges of the system, and then adjust your design to handle them.

In the TinyURL example, a challenge you might consider is that some URLs are frequently accessed, whil...

You can't design a system if you don't know what you're designing.

First, ask questions to clarify what you need to implement. Then make a list of all major features and use cases that your design must cover.

For example, if you're designing TinyURL, that list mig...

Draw a high-level diagram of what your system looks like:

  • Include major components such as servers, databases and important processes
  • Describe the flow of your system from end-to-end

Discover and save more ideas by creating a

FREE

Deepstash account.

Develop a

reading habit

, save

time

and create an amazing

knowledge library

.

GET THE APP:

MORE LIKE THIS

Scaling

Systems can be scaled:

  • Vertically - by increasing the resources of a specific node (more CPU, memory, disk etc.). This is easier to do, but it's limited. You can only add so many CPU cores and memory.
  • Horizontally - by adding more nodes of the ...

1

STASHED IN:

10

published 6 ideas

📖 Cracking the Coding Interview

0 Comments

THE PROS AND CONS OF TAILWIND CSS

As a utility-first CSS framework, Tailwind has rapidly become popular among developers. With its fast styling process and the freedom it offers when designing a website, it’s really no wonder why.

But how can you make sure this is the right CSS framework for your upcoming development projec...

STASHED IN:

3

published 11 ideas

Tailwind is An excellent solution for developers familiar with CSS who want to speed up the creation and design process in the long run. Not such a good idea if you are not familiar with CSS or do not want to spend time learning a new CSS framework.

0 Comments

What Is Docker?

Docker is an open source containerization toolkit which enables developers to package applications into containers.

As the name suggests, Docker is like a container ship which provides means to sort, link, manage and ship containers from a d...

STASHED IN:

6

published 6 ideas

Docker is a very powerful tool for development and code deployment. This is what you’re missing to take it to the next level!

📖 Research

0 Comments