À propos du projet
Ce dépôt est une collection de liens pour apprendre la conception de systèmes et préparer les entretiens de conception de systèmes. Il ne contient pas de logiciel original ; il organise des articles gratuits, vidéos, cours, livres, newsletters, articles de blogs d'ingénierie et papiers sur les systèmes distribués.
Les sections principales incluent :
- Concepts fondamentaux : scalabilité, disponibilité, fiabilité, SPOF, latence vs débit vs bande passante, hachage cohérent, théorème CAP, basculement, tolérance aux pannes.
- Fondamentaux du réseau : modèle OSI, adresses IP, DNS, proxy vs reverse proxy, HTTP/HTTPS, TCP vs UDP, répartition de charge, sommes de contrôle.
- Fondamentaux des API : API, passerelle API, REST vs GraphQL, WebSockets, webhooks, idempotence, limitation de débit, conception d'API.
- Fondamentaux des bases de données : transactions ACID, SQL vs NoSQL, index, sharding, réplication, mise à l'échelle, types de bases de données, filtres Bloom, architectures.
- Fondamentaux de la mise en cache : bases de la mise en cache, stratégies, politiques d'éviction, mise en cache distribuée, CDN.
- Communication asynchrone : pub/sub, files d'attente de messages, capture des changements de données.
- Systèmes distribués et microservices : heartbeats, découverte de services, algorithmes de consensus, verrouillage distribué, protocole gossip, circuit breaker, reprise après sinistre, traçage distribué.
- Modèles architecturaux : client-serveur, microservices, serverless, événementiel, pair-à-pair.
- Compromis de conception de systèmes : mise à l'échelle verticale vs horizontale, concurrence vs parallélisme, long polling vs WebSockets, traitement par lots vs streaming, stateful vs stateless, modèles de cohérence, stratégies de cache, push vs pull, REST vs RPC, synchrone vs asynchrone, latence vs débit.
- Préparation aux entretiens : un cadre pour répondre aux problèmes de conception de systèmes, plus des problèmes d'entraînement catégorisés (facile, moyen, difficile) tels que URL shortener, WhatsApp, Instagram, Uber, Google Docs, Dropbox et stockage distribué.
- Ressources supplémentaires : cours, newsletters, livres, chaînes YouTube, articles d'ingénierie essentiels et papiers classiques sur les systèmes distribués (Paxos, MapReduce, GFS, Dynamo, Kafka, Spanner, Bigtable, ZooKeeper, LSM-Tree, Chubby).
Le dépôt est utile comme plan d'étude et index de référence pour les ingénieurs logiciels préparant des entretiens de conception de systèmes ou souhaitant comprendre les concepts des systèmes distribués à grande échelle.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.