system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Analisi AI · Italiano
openai · gpt-4o-miniSintesi
Questo repository è una risorsa completa per apprendere i principi di progettazione di sistemi distribuiti e prepararsi per gli colloqui tecnici sul system design. Contiene una collezione organizzata di argomenti, soluzioni a domande di colloquio e flashcard Anki per facilitare l'apprendimento. L'obiettivo è aiutare gli ingegneri a progettare sistemi scalabili e affrontare con successo le sfide dei colloqui.
Casi d'uso
- →Preparazione per colloqui tecnici di system design per posizioni in aziende tecnologiche.
- →Formazione e approfondimento per ingegneri che intendono progettare sistemi scalabili e robusti.
- →Riferimento rapido per architetti di software sulla scelta di pattern e tecnologie (es. SQL vs NoSQL, caching).
- →Punto di partenza per studenti di informatica o neolaureati per comprendere le basi della progettazione di sistemi distribuiti.
- →Guida per la risoluzione di problemi di scalabilità e prestazioni in sistemi esistenti.
Idee SaaS / Business
Una piattaforma web-based che offre simulazioni interattive di colloqui di system design con feedback automatizzato o semi-automatizzato. Potrebbe includere scenari dinamici, suggerimenti per la progettazione e la possibilità di confrontare le proprie soluzioni con esempi di alto livello, oltre a estendere le flashcard Anki con funzionalità premium.
Un servizio SaaS che permette agli sviluppatori e architetti di caricare diagrammi architetturali o descrizioni di sistemi e ricevere analisi automatiche su potenziali colli di bottiglia, scelte di design alternative (es. cache, DB, load balancing) e suggerimenti per la scalabilità e l'affidabilità, basati sui principi trattati nel primer.
Offrire un corso strutturato di system design premium, basato sui contenuti del repository ma arricchito con lezioni video, esercizi pratici guidati e sessioni di mentoring personalizzate con esperti del settore. Il modello potrebbe includere livelli di abbonamento per l'accesso a contenuti e supporto aggiuntivi.
README · tradotto in italiano
Il Manuale di Progettazione di Sistemi

Motivazione
Impara a progettare sistemi su larga scala. Preparati per il colloquio di progettazione di sistemi.
Impara a progettare sistemi su larga scala
Imparare a progettare sistemi scalabili ti aiuterà a diventare un ingegnere migliore.
La progettazione di sistemi è un argomento vasto. Ci sono un enorme numero di risorse sparse sul web sui principi di progettazione di sistemi.
Questo repository è una raccolta organizzata di risorse per aiutarti a imparare come costruire sistemi su larga scala.
Impara dalla comunità open source
Questo è un progetto open source continuamente aggiornato.
I contributi sono benvenuti!
Preparati per il colloquio di progettazione di sistemi
Oltre ai colloqui di codifica, la progettazione di sistemi è un componente obbligatorio del processo di colloquio tecnico in molte aziende tecnologiche.
Esercitati con comuni domande di colloquio di progettazione di sistemi e confronta i tuoi risultati con soluzioni campione: discussioni, codice e diagrammi.
Argomenti aggiuntivi per la preparazione al colloquio:
- Guida allo studio
- Come affrontare una domanda di colloquio di progettazione di sistemi
- Domande di colloquio di progettazione di sistemi, con soluzioni
- Domande di colloquio di progettazione orientata agli oggetti, con soluzioni
- Altre domande di colloquio di progettazione di sistemi
Flashcard Anki

I mazzi di flashcard Anki forniti utilizzano la ripetizione spaziata per aiutarti a memorizzare i concetti chiave della progettazione di sistemi.
- Mazzo di progettazione di sistemi
- Mazzo di esercizi di progettazione di sistemi
- Mazzo di esercizi di progettazione orientata agli oggetti
Ottime da usare in movimento.
Risorsa di Codifica: Sfide Interattive di Codifica
Cerchi risorse per aiutarti a prepararti per il Colloquio di Codifica?

Dai un'occhiata al repository gemello Interactive Coding Challenges, che contiene un ulteriore mazzo Anki:
Contribuire
Impara dalla comunità.
Sentiti libero di inviare pull request per aiutare a:
- Correggere errori
- Migliorare sezioni
- Aggiungere nuove sezioni
- Tradurre
Il contenuto che necessita di essere rifinito è posto in sviluppo.
Consulta le Linee guida per i contributi.
Indice degli argomenti di progettazione di sistemi
Riepiloghi di vari argomenti di progettazione di sistemi, inclusi pro e contro. Tutto è un compromesso. Ogni sezione contiene link a risorse più approfondite.

- Argomenti di progettazione di sistemi: inizia qui
- Performance vs scalabilità
- Latenza vs throughput
- Disponibilità vs consistenza
- Pattern di consistenza
- Pattern di disponibilità
- Sistema dei nomi di dominio (DNS)
- Content delivery network (CDN)
- Load balancer
- Reverse proxy (web server)
- Livello applicativo
- Database
- Cache
- Asincronismo
- Comunicazione
- Sicurezza
- Appendice
- In sviluppo
- Crediti
- Contatti
- Licenza
Guida allo studio
Argomenti suggeriti da rivedere in base alla tempistica del tuo colloquio (breve, media, lunga).

D: Per i colloqui, devo sapere tutto qui?
R: No, non devi sapere tutto qui per prepararti al colloquio.
Ciò che ti viene chiesto in un colloquio dipende da variabili come:
- Quanta esperienza hai
- Qual è il tuo background tecnico
- Per quali posizioni stai facendo il colloquio
- Con quali aziende stai facendo il colloquio
- Fortuna
Dai candidati più esperti ci si aspetta generalmente che sappiano di più sulla progettazione di sistemi. Architetti o team leader potrebbero dover sapere di più rispetto ai singoli contributori. Le migliori aziende tecnologiche probabilmente avranno uno o più cicli di colloqui di progettazione.
Inizia in modo ampio e approfondisci alcune aree. Aiuta conoscere un po' i vari argomenti chiave della progettazione di sistemi. Adatta la seguente guida in base alla tua tempistica, esperienza, posizioni per cui stai facendo il colloquio e aziende con cui stai interagendo.
- Tempistica breve - Punta alla ampiezza degli argomenti di progettazione di sistemi. Esercitati risolvendo alcune domande di colloquio.
- Tempistica media - Punta alla ampiezza e a una certa profondità negli argomenti di progettazione di sistemi. Esercitati risolvendo molte domande di colloquio.
- Tempistica lunga - Punta alla ampiezza e a maggiore profondità negli argomenti di progettazione di sistemi. Esercitati risolvendo la maggior parte delle domande di colloquio.
| Breve | Medio | Lungo | |
|---|---|---|---|
| Leggi gli Argomenti di progettazione di sistemi per un'ampia comprensione del funzionamento dei sistemi | :+1: | :+1: | :+1: |
| Leggi alcuni articoli dei Blog di ingegneria aziendali per le aziende con cui fai colloqui | :+1: | :+1: | :+1: |
| Leggi alcune Architetture del mondo reale | :+1: | :+1: | :+1: |
| Rivedi Come affrontare una domanda di colloquio di progettazione di sistemi | :+1: | :+1: | :+1: |
| Esercitati con le Domande di colloquio di progettazione di sistemi con soluzioni | Alcune | Molte | La maggior parte |
| Esercitati con le Domande di colloquio di progettazione orientata agli oggetti con soluzioni | Alcune | Molte | La maggior parte |
| Rivedi Altre domande di colloquio di progettazione di sistemi | Alcune | Molte | La maggior parte |
Come affrontare una domanda di colloquio di progettazione di sistemi
Come affrontare una domanda di colloquio di progettazione di sistemi.
Il colloquio di progettazione di sistemi è una conversazione aperta. Ci si aspetta che tu la conduca tu.
Puoi usare i seguenti passi per guidare la discussione. Per aiutare a consolidare questo processo, lavora attraverso la sezione Domande di colloquio di progettazione di sistemi con soluzioni usando i seguenti passi.
Passo 1: Delinea casi d'uso, vincoli e assunzioni
Raccogli i requisiti e definisci l'ambito del problema. Poni domande per chiarire i casi d'uso e i vincoli. Discuti le assunzioni.
- Chi lo userà?
- Come lo useranno?
- Quanti utenti ci sono?
- Cosa fa il sistema?
- Quali sono gli input e gli output del sistema?
- Quanti dati ci aspettiamo di gestire?
- Quante richieste al secondo ci aspettiamo?
- Qual è il rapporto previsto tra letture e scritture?
Passo 2: Crea un design di alto livello
Delinea un design di alto livello con tutti i componenti importanti.
- Schizza i componenti principali e le connessioni
- Giustifica le tue idee
Passo 3: Progetta i componenti chiave
Approfondisci i dettagli per ogni componente chiave. Ad esempio, se ti fosse stato chiesto di progettare un servizio di accorciamento URL, discuti:
- Generazione e archiviazione di un hash dell'URL completo
- Traduzione di un URL hash all'URL completo
- Ricerca nel database
- API e progettazione orientata agli oggetti
Passo 4: Scala il design
Identifica e affronta i colli di bottiglia, dati i vincoli. Ad esempio, hai bisogno dei seguenti elementi per affrontare i problemi di scalabilità?
- Load balancer
- Scalabilità orizzontale
- Caching
- Sharding del database
Discuti potenziali soluzioni e compromessi. Tutto è un compromesso. Affronta i colli di bottiglia usando i principi di progettazione di sistemi scalabili.
Calcoli approssimativi
Potrebbe esserti chiesto di fare alcune stime a mano. Fai riferimento all'Appendice per le seguenti risorse:
- Usa i calcoli approssimativi
- Tabella delle potenze di due
- Numeri di latenza che ogni programmatore dovrebbe conoscere
Fonte/i e ulteriori letture
Dai un'occhiata ai seguenti link per avere un'idea migliore di cosa aspettarti:
Attività commit · ultime 26 settimane
stimaApprofondimenti AI
Chiedi al repo
AI · contesto README + issueFai una domanda sul progetto. L'AI legge README e issue recenti.
Hai bisogno di un server per far girare donnemartin/system-design-primer?
Abbiamo testato decine di provider e Hostinger VPS è il miglior rapporto qualità/prezzo per self-hostare le repo che trovi qui. Setup in 1 click, pannello semplice e supporto 24/7.
Questo progetto esiste grazie a voi
RepoRadar AI è gratis e senza pubblicità. Le donazioni coprono server, API e modelli AI.
Ogni analisi tradotta che leggi costa qualche centesimo di chiamate al modello. Se RepoRadar ti ha fatto risparmiare tempo, considera una piccola donazione cripto — anche pochi euro aiutano a mantenere il servizio libero per tutti.
0x86ECDF546d8dFc0739d44c066A6110F11cdB7773bc1qqe0wcmhnt78enk8ql0lxvey4z8hquxsxjtyz8rEtTK61Lz7kfdDM8543TMMiAUUTbFVpzX5tvPEcBtZ3ajGrazie di cuore — ogni contributo conta.