Innholdsfortegnelse[Gjemme seg][Forestilling]
- 1. Utforming av dataintensiv applikasjon
- 2. Moderne systemdesign og analyse
- 3. Systemanalyse og design av Scott Tiley
- 4. Head First Design Pattern
- 5. Ren arkitektur
- 6. Systemanalyse og design av Dennis, Wixom og Roth
- 7. System Design Intervju av Alex Xu
- 8. Mønstre for Enterprise of Application Architecture
- 9. Bygge mikrotjenester
- 10. Praktisk systemdesign
- 11. Innebygd systemdesign
- 12. Systemdesignintervju: En komplett guide
- 13. Designe distribuert system
- 14. Designing av maskinlæringssystem
- 15. Designe sikre systemer
- 16. Systemanalyse, design og testing
- 17. Programvarearkitekturmønster for serverløse systemer
- 18. Cloud Native arkitekturer
- 19. Introduksjon til mikroprosessorbasert systemdesign
- 20. Cracking System Design Intervju
- konklusjonen
For studenter som sikter på tekniske plasseringer, er Systemdesign et viktig tema. Dagens arbeidsgivere søker etter studenter med gode problemløsningsevner og solid grunnleggende datavitenskap.
I mange FAANG-intervjuer har spørsmål om systemdesign blitt rutine. System design er en av nøkkelfaktorene som bestemmer ditt kandidatur i en teknologisk organisasjon.
Derfor blir det avgjørende at du har et godt grep om materialet og forstår det etter beste evne. Bøker er den mest pålitelige kilden til kunnskap.
Forfatteren ønsker å gjøre det enkelt for deg å bære rundt, en håndterlig pakke med alle livets læresetninger. Når du lærer systemdesign, er det ingen bedre måte å lære på enn å lese de viktigste bøkene skrevet av anerkjente forfattere.
20 spesielt utvalgte bøker om systemdesign er listet opp i dette innlegget.
De vil hjelpe deg med å forstå systemanalyse og designideer grundig, og vil øke din selvsikkerhet før et systemdesignintervju eller forbedre kunnskapen din om det.
1. Utforming av dataintensiv applikasjon
Datarelaterte vanskeligheter i systemdesign i dag inkluderer de som er relatert til skalerbarhet, konsistens, pålitelighet, effektivitet og vedlikeholdbarhet.
I tillegg kan det være utfordrende å velge det beste verktøyet for applikasjonen din blant de mange tilgjengelige (som batch-prosessorer, meldingsmeglere, etc.).
Hva betyr terminologien her?
Fordeler og ulemper med ulike teknologier for behandling og lagring av data er omtalt i denne boken av forfatter Martin Kleppmann.
Fra grunnleggende ideer og algoritmer til bruk i den virkelige verden og detaljene i ulike teknologier, gir boken en uttømmende gjennomgang av datalagringssystemer. Denne boken vil hjelpe nybegynnere med å akselerere læringsprosessene sine ved å inkludere erfaringene til erfarne systemarkitekter.
Forfatteren kombinerer teoretiske konsepter med virkelige applikasjoner i sitt arbeid. Alle som er interessert i store data, distribuerte systemer eller databaseinternts bør lese den.
Denne boken er så mye mer enn du kunne forutse. Nyere tilnærminger som mikrotjenester, reaktive arkitekturer, DevOps og strømbehandling kombinerer velprøvde metoder som tjenesteorienterte og hendelsesdrevne arkitekturer.
Mange av disse mønstrene er effektive når de brukes uavhengig, men som denne nyttige e-boken viser, når de kombineres, tilbyr de en mer omfattende og overbevisende strategi.
2. Moderne systemdesign og analyse
Tenk på at du vil ha en praktisk tilnærming til å studere konsepter, evner og metoder knyttet til systemanalyse og design. Den beste systemdesignboken for deg i den situasjonen er denne.
Denne boken er mer egnet for å utvikle et helt elevlæringssystem fordi den også har en del om smidige tilnærminger. Konseptene, evnene, tilnærmingene, strategiene, verktøyene og perspektivene som er nødvendige for at systemanalytikere skal lage informasjonssystemer, presenteres i Modern Systems Analysis and Design, som legger større vekt på det praktiske enn det teoretiske.
Studentene antas av forfatterne å ha deltatt på et introduksjonskurs i datasystemer og å ha noe tidligere erfaring med å skrive programmer i minst ett programmeringsspråk.
Forfatterne gir et konseptuelt og metodisk rammeverk mens de beveger seg logisk gjennom problemstillingene ved å referere til systemutviklingens livssyklus.
3. Systemanalyse og design av Scott Tiley
En av de viktigste lærebøkene for systemdesign som nå er tilgjengelig er allment anerkjent som denne boken av Scott Tiley om systemdesign. For å bygge bedre systemer har systemdesignere brukt og sammenligner tradisjonelle og banebrytende metoder.
Denne boken vil hjelpe deg å forstå hva som endret seg, hvorfor endringen måtte gjøres, og hvorfor den måtte gjøres i utgangspunktet.
I tillegg til å lære hvordan systemene fungerer, vil du også lære om cloud computing og mobile apps, blant annet ifølge forfatterne, som hevder at denne boken inneholder seksjoner om objektorientert koding og smidig metodikk, to av de mest brukte metodikkene i bedrifter i dag.
Boken er stappfull av oppgaver og øvelser som vil tvinge deg til å ta på deg tenkehettene og bruke nyervervet informasjon umiddelbart.
4. Head First Design Pattern
Du ønsker å lære av de som har gått før siden du misliker å starte fra bunnen av når det kommer til å lage programvare. For å lære av andres erfaringer som har stått overfor lignende systemdesignutfordringer som din egen, ser du til å designe mønstre.
Gjennom bruk av designmønstre kan du benytte deg av andres kunnskap slik at du kan konsentrere deg om vanskeligere eller hyggeligere oppgaver.
Denne boken, skrevet av Eric Freeman og Elisabeth Robson, lærer hva mønstre er og når, hvorfor og hvordan du kan bruke dem i dine egne kreasjoner. Den utforsker også de objektorienterte ideene som ligger til grunn for designene.
Dette er en morsom metode for å lære om og forbedre din forståelse av programvareutvikling. Du vil studere grunnleggende designideer og mønstre slik at du kan løse programvaredesignutfordringer og kommunisere på mønsterspråk med teamet ditt.
Det virker kanskje ikke "seriøst nok" med det første, men etter hvert som tiden går, fester ting seg i hjernen din, og du liker å oppdage mønstre. Denne boken forenkler og tydeliggjør effektivt mønstre.
5. Ren arkitektur
Robert er en dyktig forfatter som har skrevet en rekke bøker om smidig utvikling og ren kode.
Nå burde det være en selvfølge at etter å ha lest Robert C. Martins bøker, vil du kunne forbedre flyten av koden din og inkludere smidige teknikker i designløsningene dine i tillegg til å forstå systemdesignideer.
Ikke desto mindre fokuserer denne boken på det grunnleggende innen systemanalyse og design, så vel som de mange vanskelighetene som systemdesignere møter når de lager en virkelig løsning.
Også dekket i denne boken er testdrevne utviklingsteknikker og hvordan man kjører enhetstester for å øke systemets effektivitet. For systemdesignstudenter og alle som prøver å heve standarden på programvaren deres i disse dager, er denne boken den beste tilgjengelige.
Clean Architecture forklarer beslutningene du må ta og hvorfor de er avgjørende for din suksess, i stedet for bare å presentere deg for en rekke muligheter og si: "Bruk din beste dømmekraft."
6. Systemanalyse og design av Dennis, Wixom og Roth
Denne boken gir dyptgående forklaringer av prosjekter som kan brukes i virkelige situasjoner, noe som hjelper deg å få en bedre forståelse av systemanalyse og design. Boken inneholder også flere casestudier og eksempler, som alle er detaljert detaljert.
Denne boken vil hjelpe deg å forbedre nettverksdesignstudiene dine og få en solid forståelse av systemanalyse og designkonsepter.
Følgelig, avhengig av ditt perspektiv, kan denne boken kategoriseres som både en systemdesignbok for nybegynnere og en systemdesignbok for informatikkstudenter på mellom- og høyere nivå.
Kjørende forekomster og eksempler brukes til å illustrere nøkkelideer, som deretter støttes med dyptgående forklaringer og andre funksjoner som understreker viktige detaljer og legger vekt på handlingen "å gjøre" i tillegg til "læring".
Studentene får grunnleggende informasjon og evner som en profesjonell analytiker krever, samt et instinkt for tilnærming, verktøy og teknikker når de bruker sitt eget arbeid til faktiske situasjoner.
7. Systemdesignintervju av Alex Xu
Utviklere har ofte svarene på intervjuspørsmål om systemdesign fordi de er skremt av det store utvalget av potensielle valg. Men hvis det ikke er et entydig svar, hvordan kan du effektivt svare på det i et intervju?
Den beste boken på markedet for øyeblikket, denne anbefales for alle som forbereder seg på et systemdesignintervju. Boken inneholder mange illustrasjoner og grafikk som hjelper deg å forstå den faktiske metoden ved å fremstå som ekte spørreskjemaelementer.
I tillegg vil denne boken hjelpe deg med å forstå hva ansettelseslederne ønsker å se i løsningen din, slik at du enkelt kan klare den påfølgende systemdesigneksamenen din. Det vil gi deg mer selvsikkerhet gjennom dette viktige intervjuet.
Metoden for å nærme seg en systemdesignutfordring er beskrevet i detalj i denne boken. Den gir også flere eksempler fra den faktiske verden for å vise hvordan en metodisk tilnærming fungerer, sammen med klare instruksjoner du kan følge.
8. Mønstre for Enterprise of Application Architecture
Innføringen av flere nye muliggjørende teknologier har vært til nytte for profesjonen innen bedriftsapplikasjonsutvikling. Plattformer som muliggjør flerlags objektorientert utvikling, som Java og.NET, er allerede utbredt.
Selv om disse nye verktøyene og teknologiene kan brukes til å lage kraftige applikasjoner, er de vanskelige å implementere i praksis. Fordi utviklerne deres ikke forstår de arkitektoniske prinsippene som erfarne objektutviklere har lært, feiler bedriftsapper ofte med jevne mellomrom.
Bedriftsapplikasjonsutviklere står overfor flere vanskeligheter, noe som inspirerte forfatterne av Patterns of Enterprise Application Architecture til å skrive boken sin.
Forfatteren, en anerkjent objektorientert designer Martin Fowler, observerte at de samme grunnleggende designprinsippene kan modifiseres og brukes for å løse vanlige problemer uavhengig av endringer i teknologi, fra Smalltalk til CORBA til Java til .NET.
Martin dekonstruerer over førti gjentatte løsninger til mønstre ved hjelp av en kunnskapsrik gruppe frivillige. Sluttproduktet er en verdifull håndbok med rettelser som kan brukes med enhver bedriftsapplikasjonsplattform.
9. Bygge mikrotjenester
I løpet av de siste ti årene har distribuerte systemer utviklet seg fra store, kodeintensive monolittiske apper til mer kompakte, uavhengige mikrotjenester. Å lage disse systemene har imidlertid sine egne utfordringer.
Denne boken presenterer en omfattende tilnærming til problemene som systemarkitekter og administratorer må ta hensyn til når de oppretter, administrerer og oppgraderer mikrotjenestearkitekturer, med mange eksempler og nyttig veiledning.
Teknologier for mikrotjenester utvikler seg raskt. Mens du fordyper deg i de nyeste tilnærmingene for å designe, integrere, teste, distribuere og overvåke dine egne autonome tjenester, gir forfatteren Sam Newman deg et solid grunnlag i prinsippene.
Gjennom hele boken vil du følge et hypotetisk selskap for å se hvordan det å lage en mikrotjenestearkitektur påvirker et bestemt domene.
10. Praktisk systemdesign
Denne bokens konsentrasjon er på skalering av programvareapplikasjoner, og den tar leseren med på en dybdereise. Etter å ha lest denne artikkelen, vil du ha en bedre forståelse av hvordan du bygger en skalerbar applikasjon på bedriftsnivå.
Boken går gjennom systemdesignkonsepter, datanettverk, hovednettverksprotokoller, skalerbare datatilgangsmekanismer og alternative arkitektoniske stiler for å bygge systemet.
En detaljert undersøkelse av en rekke teknologier og deres implementering er utført, inkludert Cache Memory, CDN, Last balancere, og meldingskøer.
Boken forklarer også hvordan man konstruerer en skalerbar løsning på bedriftsnivå ved hjelp av ulike teknologikombinasjoner. Din beslutning om den optimale banen for systemarkitektur blir hjulpet av din analyse av flere arkitektoniske design.
Boken undersøker også designmønstre og Objektorientert programmering teknikker som hjelper deg med å skrive klar, vedlikeholdbar kode. Ved å bruke flere virkelige eksempler på systemdesign, vil leseren få en intuitiv forståelse av ulike verktøy og metoder for å produsere et skalerbart system.
11. Innebygd systemdesign
Å gi en grundig introduksjon til de grunnleggende konseptene i innebygde systemer, med applikasjoner i cyberfysiske systemer og tingenes internett, er en spesiell egenskap ved denne læreboken med åpen tilgang.
En studie av spesifikasjonsmodeller og språk for innebygde og cyberfysiske systemer går foran en introduksjon til området.
Den forklarer det grunnleggende om systemprogramvare for innebygde systemer, inkludert sanntidsoperativsystemer, og gir en grunnleggende introduksjon til maskinvarekomponentene som brukes i slike systemer.
I tillegg presenterer forfatteren en oversikt over metoder for å kartlegge programmer til utførelsesplattformer, inkludert flerkjerneplattformer, og snakker om evaluerings- og valideringstilnærminger for innebygde systemer.
Fordi innebygde systemer må fungere under strenge parametere, inneholder boken også en håndplukket samling av optimaliseringstilnærminger, for eksempel programvareoptimaliseringsteknikker. I bokens konklusjon omtales testing kort.
12. Systemdesignintervju: En komplett veiledning
En av de mest forhatte og utfordrende delene av tekniske jobbintervjuer er systemdesignintervjuet. Usikkerhetene er skremmende.
Men hvis du nøye undersøker analysene og prosedyrene som er beskrevet i dette magasinet, vil du kunne overvinne alle hindringer du møter mens du bruker datatekniske teknikker for evalueringer.
Du vil oppdage de mange intervjumetodene for ingeniører. Du vil ha en fullstendig forståelse av trinnene som er nødvendige for å bruke dataintensive apper etter å ha lest denne veiledningen.
Etter å ha lest den, enten du er en praktiker eller en ikke-backend-ingeniør, vil du lære mye om hvordan du implementerer datasystemer på tvers av nettverk, inkludert RDBMS, NoSQL, IMS og andre.
13. Utforming av distribuert system
Store selskaper jobber hardt med å implementere ny teknologi for å utvikle nye varer, prosedyrer og forretningsmodeller i kampen for å konkurrere i dagens raskt bevegelige markeder.
Å legge for mye vekt på teknologi og ikke nok på den typen prosesser som teknologien tillater, er imidlertid en barriere for digital transformasjon.
Hva om ulike bedriftssektorer fikk lov til å lage sine egne tjenester og apper, og beslutningstaking ble desentralisert i stedet for sentralisert? For å gjøre det mulig for ulike næringssektorer å svare på data i sanntid, undersøker denne forskningen ideen om en digital forretningsplattform.
I et digitalt selskap vil mye innovasjon i økende grad finne sted på kanten, enten det inkluderer IoT-enheter eller forretningsbrukere (fra markedsførere til dataforskere).
Din kjerne IT-medarbeider kan gi disse bransjene de digitale ressursene de trenger for å utvikle seg raskt for å strømlinjeforme prosessen. Denne boken undersøker: Viktige organisatoriske og kulturelle endringer er nødvendige for å etablere forretningsevner gjennom tverrfunksjonelle produktteam. et system for å koble sammen programmer, databaser, klienter, partnere, sosiale nettverk, og Internet of Things-enheter.
For det formål å utvikle banebrytende tjenester i innstillinger med lav kode eller ingen kode, er intern API-programmering Application Platform as a Service, Integration Platform as a Service og Integration Software as a Service noen eksempler på verktøy.
14. Designing av maskinlæringssystem
Systemer for maskinlæring er både intrikate og spesielle. De er komplekse fordi de har et bredt spekter av bestanddeler og interessenter.
Fordi de er avhengige av data, som varierer mye fra en brukssak til den neste, er de spesielle.
Du vil oppdage en omfattende metode for å lage ML-systemer som er pålitelige, skalerbare, vedlikeholdbare og tilpasningsdyktige til skiftende omgivelser og forretningskrav i denne boken.
Forfatteren Chip Huyen, medgründeren av Claypot AI, tar hensyn til hvordan hvert designvalg kan hjelpe systemet ditt som helhet til å nå sine mål.
Eksempler inkluderer hvordan man håndterer og produserer treningsdata, hvilke funksjoner man skal bruke, hvor ofte man skal omskolere modeller og hva man skal overvåke. Denne bokens iterative metodikk benytter kasusstudier fra den virkelige verden som er støttet av et vell av kilder.
15. Design av sikre systemer
Teknologi, fysisk sikkerhet og menneskelige prosesser henger sammen i moderne systemer. Angripere er klar over dette og utnytter ofte en feil i én type beskyttelse for å overta en ellers sikker aktivitet.
Vi krever en enkelt, altomfattende modell som kan brukes til å forklare hver komponent i systemet på lik linje for å avsløre disse feilene.
Fra hengelåser til phishing til bedriftens programvaredesign presenterer Designing Secure Systems en teoribasert tilnærming til problemstillinger som ligger til grunn for alle typer systemer, og diskuterte hvordan svakheter i ett område av et system fører til sårbarheter i andre områder mens rammeverket og standardene som brukes i cybersikkerhetsindustrien.
Sikkerheten til hele systemet, inkludert dets folk, prosedyrer og teknologi, vil bli analysert ved hjelp av en enkelt modell.
16. Systemanalyse, design og testing
Målet er å bruke enkelt språk for å hjelpe A-Level-studenter med å forstå konseptene systemanalyse, systemdesign, testing og MIS.
Boken er ment å gi leserne kunnskapen de trenger for å forstå systemanalyse, designaspekter og funksjonen til testing i programvareutvikling.
Dybdeforståelse gis gjennom casestudier i tillegg til et teoretisk grunnlag. Ved hjelp av tallrike grafikk i enkelt språk utforskes standarder og retningslinjer for skjemadesign, rapportdesign, GUI-design, etc..
Fordelene og ulempene med CASE-verktøy er også kort dekket. Enkle og effektive eksempler viser de nyeste UML-diagramstandardene. Boken diskuterer både strukturert og objektorientert programvareanalyse og designmetodikk.
Ved hjelp av en rekke eksempler og illustrasjoner blir faktainnsamlingsstrategier, felles applikasjonsutvikling (JAD), omstrukturering av forretningsprosesser, flytskjemateknikker, dataflytdiagrammer, beslutningstre, beslutningstabeller, strukturerte diagrammer og dataordbøker forklart på en enkel måte. Engelsk.
Studenter, programmerere, forskere og programvareutviklere som ønsker å forstå, analysere og bygge programvare bør lese denne boken.
17. Programvarearkitekturmønster for serverløse systemer
Denne boken demonstrerer hvordan du konstruerer og kjører anti-skjøre systemer og leder deg gjennom de grunnleggende arkitektoniske komponentene som tillater endringer, for eksempel hendelser, autonome tjenester og mikro-frontends, som driver enterprise-grade programvaresystemer.
Du vil segmentere et system og angi parametere slik at team kan operere uavhengig og øke hastigheten på oppfinnelsen. Sammen med de mange autonome tjenestedesignmønstrene, dekker boken også hendelser på lavt nivå og datamønstre som støtter hele arkitekturen.
Du vil konsentrere deg om beste praksis for sikkerhet, pålitelighet, testbarhet, observerbarhet og ytelse mens du går.
Boken samler deretter alt du har lært ved å beskrive prosessene med kontinuerlig eksperimentering, distribusjon og levering før du gir deg noen siste tips om hvordan du kan komme videre.
Ved avslutningen av denne boken vil du være i stand til å designe dine egne hendelsesdrevne, serverløse systemer som er fleksible nok til å produsere verdi med den hastigheten bedriften din krever.
18. Cloud Native arkitekturer
Det største banebrytende fremskrittet innen informasjonsteknologi siden virtualisering har vært cloud computing. Du har mer fleksibilitet med skybaserte design sammenlignet med tradisjonelle systemer.
Når organisasjoner oppdager at de ikke kan migrere til skyen, må de oppdatere sine utviklingsmodeller og arkitekturer for å utnytte dette.
Organisasjonsmodernisering, distribusjonsmodernisering og skybaserte arkitekturmønstre er de tre nøkkelelementene som Cloud-Native-arkitektur viser når den leverer moderne skybaserte arkitekturer.
For å beskrive og tydeliggjøre hva skybasert arkitektur er og ikke er, begynner denne boken med en kort introduksjon til skybasert arkitektur.
Du vil få en forståelse av et skyadopsjonsrammeverk og lære hvordan du lager skybaserte arkitekturer ved å bruke de arkitektoniske konseptene til mikrotjenester og serverløs databehandling.
Deretter vil hovedkomponentene i skybasert design, som skalerbarhet, kostnadsreduksjon, sikkerhet og metoder for å oppnå operasjonell fortreffelighet, bli dekket. Du vil også oppdage en rekke offentlige skydesigner, fra AWS og Azure til Google Cloud Platform, i de siste kapitlene.
19. Introduksjon til mikroprosessorbasert systemdesign
For ingeniør- og informatikkstudenter som følger sitt første semester med mikroprosessorbasert systemdesign, anbefales denne boken.
Den starter med en oppsummering av de grunnleggende ideene, og tar deretter leseren gjennom byggingen av et enkelt mikroprosessoreksempel ved å bruke en metodisk, steg-for-steg-tilnærming til problemløsning.
Installasjonen og programmeringen av mikrodatasystemer bygget rundt en andre mikroprosessor blir deretter demonstrert for leseren. Større forståelse og læringseffektivitet er gitt av de mange løste tilfellene og øvelsene.
I tillegg er mange mikroprosessorbaserte systemer som er bygget eksplisitt for instruksjonsformål, grundig utviklet, simulert og implementert på FPGA-baserte plattformer i bokens siste del.
Forfatterne av denne læreboken trakk på sitt vell av kunnskap mens de skapte læringsressurser for lavere og høyere ingeniørkurs.
20. Cracking System Design Intervju
Du må ha kunnskap om systemdesign hvis du ønsker å avansere innen programvareteknikk. Selv om du nettopp har startet med koding, er det en god idé å få et forsprang på å forstå systemarkitektur.
Tidlig i karrieren din vil dine kodingsevner først og fremst avgjøre hvor godt du presterer. På den andre siden vil intervjuer på høyere nivå ofte gi større vekt på din kunnskap om og ekspertise med applikasjonsdesign.
Det faktum at systemdesignintervjuer er mer åpne og mangler ett enkelt riktig svar, gjør dem til de mest utfordrende for ingeniører å gjennomføre.
Med denne boken håper forfatteren å gi deg et veikart for å navigere i slike intervjuer fordi fraværet av organisering kan være skremmende.
konklusjonen
Avslutningsvis er de 20 bøkene som er oppført ovenfor de beste systemdesignbøkene på nettet. Vær forsiktig så du ikke blir overveldet av dem og kjøp dem alle.
Velg en bok du virkelig liker, og sørg for at du leser den fra perm til perm. Det er å foretrekke å tålmodig lese én bok enn å raskt skumme gjennom flere av dem.
Du kan øke kunnskapen din ved hjelp av disse bøkene, og du kan til og med lykkes med å bestå systemdesignintervjuet.
Legg igjen en kommentar