Sommario[Nascondere][Spettacolo]
- 1. Progettazione di applicazioni ad alta intensità di dati
- 2. Progettazione e analisi di sistemi moderni
- 3. Analisi e progettazione del sistema di Scott Tiley
- 4. Modello di progettazione Head First
- 5. Architettura pulita
- 6. Analisi e progettazione del sistema di Dennis, Wixom e Roth
- 7. Intervista alla progettazione del sistema di Alex Xu
- 8. Modelli di impresa dell'architettura applicativa
- 9. Creazione di microservizi
- 10. Progettazione pratica del sistema
- 11. Progettazione di sistemi integrati
- 12. Intervista alla progettazione del sistema: una guida completa
- 13. Progettazione del sistema distribuito
- 14. Progettazione di un sistema di apprendimento automatico
- 15. Progettazione di sistemi sicuri
- 16. Analisi, progettazione e test del sistema
- 17. Modello di architettura software per sistemi serverless
- 18. Architetture cloud native
- 19. Introduzione alla progettazione di sistemi basati su microprocessori
- 20. Intervista alla progettazione del sistema di cracking
- Conclusione
Per gli studenti che aspirano a collocamenti tecnici, il System Design è un argomento essenziale. I datori di lavoro di oggi sono alla ricerca di studenti universitari con grandi capacità di risoluzione dei problemi e solide basi di informatica.
In molte interviste FAANG, le domande sulla progettazione del sistema sono diventate di routine. Design di sistema è uno dei fattori chiave che determinano la tua candidatura in un'organizzazione tecnologica.
Pertanto, diventa fondamentale avere una presa salda sul materiale e comprenderlo al meglio delle tue capacità. I libri sono la fonte di conoscenza più affidabile.
L'autore vuole rendere facile per te portare avanti, un pacchetto gestibile di tutti gli insegnamenti della tua vita. Quando si impara la progettazione di un sistema, non c'è modo migliore per imparare che attraverso la lettura dei libri più importanti scritti da autori famosi.
20 libri appositamente scelti sulla progettazione del sistema sono elencati in questo post.
Ti aiuteranno a comprendere a fondo l'analisi del sistema e le idee di progettazione e aumenteranno la tua autostima prima di un colloquio di progettazione del sistema o miglioreranno la tua conoscenza di esso.
1. Progettazione di applicazioni ad alta intensità di dati
Le difficoltà relative ai dati nella progettazione dei sistemi oggi includono quelle relative a scalabilità, coerenza, affidabilità, efficienza e manutenibilità.
Inoltre, potrebbe essere difficile scegliere lo strumento migliore per la tua applicazione tra i numerosi disponibili (come processori batch, broker di messaggi, ecc.).
Cosa significa qui la terminologia?
I vantaggi e gli svantaggi delle varie tecnologie per l'elaborazione e la memorizzazione dei dati sono discussi in questo libro dall'autore Martin Kleppmann.
Dalle idee e dagli algoritmi di base agli usi del mondo reale e ai dettagli di varie tecnologie, il libro offre una rassegna esauriente dei sistemi di archiviazione dei dati. Questo libro aiuterà i principianti ad accelerare i loro processi di apprendimento incorporando l'esperienza di architetti di sistema esperti.
L'autore combina sapientemente concetti teorici con applicazioni del mondo reale nel suo lavoro. Chiunque sia interessato a dati di grandi dimensioni, sistemi distribuiti o interni di database dovrebbe leggerlo.
Questo libro è molto più di quanto tu possa immaginare. Approcci più recenti come microservizi, architetture reattive, DevOps ed elaborazione del flusso combinano metodi collaudati come architetture orientate ai servizi e basate sugli eventi.
Numerosi di questi modelli sono efficaci se usati in modo indipendente, ma come mostra questo utile ebook, se combinati offrono una strategia più completa e persuasiva.
2. Progettazione e analisi di sistemi moderni
Considera di volere un approccio pratico allo studio dei concetti, delle abilità e dei metodi correlati analisi e progettazione del sistema. Il miglior libro di progettazione di sistema per te in quella situazione è questo.
Questo libro è più adatto per lo sviluppo di un intero sistema di apprendimento degli studenti perché contiene anche una sezione sugli approcci agili. I concetti, le abilità, gli approcci, le strategie, gli strumenti e le prospettive necessarie agli analisti di sistemi per creare sistemi informativi sono presentati in Modern Systems Analysis and Design, che pone maggiore enfasi sul pratico che sul teorico.
Gli autori presumono che gli studenti abbiano frequentato un corso introduttivo ai sistemi informatici e che abbiano una precedente esperienza nella scrittura di programmi in almeno un linguaggio di programmazione.
Gli autori forniscono un quadro concettuale e metodico mentre si muovono logicamente attraverso le questioni facendo riferimento al ciclo di vita dello sviluppo dei sistemi.
3. Analisi del sistema e progettazione di Scott Tiley
Uno dei più importanti libri di testo sulla progettazione dei sistemi ora accessibile è ampiamente riconosciuto come questo libro di Scott Tiley sulla progettazione dei sistemi. Per costruire sistemi migliori, i progettisti di sistemi hanno utilizzato e stanno confrontando metodi tradizionali e all'avanguardia.
Questo libro ti aiuterà a capire cosa è cambiato, perché è stato necessario apportare il cambiamento e perché è stato necessario farlo in primo luogo.
Oltre a imparare come funzionano i sistemi, imparerai anche il cloud computing e applicazioni mobili, tra l'altro, secondo gli autori, i quali affermano che questo libro contiene sezioni sulla codifica orientata agli oggetti e sulla metodologia agile, due delle metodologie più utilizzate oggi nelle aziende.
Il libro è pieno zeppo di compiti ed esercizi che ti costringeranno a indossare i tuoi cappucci mentali e a utilizzare immediatamente le informazioni appena acquisite.
4. Primo modello di progettazione della testa
Vuoi imparare da coloro che sono passati prima poiché non ti piace iniziare da zero quando si tratta di creazione di software. Per imparare dalle esperienze di altri che hanno affrontato sfide di progettazione di sistemi simili alle tue, guardi ai modelli di progettazione.
Attraverso l'uso di modelli di progettazione, puoi utilizzare le conoscenze degli altri in modo da poterti concentrare su compiti più difficili o piacevoli.
Questo libro, scritto da Eric Freeman ed Elisabeth Robson, insegna cosa sono i modelli e quando, perché e come usarli nelle proprie creazioni. Esplora anche le idee orientate agli oggetti che sono alla base dei progetti.
Questo è un metodo divertente per conoscere e migliorare la tua comprensione dello sviluppo del software. Studierai idee e modelli di progettazione fondamentali in modo da poter risolvere le sfide di progettazione del software e comunicare nel linguaggio dei modelli con il tuo team.
All'inizio potrebbe non sembrare "abbastanza serio", ma col passare del tempo, le cose ti rimangono nel cervello e ti piace scoprire schemi. Questo libro semplifica e chiarisce efficacemente i modelli.
5. Architettura pulita
Robert è un autore affermato che ha scritto numerosi libri sullo sviluppo agile e sul codice pulito.
Ora, dovrebbe essere ovvio che dopo aver letto i libri di Robert C. Martin, sarai in grado di migliorare il flusso del tuo codice e includere tecniche agili nelle tue soluzioni di progettazione oltre a comprendere le idee di progettazione del sistema.
Tuttavia, questo libro si concentra sui fondamenti dell'analisi e della progettazione del sistema, nonché sulle numerose difficoltà che i progettisti di sistema devono affrontare durante la creazione di una soluzione nel mondo reale.
In questo libro vengono trattate anche tecniche di sviluppo basate su test e come eseguire unit test per aumentare l'efficacia del sistema. Per gli studenti di progettazione di sistemi e chiunque cerchi di elevare lo standard del proprio software in questi giorni, questo libro è il migliore disponibile.
Clean Architecture spiega le decisioni che devi prendere e perché sono essenziali per il tuo successo, piuttosto che presentarti solo una varietà di possibilità e dire: "Usa il tuo miglior giudizio".
6. Analisi del sistema e progettazione di Dennis, Wixom e Roth
Questo libro fornisce spiegazioni approfondite di progetti applicabili a situazioni di vita reale, che consentono di acquisire una migliore comprensione dell'analisi e della progettazione del sistema. Il libro include anche diversi casi di studio ed esempi, tutti dettagliati in grande dettaglio.
Questo libro ti aiuterà a migliorare i tuoi studi di progettazione di rete e ad acquisire una solida comprensione dell'analisi del sistema e dei concetti di progettazione.
Di conseguenza, a seconda della tua prospettiva, questo libro può essere classificato sia come un libro di progettazione di sistema per principianti che come un libro di progettazione di sistema per studenti di informatica di livello medio e superiore.
Le istanze e gli esempi in esecuzione vengono utilizzati per illustrare idee chiave, che vengono poi supportate da spiegazioni approfondite e altre caratteristiche che enfatizzano dettagli importanti e pongono l'accento sull'atto di "fare" oltre che sull'"apprendimento".
Gli studenti acquisiscono le informazioni e le abilità fondamentali richieste da un analista professionista, nonché un istinto per l'approccio, gli strumenti e le tecniche mentre applicano il proprio lavoro a situazioni reali.
7. Intervista sul design del sistema di Alex Xu
Gli sviluppatori hanno spesso le risposte a domande del colloquio sulla progettazione del sistema perché sono intimiditi dalla vasta gamma di potenziali scelte. Ma se non c'è una risposta chiara, come puoi rispondere efficacemente in un'intervista?
Il miglior libro attualmente sul mercato, questo è consigliato a chiunque si prepari per un colloquio di progettazione del sistema. Il libro include molte illustrazioni e grafici che ti aiutano a comprendere il metodo vero e proprio apparendo come veri e propri elementi del questionario.
Inoltre, questo libro ti aiuterà a comprendere ciò che i responsabili delle assunzioni vogliono vedere nella tua soluzione, consentendoti di superare facilmente il tuo successivo esame di progettazione del sistema. Ti darà più sicurezza in te stesso durante questo colloquio cruciale.
Il metodo per affrontare una sfida di progettazione del sistema è illustrato in dettaglio in questo libro. Fornisce inoltre diversi esempi del mondo reale per mostrare come funziona un approccio metodico, insieme a chiare istruzioni che puoi seguire.
8. Modelli di impresa dell'architettura applicativa
L'introduzione di diverse nuove tecnologie abilitanti ha giovato alla professione di sviluppo di applicazioni aziendali. Le piattaforme che consentono lo sviluppo multilivello orientato agli oggetti, come Java e.NET, sono già diffuse.
Sebbene questi nuovi strumenti e tecnologie possano essere utilizzati per creare potenti applicazioni, sono difficili da mettere in pratica. Poiché i loro sviluppatori non comprendono i principi dell'architettura appresi dagli sviluppatori di oggetti esperti, le app aziendali spesso falliscono regolarmente.
Gli sviluppatori di applicazioni aziendali devono affrontare diverse difficoltà, che hanno ispirato gli autori di Patterns of Enterprise Application Architecture a scrivere il loro libro.
L'autore, un famoso designer orientato agli oggetti Martin Fowler, ha osservato che gli stessi principi fondamentali di progettazione possono essere modificati e applicati per affrontare problemi comuni indipendentemente dai cambiamenti tecnologici, da Smalltalk a CORBA a Java a .NET.
Martin decostruisce oltre quaranta soluzioni ripetute in schemi con l'assistenza di un gruppo esperto di volontari. Il prodotto finale è un prezioso manuale di correzioni che può essere utilizzato con qualsiasi piattaforma applicativa aziendale.
9. Costruire microservizi
Negli ultimi dieci anni, i sistemi distribuiti si sono evoluti da grandi app monolitiche ad alta intensità di codice a microservizi più compatti e indipendenti. Tuttavia, la creazione di questi sistemi presenta una serie di sfide.
Questo libro presenta un approccio completo ai problemi che gli architetti di sistema e gli amministratori devono tenere in considerazione durante la creazione, l'amministrazione e l'aggiornamento delle architetture di microservizi, con molti esempi e indicazioni utili.
Le tecnologie per i microservizi si stanno sviluppando rapidamente. Mentre approfondisce gli approcci più recenti per la progettazione, l'integrazione, il test, l'implementazione e il monitoraggio dei propri servizi autonomi, l'autore Sam Newman fornisce solide basi nei principi.
In tutto il libro, seguirai un'ipotetica azienda per vedere come la creazione di un'architettura di microservizi influisca su un particolare dominio.
10 Progettazione pratica del sistema
L'attenzione di questo libro è sulla scalabilità delle applicazioni software e porta il lettore in un viaggio approfondito. Dopo aver letto questo articolo, avrai una migliore comprensione di come creare un'applicazione scalabile a livello aziendale.
Il libro passa attraverso concetti di progettazione del sistema, reti di computer, i principali protocolli di rete, i meccanismi di accesso ai dati scalabili e gli stili architetturali alternativi per la costruzione del sistema.
Viene eseguita un'indagine dettagliata di numerose tecnologie e della loro implementazione, tra cui Cache Memory, CDN, Bilanciatori di caricoe Code di messaggistica.
Il libro spiega anche come costruire una soluzione scalabile a livello aziendale utilizzando varie combinazioni tecnologiche. La tua decisione sul percorso ottimale per l'architettura del sistema è aiutata dall'analisi di diversi progetti architettonici.
Il libro esamina anche i modelli di progettazione e programmazione orientata agli oggetti tecniche che aiutano a scrivere codice chiaro e manutenibile. Utilizzando più esempi di progettazione di sistemi del mondo reale, il lettore acquisirà una comprensione intuitiva di vari strumenti e metodi per produrre un sistema scalabile.
11 Design di sistema integrato
Fornire un'introduzione completa ai concetti fondamentali nei sistemi embedded, con applicazioni nei sistemi cyber-fisici e nell'Internet delle cose, è una caratteristica speciale di questo libro di testo ad accesso aperto.
Uno studio dei modelli di specifica e dei linguaggi per i sistemi embedded e cyber-fisici precede un'introduzione all'area.
Spiega i fondamenti del software di sistema per sistemi embedded, inclusi i sistemi operativi in tempo reale, e fornisce un'introduzione di base ai componenti hardware utilizzati in tali sistemi.
Inoltre, l'autore presenta una panoramica dei metodi per mappare i programmi sulle piattaforme di esecuzione, comprese le piattaforme multi-core, e parla degli approcci di valutazione e validazione per i sistemi embedded.
Poiché i sistemi embedded devono funzionare in base a parametri rigorosi, il libro include anche una raccolta selezionata di approcci di ottimizzazione, come le tecniche di ottimizzazione del software. Nella conclusione del libro, i test sono brevemente discussi.
12 Intervista alla progettazione del sistema: una guida completa
Una delle parti più odiate e impegnative dei colloqui di lavoro tecnici è il colloquio di progettazione del sistema. Le incertezze fanno paura.
Ma se esamini attentamente le analisi e le procedure descritte in questa rivista, sarai in grado di superare qualsiasi ostacolo che incontri utilizzando tecniche di ingegneria dei dati per le valutazioni.
Scoprirai i numerosi metodi di colloquio per ingegneri. Dopo aver letto questa guida, avrai una comprensione completa dei passaggi necessari per utilizzare app ad alta intensità di dati.
Dopo averlo letto, che tu sia un professionista o un ingegnere non di back-end, imparerai molto su come implementare i sistemi di dati attraverso le reti, inclusi RDBMS, NoSQL, IMS e altri.
13 Progettazione di un sistema distribuito
Le grandi aziende stanno lavorando duramente per implementare nuove tecnologie per lo sviluppo di nuovi beni, procedure e modelli di business nella lotta per competere nei mercati in rapida evoluzione di oggi.
Tuttavia, porre troppa enfasi sulla tecnologia e non abbastanza sui tipi di processi consentiti dalla tecnologia è un ostacolo alla trasformazione digitale.
E se a vari settori aziendali fosse consentito creare i propri servizi e app e il processo decisionale fosse decentralizzato anziché centralizzato? Al fine di consentire a diversi settori aziendali di rispondere ai dati in tempo reale, questa ricerca indaga l'idea di una piattaforma di business digitale.
In una società digitale, molta innovazione avverrà sempre più ai margini, indipendentemente dal fatto che includa dispositivi IoT o utenti aziendali (dai marketer ai data scientist).
Il tuo personale IT di base può fornire a questi settori le risorse digitali di cui hanno bisogno per svilupparsi rapidamente al fine di semplificare il processo. Questo libro esamina: sono necessari importanti cambiamenti organizzativi e culturali per stabilire capacità aziendali attraverso team di prodotto interfunzionali. un sistema per collegare programmi, database, clienti, partner, social networke dispositivi Internet delle cose.
Allo scopo di sviluppare servizi all'avanguardia con impostazioni low-code o no-code, la programmazione API interna di Application Platform as a Service, Integration Platform as a Service e Integration Software as a Service sono alcuni esempi di strumenti.
14 Progettazione di sistemi di apprendimento automatico
I sistemi per l'apprendimento automatico sono complessi e speciali. Sono complessi perché hanno un'ampia gamma di parti costitutive e parti interessate.
Poiché dipendono dai dati, che variano notevolmente da un caso d'uso all'altro, sono speciali.
In questo libro scoprirai un metodo completo per la creazione di sistemi ML affidabili, scalabili, manutenibili e adattabili all'ambiente in evoluzione e ai requisiti aziendali.
L'autore Chip Huyen, co-fondatore di Claypot AI, tiene conto di come ogni scelta progettuale potrebbe aiutare il tuo sistema nel suo insieme a raggiungere i suoi obiettivi.
Gli esempi includono come gestire e produrre dati di addestramento, quali funzionalità utilizzare, con quale frequenza riqualificare i modelli e cosa monitorare. La metodologia iterativa di questo libro utilizza casi di studio del mondo reale supportati da numerose fonti.
15 Progettazione di sistemi sicuri
Tecnologia, sicurezza fisica e processi umani sono tutti collegati nei sistemi moderni. Gli aggressori ne sono consapevoli e spesso sfruttano un difetto in un tipo di protezione per impossessarsi di un'attività altrimenti sicura.
Abbiamo bisogno di un modello unico e onnicomprensivo che possa essere applicato per spiegare ogni componente del sistema su un piano di parità al fine di rivelare questi difetti.
Dai lucchetti al phishing alla progettazione di software aziendali, Designing Secure Systems presenta un approccio teorico ai problemi alla base di tutti i tipi di sistemi e ha discusso di come i punti deboli in un'area di un sistema portino a vulnerabilità in altre aree, implementando i framework e gli standard utilizzati in il settore della sicurezza informatica.
La sicurezza dell'intero sistema, comprese le persone, le procedure e la tecnologia, sarà analizzata utilizzando un unico modello.
16 Analisi, progettazione e test del sistema
L'obiettivo è utilizzare un linguaggio semplice per aiutare gli studenti di livello A a comprendere i concetti di analisi del sistema, progettazione del sistema, test e MIS.
Il libro ha lo scopo di fornire ai lettori le conoscenze di cui hanno bisogno per comprendere l'analisi del sistema, gli aspetti di progettazione e la funzione di test nello sviluppo di software.
Una comprensione approfondita è fornita attraverso casi di studio oltre a una base teorica. Con l'aiuto di numerosi grafici in linguaggio semplice, vengono esplorati gli standard e le linee guida per la progettazione di moduli, progettazione di report, progettazione di GUI, ecc.
Vengono brevemente illustrati anche i vantaggi e gli svantaggi degli strumenti CASE. Esempi semplici ed efficaci dimostrano i più recenti standard di diagramma UML. Il libro discute sia l'analisi del software strutturata che quella orientata agli oggetti e le metodologie di progettazione.
Con l'aiuto di numerosi esempi e illustrazioni, le strategie di raccolta dei fatti, lo sviluppo di applicazioni congiunte (JAD), la reingegnerizzazione dei processi aziendali, le tecniche di diagrammi di flusso, i diagrammi di flusso dei dati, gli alberi decisionali, le tabelle decisionali, i grafici strutturati e i dizionari di dati sono spiegati in modo semplice Inglese.
Studenti, programmatori, ricercatori e sviluppatori di software che desiderano comprendere, analizzare e creare software dovrebbero leggere questo libro.
17 Modello di architettura software per sistemi serverless
Questo libro mostra come costruire ed eseguire sistemi anti-fragili e ti guida attraverso i componenti architetturali fondamentali che consentono il cambiamento, come eventi, servizi autonomi e micro frontend, che alimentano i sistemi software di livello aziendale.
Segmenterai un sistema e imposterai i parametri in modo che i team possano operare in modo indipendente e accelerare la velocità di invenzione. Insieme ai numerosi modelli di progettazione dei servizi autonomi, il libro copre anche eventi di basso livello e modelli di dati che supportano l'intera architettura.
Ti concentrerai sulle migliori pratiche per sicurezza, affidabilità, testabilità, osservabilità e prestazioni man mano che procedi.
Il libro raccoglie quindi tutto ciò che hai appreso descrivendo i processi di sperimentazione, distribuzione e consegna continue prima di darti alcuni ultimi suggerimenti su come iniziare ad andare avanti.
Alla conclusione di questo libro, sarai in grado di progettare i tuoi sistemi serverless basati su eventi che siano sufficientemente flessibili da produrre valore alla velocità richiesta dalla tua azienda.
18 Architetture cloud native
Il più grande progresso rivoluzionario nella tecnologia dell'informazione dai tempi della virtualizzazione è stato il cloud computing. Hai più flessibilità con i design cloud-native rispetto ai sistemi tradizionali.
Quando le organizzazioni scoprono che non possono migrare al cloud, devono aggiornare i propri modelli di sviluppo e le proprie architetture per trarne vantaggio.
La modernizzazione dell'organizzazione, la modernizzazione della distribuzione e i modelli architetturali nativi del cloud sono i tre elementi chiave che l'architettura nativa del cloud mostra durante la fornitura di architetture cloud native contemporanee.
Per descrivere e chiarire cos'è e cosa non è l'architettura cloud-native, questo libro inizia con una breve introduzione alle architetture cloud-native.
Acquisirai una comprensione di un framework di adozione del cloud e imparerai come creare architetture native del cloud utilizzando i concetti architetturali dei microservizi e dell'elaborazione serverless.
Successivamente verranno trattati i componenti principali della progettazione cloud-native, come scalabilità, riduzione dei costi, sicurezza e metodi per raggiungere l'eccellenza operativa. Scoprirai anche una varietà di progetti di cloud pubblico, da AWS e Azure a Google Cloud Platform, nei capitoli finali.
19 Introduzione alla progettazione di sistemi basati su microprocessori
Per gli studenti di ingegneria e informatica che seguono il primo semestre di progettazione di sistemi basati su microprocessori, questo libro è consigliato.
Inizia con un riassunto delle idee fondamentali, quindi guida il lettore attraverso la costruzione di un semplice esempio di microprocessore utilizzando un approccio metodico e graduale alla risoluzione dei problemi.
Viene quindi illustrata al lettore l'installazione e la programmazione di sistemi di microcomputer costruiti attorno a un secondo microprocessore. Una maggiore comprensione ed efficacia dell'apprendimento sono fornite dalle numerose istanze ed esercizi risolti.
Inoltre, molti sistemi basati su microprocessori che sono stati costruiti espressamente per scopi didattici sono completamente sviluppati, simulati e implementati su piattaforme basate su FPGA nella sezione finale del libro.
Gli autori di questo libro di testo hanno attinto al loro patrimonio di conoscenze creando risorse di apprendimento per corsi di laurea e laurea in ingegneria.
20 Intervista alla progettazione del sistema di cracking
È necessario avere conoscenze sulla progettazione del sistema se si desidera avanzare nel campo dell'ingegneria del software. Anche se hai appena iniziato con la programmazione, è una buona idea ottenere un vantaggio nella comprensione dell'architettura del sistema.
All'inizio della tua carriera, le tue capacità di programmazione determineranno principalmente le tue prestazioni. D'altra parte, le interviste di livello superiore spesso daranno più peso alla tua conoscenza e competenza con la progettazione di applicazioni.
Il fatto che i colloqui di progettazione del sistema siano più aperti e privi di un'unica risposta corretta li rende i più difficili da completare per gli ingegneri.
Con questo libro, l'autore spera di fornirvi una road map per navigare in questo tipo di interviste perché l'assenza di organizzazione potrebbe intimidire.
Conclusione
In conclusione, i 20 libri sopra elencati sono i migliori libri di progettazione di sistemi online. Fai attenzione a non lasciarti sopraffare da loro e acquistali tutti.
Scegli un libro che ti piace davvero e assicurati di leggerlo da copertina a copertina. È preferibile leggere con pazienza un libro piuttosto che sfogliarne rapidamente diversi.
Puoi aumentare le tue conoscenze con l'aiuto di questi libri e potresti persino riuscire a superare il colloquio di progettazione del sistema.
Lascia un Commento