system-design-primer/README-de.md

172 lines
10 KiB
Markdown
Raw Normal View History

2021-01-31 20:33:56 +03:00
*[English](README.md) ∙ [日本語](README-ja.md) ∙ [简体中文](README-zh-Hans.md) ∙ [繁體中文](README-zh-TW.md) | [العَرَبِيَّة‎](https://github.com/donnemartin/system-design-primer/issues/170) ∙ [বাংলা](https://github.com/donnemartin/system-design-primer/issues/220) ∙ [Português do Brasil](https://github.com/donnemartin/system-design-primer/issues/40) ∙ [Deutsch](README-de.md) ∙ [ελληνικά](https://github.com/donnemartin/system-design-primer/issues/130) ∙ [עברית](https://github.com/donnemartin/system-design-primer/issues/272) ∙ [Italiano](https://github.com/donnemartin/system-design-primer/issues/104) ∙ [한국어](https://github.com/donnemartin/system-design-primer/issues/102) ∙ [فارسی](https://github.com/donnemartin/system-design-primer/issues/110) ∙ [Polski](https://github.com/donnemartin/system-design-primer/issues/68) ∙ [русский язык](https://github.com/donnemartin/system-design-primer/issues/87) ∙ [Español](https://github.com/donnemartin/system-design-primer/issues/136) ∙ [ภาษาไทย](https://github.com/donnemartin/system-design-primer/issues/187) ∙ [Türkçe](https://github.com/donnemartin/system-design-primer/issues/39) ∙ [tiếng Việt](https://github.com/donnemartin/system-design-primer/issues/127) ∙ [Français](https://github.com/donnemartin/system-design-primer/issues/250) | [Add Translation](https://github.com/donnemartin/system-design-primer/issues/28)*
**Helfe diesen Leitfaden zu [übersetzen](TRANSLATIONS.md)!**
# The System Design Primer
<p align="center">
<img src="images/jj3A5N8.png">
<br/>
</p>
2021-02-13 23:22:23 +03:00
## Anki Karteikarten
<p align="center">
<img src="images/zdCAkB3.png">
<br/>
</p>
2021-02-13 23:26:25 +03:00
Die hier zur Verfügung gestellten [Anki Karteikarten](https://apps.ankiweb.net/) nutzen das Konzept der verteilten Wiederholung. Damit sollst du beim Behalten der Schlüsselkonzepte des System Designs unterstützt werden.
2021-02-13 23:22:23 +03:00
* [Karteikarten System Design](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design.apkg)
* [Übungskarteikarten System Design](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design%20Exercises.apkg)
* [Übungskarteikarten Objektorientiertes Design](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/OO%20Design.apkg)
Super um unterwegs zu üben!
### Coding Ressourcen: Interaktive Coding Herausforderungen
Auf der Suche nach Ressourcen um dich bei der Vorbereitung auf ein [**Coding Interview**](https://github.com/donnemartin/interactive-coding-challenges) vorzubereiten?
<p align="center">
<img src="images/b4YtAEN.png">
<br/>
</p>
Schau dir das Partner Repo [**Interaktive Coding Herausforderungen**](https://github.com/donnemartin/interactive-coding-challenges) mit einem zusätzlichen Anki Deck an:
2021-02-13 23:22:23 +03:00
* [Coding Deck](https://github.com/donnemartin/interactive-coding-challenges/tree/master/anki_cards/Coding.apkg)
2021-03-15 00:54:23 +03:00
## Inhaltsverzeichnis der System Design Themen
> Zusammenfassung verschiedener System Design Themen inklusive der Vor- und Nachteile **Alles ist ein Kompromiss**.
>
> Jedes Kapitel beinhaltet Links zu vertiefenden Ressourcen.
<p align="center">
<img src="images/jrUBAF7.png">
<br/>
</p>
2021-03-15 01:08:54 +03:00
* [System Design Themen: Starte hier](#system-desing-themen-starte-hier)
* [Schritt 1: Schaue das Video über Skalierbarkeit an](#schritt-1-schaue-das-video-uber-skalierbarkeit-an)
* [Schritt 2: Lese den Artikel zu Skalierbarkeit](#schritt-2-lese-den-artikel-zu-skalierbarkeit)
* [Nächste Schritte](#nachste-schritte)
* [Leistung vs Skalierbarkeit](#leistung-vs-skalierbarkeit)
* [Latenz vs Durchsatz](#latenz-vs-durchsatz)
* [Verfügbarkeit vs Konsistenz](#verfugbarkeit-vs-konsistenz)
* [Der CAP Satz](#der-cap-satz)
* [CP - Konsistenz und Ausfalltoleranz](#cp---konsistenz-und-ausfalltoleranz)
* [AP - Verfügbarkeit und Ausfalltoleranz](#ap---verfugbarkeit-und-ausfalltoleranz)
* [Konsistenzklassen](#konsistenzklassen)
* [Schwache Konsistenz](#schwache-konsistenz)
* [Eventuelle Konsistenz](#eventuelle-konsistenz)
* [Starke Konsistenz](#starke-konsistenz)
* [Verfügbarkeitsklassen](#verfugbarkeitsklassen)
2021-03-15 00:54:23 +03:00
* [Fail-over](#fail-over)
2021-03-15 01:08:54 +03:00
* [Replizierung](#replizierung)
* [Verfügbarkeit in Zahlen](#verfugbarkeit-in-zahlen)
2021-03-15 00:54:23 +03:00
* [Domain name system](#domain-name-system)
2021-03-15 01:08:54 +03:00
* [Netzwerk für die Bereitstellung von Inhalten (CDN)](#netzwerk-fur-die-bereitstellung-von-inhalten)
2021-03-15 00:54:23 +03:00
* [Push CDNs](#push-cdns)
* [Pull CDNs](#pull-cdns)
* [Load balancer](#load-balancer)
2021-03-15 01:08:54 +03:00
* [Aktiv-passiv](#aktiv-passiv)
* [Aktiv-passiv](#aktiv-aktive)
* [Schicht 4 load balancing](#schicht-4-load-balancing)
* [Schicht 7 load balancing](#schicht-7-load-balancing)
* [Horizontale Skalierung](#horizontale-skalierung)
2021-03-15 00:54:23 +03:00
* [Reverse proxy (web server)](#reverse-proxy-web-server)
* [Load balancer vs reverse proxy](#load-balancer-vs-reverse-proxy)
2021-03-15 01:08:54 +03:00
* [Applikationsschicht](#applikationsschicht)
2021-03-15 00:54:23 +03:00
* [Microservices](#microservices)
2021-03-15 01:08:54 +03:00
* [Serviceerkennung](#serviceerkennung)
* [Datenbanken](#datenbanken)
* [Relationale Datenbankmanagementsysteme (RDBMS)](#relationale-datenbankmanagementsysteme)
* [Master-slave Replizierung](#master-slave-replizierung)
* [Master-master Replizierung](#master-master-replizierung)
2021-03-15 00:54:23 +03:00
* [Federation](#federation)
* [Sharding](#sharding)
2021-03-15 01:08:54 +03:00
* [Denormalisierung](#denormalisierung)
2021-03-15 00:54:23 +03:00
* [SQL tuning](#sql-tuning)
* [NoSQL](#nosql)
2021-03-15 01:08:54 +03:00
* [Key-value Speicher](#key-value-speicher)
* [Dokumentenspeicher](#dokumentenspeicher)
* [Spaltenorientierte Datenbanken](#spaltenorientierte-datenbanken)
* [Graph Datenbanken](#graph-datenbanken)
2021-03-15 00:54:23 +03:00
* [SQL oder NoSQL](#sql-or-nosql)
* [Cache](#cache)
* [Client caching](#client-caching)
* [CDN caching](#cdn-caching)
* [Web server caching](#web-server-caching)
2021-03-15 01:08:54 +03:00
* [Datenbankcaching](#datenbankcaching)
* [Applikationscaching](#applikationscaching)
* [Caching auf Datenbank-Abfragelevel](#caching-auf-datenbank-abfragelevel)
* [Caching auf Objektlevel](#caching-auf-objektlevel)
* [Wann den Cache aktualisieren](#wann-den-cache-aktualisieren)
2021-03-15 00:54:23 +03:00
* [Cache-aside](#cache-aside)
* [Write-through](#write-through)
* [Write-behind (write-back)](#write-behind-write-back)
* [Refresh-ahead](#refresh-ahead)
2021-03-15 01:08:54 +03:00
* [Asynchronie](#asynchronie)
2021-03-15 00:54:23 +03:00
* [Message queues](#message-queues)
* [Task queues](#task-queues)
2021-03-15 01:08:54 +03:00
* [Gegendruck](#gegendruck)
* [Kommunikationstechniken](#kommunikationstechniken)
2021-03-15 00:54:23 +03:00
* [Transmission control protocol (TCP)](#transmission-control-protocol-tcp)
* [User datagram protocol (UDP)](#user-datagram-protocol-udp)
* [Remote procedure call (RPC)](#remote-procedure-call-rpc)
* [Representational state transfer (REST)](#representational-state-transfer-rest)
2021-03-15 01:08:54 +03:00
* [Sicherheit](#sicherheit)
2021-03-15 00:54:23 +03:00
* [Appendix](#appendix)
2021-03-15 01:08:54 +03:00
* [Zweierpotenzen](#zweierpotenzen)
* [Latenzen die jeder Programmierer kennen sollte](#latenzen-die-jeder-programmierer-kennen-sollte)
* [Zusätzliche System Design Interviewfragen](#zusatzliche-system-design-interviewfragen)
* [Architekturen aus der echten Welt](#architekturen-aus-der-echten-welt)
* [Unternehmensarchitekturen](#unternehmensarchitekturen)
* [Engineering Blogs von Unternehmen](#engineering-blogs-von-unternehmen)
* [In Entwicklung](#in-entwicklung)
* [Danksagung](#danksagung)
* [Kontakt](#kontakt)
* [Lizenz](#lizenz)
2021-03-15 00:54:23 +03:00
## Studienführer
> Empfohlene Themen basierend auf deinen Zeithorizont zum Interview (kurz, mittel, lang).
![Imgur](images/OfVllex.png)
**F: Muss ich für Interviews alles von hier wissen?**
**A: Nein, du musst nicht alles hier wissen um dich auf ein Interview vorzubereiten**.
Was man dich bei einem Interview frägt hängt von verschiedenen Variablen ab:
* Wie viel Erfahrung hast du
* Welchen technischen Hintergrund hast du
* Auf welche Position bewirbst du dich
* Bei welcher Firma ist das Interview
* Glück
Von erfahreneren Kandidaten wird allgemein mehr Wissen im Bereich System Design erwartet. Von Architekten oder Teamleitern wird mehr Wissen als vom individuellen Teammitglied erwartet. Moderne Tech-Unternehmen haben häufig multiple Vorstellungsrunden.
Beginne breit und fokussiere dich auf einige wenige Bereiche. Es hilft wenn man ein wenig über verschiedene Schlüsselthemen des System Designs. Passe den folgenden Studienführer basierend auf deinem Zeithorizont, deiner Erfahrung, die Position auf die du dich bewirbst und die Firma bei der du dich bewirbst, an.
* **Kurzer Zeithorizont** - Strebe ein **breites** Wissen über System Design Themen an. Übe mit dem Lösen **einiger** Interview Fragen.
* **Mittlerer Zeithorizont** - Strebe ein **breites** Wissen und **etwas** Tiefe über System Design Themen. Übe mit dem Lösen **vieler** Interview Fragen.
* **Langer Zeithorizont** - Strebe ein **breites** Wissen und **weit mehr** Tiefe über System Design Themen. Übe mit dem Lösen der **meisten** Interview Fragen.
# TODO Links überarbeiten
| | Kurzfristig | Mittelfristig | Langfristig |
|---|---|---|---|
| Lese dir [System design topics](#index-of-system-design-topics) durch um ein breites Verständnis vom Zusammenspiel von Systemen zu bekommen | :+1: | :+1: | :+1: |
| Lese dir ein paar Artikel von [Company engineering blogs](#company-engineering-blogs) zu den Firmen bei denen du dich vorstellst durch | :+1: | :+1: | :+1: |
| Lese dir ein paar Artikel von [Real world architectures](#real-world-architectures) durch | :+1: | :+1: | :+1: |
| Beschäftige dich mit [How to approach a system design interview question](#how-to-approach-a-system-design-interview-question) | :+1: | :+1: | :+1: |
| Arbeite dich durch [System design interview questions with solutions](#system-design-interview-questions-with-solutions) | Einige | Viele | Alle |
2021-03-14 21:33:53 +03:00
| Arbeite dich durch [Object-oriented design interview questions with solutions](#object-oriented-design-interview-questions-with-solutions) | Einige | Viele | Alle |
| Beschäftige dich mit [Additional system design interview questions](#additional-system-design-interview-questions) | Einige | Viele | Alle |