Съдържание[Крия][Покажи]
- 1. Проектиране на приложение с интензивно използване на данни
- 2. Модерен системен дизайн и анализ
- 3. Системен анализ и дизайн от Скот Тайли
- 4. Шаблон за проектиране на главата
- 5. Чиста архитектура
- 6. Системен анализ и дизайн от Dennis, Wixom и Roth
- 7. Интервю за дизайна на системата от Alex Xu
- 8. Модели на корпоративната архитектура на приложенията
- 9. Изграждане на микроуслуги
- 10. Практически системен дизайн
- 11. Проектиране на вградена система
- 12. Интервю за системен дизайн: Пълно ръководство
- 13. Проектиране на разпределена система
- 14. Проектиране на система за машинно обучение
- 15. Проектиране на системи за сигурност
- 16. Системен анализ, проектиране и тестване
- 17. Модел на софтуерна архитектура за системи без сървър
- 18. Облачни собствени архитектури
- 19. Въведение в дизайна на микропроцесорна система
- 20. Интервю за проектиране на система за кракване
- Заключение
За студенти, които се стремят към технически позиции, Системният дизайн е основна тема. Днешните работодатели търсят студенти с големи способности за решаване на проблеми и солидни основи на компютърните науки.
В много интервюта на FAANG въпросите за дизайна на системата са станали рутинни. Дизайн на системата е един от ключовите фактори, които определят вашата кандидатура в технологична организация.
Ето защо става изключително важно да хванете здраво материала и да го разберете по най-добрия възможен начин. Книгите са най-надеждният източник на знания.
Авторът иска да ви направи лесен за носене, управляем пакет от всичките ви житейски учения. Когато изучавате системния дизайн, няма по-добър начин да научите от четенето на най-важните книги, написани от известни автори.
В тази публикация са изброени 20 специално избрани книги за системен дизайн.
Те ще ви помогнат да разберете задълбочено системния анализ и идеите за проектиране и ще повишат самочувствието ви преди интервю за проектиране на система или ще подобрят знанията ви за нея.
1. Проектиране на приложение с интензивно използване на данни
Свързаните с данните трудности при проектирането на системата днес включват тези, свързани с мащабируемостта, последователността, надеждността, ефективността и поддръжката.
Освен това може да е предизвикателство да изберете най-добрия инструмент за вашето приложение сред многобройните налични (като пакетни процесори, брокери на съобщения и т.н.).
Какво означава терминологията тук?
Предимствата и недостатъците на различните технологии за обработка и съхранение на данни са разгледани в тази книга от автора Мартин Клепман.
От основни идеи и алгоритми до употреби в реалния свят и подробности за различни технологии, книгата дава изчерпателен преглед на системите за съхранение на данни. Тази книга ще помогне на начинаещите да ускорят процеса на обучение, като включи опита на опитни системни архитекти.
Авторът умело съчетава теоретични концепции с реални приложения в работата си. Всеки, който се интересува от големи данни, разпределени системи или вътрешни бази данни, трябва да го прочете.
Тази книга е много повече, отколкото бихте могли да очаквате. По-новите подходи като микроуслуги, реактивни архитектури, DevOps и обработка на потоци съчетават изпитани методи като ориентирани към услуги и управлявани от събития архитектури.
Много от тези модели са ефективни, когато се използват самостоятелно, но както показва тази полезна електронна книга, когато се комбинират, те предлагат по-всеобхватна и убедителна стратегия.
2. Модерен системен дизайн и анализ
Помислете, че искате практически подход към изучаването на концепциите, способностите и методите, свързани с системен анализ и проектиране. Най-добрата книга за системен дизайн за вас в тази ситуация е тази.
Тази книга е по-подходяща за разработване на цялостна система за обучение на студенти, защото има и раздел за гъвкави подходи. Концепциите, способностите, подходите, стратегиите, инструментите и перспективите, необходими на системните анализатори за създаване на информационни системи, са представени в съвременния системен анализ и дизайн, който поставя по-голям акцент върху практиката, отколкото върху теорията.
Авторите предполагат, че студентите са посещавали въвеждащ курс по компютърни системи и имат известен предишен опит в писането на програми в поне една програмен език.
Авторите дават концептуална и методическа рамка, като същевременно логично преминават през проблемите, като се позовават на жизнения цикъл на разработката на системите.
3. Системен анализ и дизайн от Скот Тайли
Един от най-важните учебници по системен дизайн, достъпен сега, е широко признат като тази книга на Скот Тайли за системен дизайн. За да изградят по-добри системи, системните дизайнери са използвали и сравняват традиционни и най-модерни методи.
Тази книга ще ви помогне да разберете какво се е променило, защо е трябвало да бъде направена промяната и защо е трябвало да бъде направена на първо място.
Освен че ще научите как работят системите, ще научите и за облачните изчисления и мобилни приложения, между другото, според авторите, които твърдят, че тази книга съдържа раздели за обектно-ориентирано кодиране и гъвкава методология, две от най-често използваните методологии в бизнеса днес.
Книгата е претъпкана със задачи и упражнения, които ще ви накарат да се замислите и веднага да използвате новопридобитата информация.
4. Модел на дизайна Head First
Искате да се учите от онези, които са минали преди, тъй като не обичате да започвате от нулата, когато става въпрос за създаване на софтуер. За да се поучите от опита на други хора, които са се сблъскали с подобни предизвикателства на системния дизайн като вашия собствен, вие търсите шаблони за проектиране.
Чрез използването на шаблони за проектиране можете да използвате знанията на другите, за да можете да се концентрирате върху по-трудни или приятни задачи.
Тази книга, написана от Ерик Фрийман и Елизабет Робсън, учи какво представляват моделите и кога, защо и как да ги използвате в собствените си творения. Той също така изследва обектно-ориентираните идеи, които са в основата на дизайна.
Това е забавен метод да научите и да подобрите разбирането си за разработването на софтуер. Ще изучавате фундаментални дизайнерски идеи и модели, така че да можете да решавате предизвикателства при дизайна на софтуера и да общувате на езика на шаблоните с вашия екип.
В началото може да не изглежда „достатъчно сериозно“, но с течение на времето нещата се забиват в мозъка ви и ви харесва да откривате модели. Тази книга ефективно опростява и изяснява моделите.
5. Чиста архитектура
Робърт е завършен автор, който е автор на редица книги за гъвкаво развитие и чист код.
От само себе си трябва да се разбира, че след като прочетете книгите на Robert C. Martin, ще можете да подобрите потока на вашия код и да включите гъвкави техники във вашите дизайнерски решения в допълнение към разбирането на идеите за системен дизайн.
Независимо от това, тази книга се фокусира върху основите на системния анализ и дизайн, както и върху многобройните трудности, пред които са изправени дизайнерите на системи, докато създават решение в реалния свят.
В тази книга са обхванати и техники за разработка, управлявани от тестове, и как да се изпълняват модулни тестове за повишаване на ефективността на системата. За студентите по системен дизайн и всеки, който се опитва да повиши стандарта на своя софтуер в наши дни, тази книга е най-добрата достъпна.
Clean Architecture обяснява решенията, които трябва да вземете и защо те са от съществено значение за вашия успех, вместо просто да ви представя разнообразие от възможности и да казва: „Използвайте най-добрата си преценка“.
6. Системен анализ и дизайн от Dennis, Wixom и Roth
Тази книга предоставя задълбочени обяснения на проекти, които са приложими в ситуации от реалния живот, което ви помага да разберете по-добре системния анализ и дизайн. Книгата също така включва няколко казуси и примери, всички от които са описани много подробно.
Тази книга ще ви помогне да подобрите вашите изследвания на мрежовия дизайн и да получите твърдо разбиране на системния анализ и концепциите за проектиране.
Съответно, в зависимост от вашата гледна точка, тази книга може да бъде категоризирана както като книга за системен дизайн за начинаещи, така и като книга за системен дизайн за студенти от средно и високо ниво на компютърни науки.
Изпълняваните екземпляри и примери се използват за илюстриране на ключови идеи, които след това се подкрепят със задълбочени обяснения и други характеристики, които подчертават важни детайли и поставят акцент върху акта на „правене“ в допълнение към „ученето“.
Студентите придобиват основната информация и способности, които професионалният анализатор изисква, както и инстинкт за подход, инструменти и техники, докато прилагат собствената си работа към реални ситуации.
7. Интервю за системен дизайн от Alex Xu
Разработчиците често имат отговорите на въпроси за интервю относно дизайна на системата защото са уплашени от огромния набор от потенциални избори. Но ако няма ясен отговор, как можете ефективно да отговорите на него в интервю?
Най-добрата книга в момента на пазара, тази се препоръчва за всеки, който се подготвя за интервю за системен дизайн. Книгата включва много илюстрации и графики, които ви помагат да разберете действителния метод, като изглеждат като истински елементи от въпросника.
В допълнение, тази книга ще ви помогне да разберете какво искат да видят мениджърите по наемане на работа във вашето решение, което ще ви позволи да издържите с лекота последващия си изпит по проектиране на система. Това ще ви даде повече самоувереност по време на това решаващо интервю.
Методът за подход към предизвикателството при проектиране на система е изложен подробно в тази книга. Той също така предоставя няколко примера от действителния свят, за да покаже как работи един методичен подход, заедно с ясни инструкции, които можете да следвате.
8. Модели на корпоративната архитектура на приложенията
Въвеждането на няколко нови позволяващи технологии е от полза за професията на разработване на корпоративни приложения. Платформи, позволяващи многослойна обектно-ориентирана разработка, като Java и .NET, вече са широко разпространени.
Въпреки че тези нови инструменти и технологии могат да се използват за създаване на мощни приложения, те са трудни за прилагане на практика. Тъй като техните разработчици не разбират архитектурните принципи, които опитните разработчици на обекти са научили, бизнес приложенията често се провалят редовно.
Разработчиците на корпоративни приложения се сблъскват с няколко трудности, които вдъхновяват авторите на Patterns of Enterprise Application Architecture да напишат своята книга.
Авторът, известен обектно-ориентиран дизайнер Мартин Фаулър, отбеляза, че същите фундаментални принципи на проектиране могат да бъдат модифицирани и приложени за справяне с общи проблеми, независимо от промените в технологията, от Smalltalk до CORBA до Java до .NET.
Мартин деконструира над четиридесет повтарящи се решения в модели с помощта на опитна група доброволци. Крайният продукт е ценно ръководство за корекции, което може да се използва с всяка корпоративна платформа за приложения.
9. Изграждане на микроуслуги
През последните десет години разпределените системи се развиха от големи монолитни приложения с интензивно кодиране до по-компактни, независими микроуслуги. Създаването на тези системи обаче има свой набор от предизвикателства.
Тази книга представя цялостен подход към проблемите, които системните архитекти и администратори трябва да вземат предвид, докато създават, администрират и надграждат архитектури на микросервизи, с много примери и полезни насоки.
Технологиите за микроуслуги се развиват бързо. Докато се задълбочава в най-новите подходи за проектиране, интегриране, тестване, внедряване и наблюдение на вашите собствени автономни услуги, авторът Сам Нюман ви дава солидна основа в принципите.
В цялата книга ще следвате хипотетична корпорация, за да видите как създаването на архитектура на микроуслуга влияе на определен домейн.
10. Практически системен дизайн
Концентрацията на тази книга е върху мащабиране на софтуерни приложения и отвежда читателя на задълбочено пътуване. След като прочетете тази статия, ще разберете по-добре как да създадете мащабируемо приложение на корпоративно ниво.
Книгата разглежда концепции за системен дизайн, компютърни мрежи, основни мрежови протоколи, мащабируеми механизми за достъп до данни и алтернативни архитектурни стилове за изграждане на системата.
Извършва се подробно проучване на множество технологии и тяхното внедряване, включително кеш памет, CDN, Зареждане на балансиращи устройстваи опашки за съобщения.
Книгата също така обяснява как да се създаде мащабируемо решение на корпоративно ниво, като се използват различни технологични комбинации. Вашето решение за оптималния път за системна архитектура е подпомогнато от вашия анализ на няколко архитектурни дизайна.
Книгата също така разглежда моделите на проектиране и обектно-ориентирано програмиране техники, които помагат при писането на ясен, поддържаем код. Чрез използването на множество примери за проектиране на системи от реалния свят, читателят ще получи интуитивно разбиране на различни инструменти и методи за създаване на мащабируема система.
11. Дизайн на вградената система
Осигуряването на задълбочено въведение в основните концепции във вградените системи, с приложения в киберфизическите системи и Интернет на нещата, е специална характеристика на този учебник с отворен достъп.
Проучване на спецификационни модели и езици за вградени и киберфизични системи предхожда въведение в областта.
Той обяснява основите на системния софтуер за вградени системи, включително операционни системи в реално време, и дава основно въведение в хардуерните компоненти, използвани в такива системи.
В допълнение, авторът представя преглед на методите за картографиране на програми към платформи за изпълнение, включително многоядрени платформи, и говори за подходи за оценка и валидиране за вградени системи.
Тъй като вградените системи трябва да работят при строги параметри, книгата включва и ръчно подбрана колекция от подходи за оптимизация, като например техники за оптимизация на софтуер. В заключението на книгата тестването е разгледано накратко.
12. Интервю за системен дизайн: Пълно ръководство
Една от най-мразените и предизвикателни части от интервютата за техническа работа е интервюто за проектиране на система. Несигурностите са плашещи.
Но ако внимателно разгледате анализите и процедурите, описани подробно в това списание, ще можете да преодолеете всички пречки, които срещате, докато използвате техники за инженеринг на данни за оценки.
Ще откриете многото методи за интервюиране на инженери. Ще имате пълно разбиране на стъпките, необходими за използване на приложения с интензивно използване на данни, след като прочетете това ръководство.
След като го прочетете, независимо дали сте практик или не-backend инженер, ще научите много за това как да внедрявате системи за данни в мрежи, включително RDBMS, NoSQL, IMS и други.
13. Проектиране на разпределена система
Големите корпорации работят усилено, внедрявайки нови технологии за разработване на нови стоки, процедури и бизнес модели в борбата да се конкурират на днешните бързо развиващи се пазари.
Поставянето на твърде голям акцент върху технологиите и недостатъчно върху видовете процеси, които технологията позволява, обаче е една от пречките пред цифровата трансформация.
Какво ще стане, ако на различни корпоративни сектори беше позволено да създават свои собствени услуги и приложения и вземането на решения беше децентрализирано, а не централизирано? За да се даде възможност на различни бизнес сектори да реагират на данни в реално време, това изследване проучва идеята за цифрова бизнес платформа.
В една дигитална корпорация много иновации все повече ще се случват на ръба, независимо дали включват IoT устройства или бизнес потребители (от търговци до специалисти по данни).
Вашият основен ИТ персонал може да даде на тези индустрии дигиталните ресурси, от които се нуждаят, за да се развиват бързо, за да рационализират процеса. Тази книга изследва: Необходими са важни организационни и културни промени, за да се установят бизнес възможности чрез многофункционални продуктови екипи. система за свързване на програми, бази данни, клиенти, партньори, социалните мрежии устройства за интернет на нещата.
За целите на разработването на авангардни услуги в настройки с нисък код или без код, вътрешно API програмиране Платформа за приложения като услуга, Платформа за интеграция като услуга и Софтуер за интеграция като услуга са някои примери за инструменти.
14. Проектиране на система за машинно обучение
Системите за машинно обучение са едновременно сложни и специални. Те са сложни, защото имат широк набор от съставни части и заинтересовани страни.
Тъй като зависят от данни, които варират значително от един случай на употреба, те са специални.
В тази книга ще откриете цялостен метод за създаване на ML системи, които са надеждни, мащабируеми, поддържаеми и адаптивни към променящата се среда и бизнес изисквания.
Авторът Chip Huyen, съоснователят на Claypot AI, взема предвид как всеки избор на дизайн може да помогне на вашата система като цяло да постигне целите си.
Примерите включват как да обработвате и произвеждате данни за обучение, кои функции да използвате, колко често да преквалифицирате моделите и какво да наблюдавате. Итеративната методология на тази книга използва казуси от реалния свят, които са подкрепени от множество източници.
15. Проектиране на системи за сигурност
Технологиите, физическата сигурност и човешките процеси са свързани в съвременните системи. Нападателите са наясно с това и често се възползват от пропуск в един тип защита, за да поемат иначе сигурна дейност.
Нуждаем се от единен, всеобхватен модел, който може да се приложи, за да обясни всеки компонент на системата на равна основа, за да разкрие тези недостатъци.
От катинари до фишинг до корпоративен софтуерен дизайн, Designing Secure Systems представя базиран на теория подход към проблемите, залегнали в основата на всички видове системи, и обсъжда как слабостите в една област на системата водят до уязвимости в други области, като същевременно прилага рамки и стандарти, използвани в индустрията за киберсигурност.
Сигурността на цялата система, включително нейните хора, процедури и технологии, ще бъдат анализирани с помощта на един модел.
16. Системен анализ, проектиране и тестване
Целта е да се използва прост език, за да се помогне на учениците от A-Level да разберат концепциите за системен анализ, системен дизайн, тестване и MIS.
Книгата има за цел да даде на читателите знанията, от които се нуждаят, за да разберат системния анализ, аспектите на дизайна и функцията на тестването в разработката на софтуер.
Задълбочено разбиране се осигурява чрез казуси в допълнение към теоретична основа. С помощта на многобройни графики на прост език се изследват стандарти и насоки за дизайн на формуляри, дизайн на отчети, дизайн на GUI и др.
Предимствата и недостатъците на CASE инструментите също са разгледани накратко. Прости и ефективни примери демонстрират най-новите стандарти за UML диаграми. Книгата обсъжда както структурирания, така и обектно-ориентирания софтуерен анализ и методологии за проектиране.
С помощта на многобройни примери и илюстрации стратегиите за събиране на факти, съвместното разработване на приложения (JAD), реинженеринг на бизнес процеси, техники за диаграми на потока, диаграми на потока от данни, дървета на решения, таблици на решения, структурирани диаграми и речници на данни са обяснени на прост Английски.
Студенти, програмисти, изследователи и разработчици на софтуер, които искат да разберат, анализират и създават софтуер, трябва да прочетат тази книга.
17. Модел на софтуерна архитектура за системи без сървър
Тази книга демонстрира как да конструирате и управлявате анти-чупливи системи и ви превежда през основните архитектурни компоненти, които позволяват промяна, като събития, автономни услуги и микро интерфейси, които захранват софтуерни системи от корпоративен клас.
Ще сегментирате система и ще зададете параметри, така че екипите да могат да работят независимо и да ускорят скоростта на изобретяването. Заедно с много модели за проектиране на автономни услуги, книгата също така обхваща събития от ниско ниво и модели на данни, които поддържат цялата архитектура.
Ще се концентрирате върху най-добрите практики за сигурност, надеждност, възможност за тестване, наблюдение и производителност, докато вървите.
След това книгата обединява всичко, което сте научили, като описва процесите на непрекъснато експериментиране, внедряване и доставка, преди да ви даде няколко последни съвета как да започнете да се движите напред.
До края на тази книга вие ще можете да проектирате свои собствени управлявани от събития системи без сървър, които са достатъчно гъвкави, за да произвеждат стойност със скоростта, която вашата компания изисква.
18. Облачни собствени архитектури
Най-големият новаторски напредък в информационните технологии след виртуализацията беше изчислителни облаци. Имате по-голяма гъвкавост с облачни дизайни в сравнение с традиционните системи.
Когато организациите открият, че не могат да мигрират към облака, те трябва да актуализират своите модели за разработка и архитектури, за да се възползват от това.
Организационната модернизация, модернизацията на разгръщането и облачните архитектурни модели са трите ключови елемента, които Cloud-Native архитектурата показва, когато доставя съвременни облачни архитектури.
За да се опише и изясни какво е и какво не е облачната архитектура, тази книга започва с кратко въведение в облачните архитектури.
Ще разберете рамката за възприемане на облака и ще научите как да създавате облачни архитектури, използвайки архитектурните концепции на микроуслуги и изчисления без сървър.
След това ще бъдат обхванати основните компоненти на дизайна, базиран на облак, като мащабируемост, намаляване на разходите, сигурност и методи за постигане на оперативни съвършенства. В последните глави ще откриете и разнообразие от публични облачни дизайни, от AWS и Azure до Google Cloud Platform.
19. Въведение в дизайна на микропроцесорна система
Тази книга се препоръчва за студенти по инженерство и компютърни науки, които следват своя първи семестър по проектиране на базирана на микропроцесор система.
Започва с обобщение на основните идеи, след което превежда читателя през изграждането на ясен пример за микропроцесор, използвайки методичен, стъпка по стъпка подход за решаване на проблеми.
След това на читателя се демонстрира инсталирането и програмирането на микрокомпютърни системи, изградени около втори микропроцесор. По-голямо разбиране и ефективност на обучението се осигуряват от множеството решени примери и упражнения.
В допълнение, много системи, базирани на микропроцесори, които са създадени специално за учебни цели, са старателно разработени, симулирани и внедрени на платформи, базирани на FPGA, в последния раздел на книгата.
Авторите на този учебник черпят от своите богатства от знания, докато създават учебни ресурси за бакалавърски и магистърски инженерни курсове.
20. Интервю за проектиране на крекинг система
Трябва да имате познания за системния дизайн, ако искате да напреднете в областта на софтуерното инженерство. Дори ако току-що започвате с кодирането, добра идея е да започнете с преднина в разбирането на системната архитектура.
В началото на кариерата ви вашите способности за кодиране ще определят основно колко добре се представяте. От друга страна, интервютата на по-високо ниво често ще придадат по-голяма тежест на вашите познания и опит в дизайна на приложения.
Фактът, че интервютата за системен дизайн са по-отворени и им липсва един правилен отговор, ги прави най-предизвикателните за инженерите.
С тази книга авторът се надява да ви предостави пътна карта за навигиране в този вид интервюта, защото липсата на организация може да бъде смущаваща.
Заключение
В заключение, 20-те книги, изброени по-горе, са най-добрите онлайн книги за системен дизайн. Внимавайте да не бъдете претоварени от тях и да ги купите всички.
Изберете книга, която наистина ви харесва, и се уверете, че сте я прочели от кора до кора. За предпочитане е търпеливо да прочетете една книга, отколкото бързо да прегледате няколко от тях.
Можете да увеличите знанията си с помощта на тези книги и дори да успеете да преминете интервюто за проектиране на система.
Оставете коментар