0
نام کتاب
Designing Data-Intensive Applications

The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Martin Kleppmann, Chris Riccomini

Paperback670 Pages
PublisherO'Reilly
Edition2
LanguageEnglish
Year2026
ISBN9781449373320
10
7K
A90
انتخاب نوع چاپ:
جلد سخت
1,566,000ت
0
جلد نرم
1,666,000ت(2 جلدی)
0
طلق پاپکو و فنر
1,706,000ت(2 جلدی)
0
مجموع:
0تومان
کیفیت متن:اورجینال انتشارات
قطع:B5
رنگ صفحات:دارای متن و کادر رنگی
پشتیبانی در روزهای تعطیل!
ارسال به سراسر کشور

#Data

#Designing_Data

#SQL

#NoSQL

#HTTP

#TCP

#Data_Lake

#Data_Warehouse

#GraphQL

#Cloud_Native

#GDPR

توضیحات

🚀 داده‌ها امروزه قلب تپنده چالش‌های طراحی سیستم هستن. مسائل پیچیده‌ای مثل مقیاس‌پذیری، یکپارچگی، قابلیت اطمینان، کارایی و نگهداری باید به درستی حل بشن. علاوه بر این، با تنوع عجیبی از سیستم‌ها روبرو هستیم؛ از دیتابیس‌های رابطه‌ای و NoSQL گرفته تا انبار داده‌ها (Data Warehouses) و دریاچه داده‌ها (Data Lakes). سرویس‌های ابری، سرویس‌های محلی و دیتابیس‌های توکار هم که جای خود دارن. اما انتخاب درست برای اپلیکیشن شما کدومه؟ چطور می‌شه از بین این همه اصطلاحات دهن‌پرکن، مسیر درست رو پیدا کرد؟


💡 در ویرایش دوم این کتاب، نویسندگان یعنی مارتین کلپمن و کریس ریکومینی، بر اساس پایه‌های مستحکمی که در نسخه اول بنا شده بود، تکنولوژی‌های جدید و ترندهای نوظهور رو هم اضافه کردن. شما در مسیر تصمیم‌گیری‌ها و سبک‌سنگین کردن‌های (Trade-offs) طراحی یک سیستم داده مدرن راهنمایی می‌شید، یاد میگیرید چطور ابزار مناسب رو انتخاب کنید و مفاهیم بنیادی سیستم‌های توزیع شده رو درک کنید.


🛠 نگاهی دقیق به زیر کاپوت سیستم‌هایی که همین الان استفاده میکنید بندازید و یاد بگیرید چطور ازشون بهینه‌تر استفاده کنید.

🛠 با شناسایی نقاط قوت و ضعف ابزارهای مختلف، تصمیمات آگاهانه بگیرید.

🛠 یاد بگیرید که سرویس‌های ابری بزرگ چطور برای مقیاس‌پذیری، تحمل خطا و یکپارچگی طراحی شدن.

🛠 اصول کلیدی که دیتابیس‌های مدرن بر پایه اون‌ها ساخته شدن رو درک کنید.


📑 فهرست مطالب

  1. سبک‌سنگین کردن‌ها در معماری سیستم‌های داده
  2. تعریف نیازمندی‌های غیرعملیاتی
  3. مدل‌های داده و زبان‌های پرس‌وجو
  4. ذخیره‌سازی و بازیابی
  5. رمزگذاری و تکامل
  6. تکثیر (Replication)
  7. بخش‌بندی (Sharding)
  8. تراکنش‌ها
  9. مشکل سیستم‌های توزیع شده
  10. یکپارچگی و اجماع
  11. پردازش دسته‌ای (Batch Processing)
  12. پردازش جریانی (Stream Processing)
  13. فلسفه سیستم‌های جریانی
  14. انجام کار درست


📘 چه کسانی باید این کتاب رو بخونن؟

اگر هر کدوم از موارد زیر در مورد شما صدق میکنه، این کتاب براتون ارزشمنده:

• شما مهندس نرم‌افزار، معمار نرم‌افزار یا مدیر فنی هستید که باید درباره معماری سیستم‌هایی که روشون کار میکنید تصمیم بگیرید؛ مثلا باید ابزارهای حل یک مسئله خاص رو انتخاب کنید و بفهمید چطور به بهترین شکل ازشون استفاده کنید. این موضوع مخصوصا برای سیستم‌های بک‌اند صدق میکنه.

• شما مهندس داده هستید که میخواید بافت کلی سیستم‌هایی که باهاشون سر و کار دارید رو درک کنید، یا مهندس ابر (Cloud) هستید که دنبال بینش عمیق‌تری نسبت به زیرساخت سیستم‌های مورد استفاده‌تون میگردید. متوجه میشید که با وجود اینکه سیستم‌های توزیع شده مدرن پیچیدگی‌های زیادی رو از دید شما مخفی میکنن، اما درک اصول زیربنایی اون‌ها برای بهینه‌سازی عملکرد و خطایابی فوق‌العاده مفیده.

• میخواید یاد بگیرید چطور سیستم‌های داده رو مقیاس‌پذیر کنید (مثلا برای پشتیبانی از اپلیکیشن‌هایی با میلیون‌ها کاربر)، پایداری بالا داشته باشید (حداقل زمان از کار افتادگی)، از نظر عملیاتی مستحکم باشید و در درازمدت راحت‌تر سیستم رو نگهداری کنید (حتی وقتی سیستم بزرگ میشه و تکنولوژی‌ها تغییر میکنن).

• دارید برای مصاحبه‌های شغلی «طراحی سیستم» آماده میشید که در اون از شما میخوان معماری یک اپلیکیشن رو ترسیم کنید، و نیاز دارید اصول معماری‌های خوب داده رو یاد بگیرید.

• کنجکاو هستید بدونید پشت صحنه وب‌سایت‌ها و سرویس‌های آنلاین بزرگ، و داخل دیتابیس‌های مختلف و سیستم‌های پردازش داده چی میگذره؛ مخصوصا اگر دوست دارید عمیق‌تر از کلمات قلمبه‌سلمبه برید تا به درک فنی دقیق و درستی از تکنولوژی‌های مختلف و تفاوت‌هاشون برسید.


💻 این کتاب فرض میکنه که شما تجربه‌ای در ساخت اپلیکیشن‌های تحت وب دارید و با دیتابیس‌های رابطه‌ای و SQL آشنا هستید. درک سطح بالا از پروتکل‌های رایج شبکه مثل TCP و HTTP هم کمک‌کننده‌ست. زبان برنامه‌نویسی یا فریم‌ورک خاصی که باهاش کار میکنید، در استفاده از این کتاب فرقی ایجاد نمیکنه.


در ویرایش دوم چه چیزهایی جدیده؟


این ویرایش دوم همون اهداف و محدوده‌ی نسخه اول کتاب «طراحی اپلیکیشن‌های با بار داده زیاد» رو داره که سال ۲۰۱۷ منتشر شد. با این حال، ما کل کتاب رو به طور کامل بازبینی کردیم تا تغییرات تکنولوژی در دهه اخیر رو منعکس کنیم و شفافیت توضیحات رو بالا ببریم.


🚀 بزرگترین تغییرات فنی که از زمان ویرایش اول روی این کتاب تاثیر گذاشته، انفجار علاقه به هوش مصنوعی و ظهور معماری‌های سیستم داده‌ی Cloud Native هست. با اینکه این کتاب ذاتا درباره هوش مصنوعی نیست، اما پوشش سیستم‌های داده‌ای که از هوش مصنوعی و یادگیری ماشین پشتیبانی میکنن رو اضافه کردیم؛ از جمله ایندکس‌های برداری (Vector Indexes) که برای جستجوی معنایی استفاده میشن، دیتافریم‌ها (DataFrames) که برای آموزش دیتاست‌ها به کار میرن و سیستم‌های پردازش دسته‌ای برای آماده‌سازی حجم عظیم داده‌های آموزشی. ایده‌های Cloud Native، مثل ساخت سیستم‌های داده روی فضاهای ذخیره‌سازی شیء (Object Stores) به جای دیسک‌های محلی، در سراسر کتاب گنجانده شده.


📝 همچنین بحث‌هایی درباره موتورهای همگام‌سازی و نرم‌افزارهای Local-first، موتورهای گردش کار (Workflow) و اجرای بادوام، متدهای رسمی و تست‌های تصادفی، GraphQL و تکنولوژی‌های دیگه‌ای که ارزش دونستن دارن رو اضافه کردیم. کمی هم به زمینه‌های قانونی پرداختیم و تاثیر مقررات عمومی حفاظت از داده اتحادیه اروپا (GDPR) و قوانین مشابه رو بررسی کردیم. چند مورد رو هم حذف کردیم؛ مثلا چون MapReduce دیگه تقریبا منسوخ شده، فصل پردازش دسته‌ای رو بر همین اساس بازنویسی کردیم و متاسفانه تصمیم گرفتیم نقشه‌های سبک تالکین (ارباب حلقه‌ها) رو هم کنار بذاریم.


🔄 بعضی از بحث‌ها بازبینی شدن و شماره‌گذاری فصل‌ها تغییر کرده. بعضی فصل‌ها فقط نیاز به یک ویرایش سبک داشتن، در حالی که بقیه (مثل فصل ۱۰ درباره یکپارچگی و اجماع) تقریبا به طور کامل بازنویسی شدن تا شفاف‌تر بشن. در مجموع، ویرایش دوم حدود ۶۰ صفحه طولانی‌تر از ویرایش اول شده.


👨‍💻 درباره نویسنده

مارتین کلپمن دانشیار دانشگاه کمبریج هست که در زمینه سیستم‌های توزیع شده و پروتکل‌های امنیتی تحقیق و تدریس میکنه. اون یکی از خالقان Automerge بوده، سابقه تاسیس استارتاپ داره و مهندس نرم‌افزار در لینکدین بوده، جایی که سیستم‌های داده در مقیاس بزرگ رو پیاده‌سازی کرده.


Data is at the center of many challenges in system design today. Difficult issues such as scalability, consistency, reliability, efficiency, and maintainability need to be resolved. In addition, there's an overwhelming variety of systems, including relational databases, NoSQL datastores, data warehouses, and data lakes. There are cloud services, on-premises services, and embedded databases. What are the right choices for your application? How do you make sense of all these buzzwords?


In this second edition, authors Martin Kleppmann and Chris Riccomini build on the foundation laid in the acclaimed first edition, integrating new technologies and emerging trends. You'll be guided through the maze of decisions and trade-offs involved in building a modern data system, learn how to choose the right tools for your needs, and understand the fundamentals of distributed systems.


  • Peer under the hood of the systems you already use, and learn to use them more effectively
  • Make informed decisions by identifying the strengths and weaknesses of different tools
  • Learn how major cloud services are designed for scalability, fault tolerance, and consistency
  • Understand the core principles upon which modern databases are built


Table of Contents

Chapter 1. Trade-Offs in Data Systems Architecture

Chapter 2. Defining Nonfunctional Requirements

Chapter 3. Data Models and Query Languages

Chapter 4. Storage and Retrieval

Chapter 5. Encoding and Evolution

Chapter 6. Replication

Chapter 7. Sharding

Chapter 8. Transactions

Chapter 9. The Trouble with Distributed Systems

Chapter 10. Consistency and Consensus

Chapter 11. Batch Processing

Chapter 12. Stream Processing

Chapter 13. A Philosophy of Streaming Systems

Chapter 14. Doing the Right Thing


Who Should Read This Book?

If any of the following are true for you, you’ll find this book valuable:

  • You’re a software engineer, software architect, or technical manager who needs to make decisions about the architecture of the systems you work on—for example, you need to choose tools for solving a given problem and figure out how best to apply them. This applies especially to backend systems.
  • You’re a data engineer who wants to understand the wider context of the systems you deal with, or a cloud engineer who wants insights into the underpinnings of the systems you’re using. You will find that even though modern distributed systems hide a lot of complexity from you, understanding their underlying principles is extremely useful for performance optimization and debugging.
  • You want to learn how to make data systems scalable (e.g., to support apps with millions of users), highly available (minimizing downtime), operationally robust, and easier to maintain in the long run (even as they grow and as requirements and technologies change).
  • You are preparing for a “system design” job interview in which you will be asked to sketch an architecture for an application, and you need to learn the principles for good data architectures.
  • You are curious to find out what goes on behind the scenes at major websites and online services, and inside various databases and data processing systems—especially if you like to dig deeper than buzzwords to gain a technically accurate and precise understanding of various technologies and their trade-offs.


This book assumes that you already have some experience building web-based applications and that you are familiar with relational databases and SQL. A high-level understanding of common network protocols like TCP and HTTP is helpful. Your choice of programming language or framework makes no difference for this book.



What’s New in the Second Edition?

This second edition has the same goals and scope as the first edition of Designing Data-Intensive Applications, which was published in 2017. However, we have thoroughly revised the entire book to reflect technological changes that have happened in the last decade and to improve the clarity of the explanations.


The biggest technical changes that have affected this book since the first edition are the explosion of interest in AI and the rise of cloud native data systems architectures. While this book is not about AI per se, we have added coverage of data systems that support AI and machine learning, including vector indexes (used for semantic search), DataFrames (used for training datasets), and batch processing systems for preparing large amounts of training data. Cloud native ideas, such as building data systems on top of object stores instead of local disks, have been woven in throughout the book.


We have also added discussions of sync engines and local-first software, workflow engines and durable execution, formal methods and randomized testing, GraphQL, and various other technologies that are worth knowing about. We have included a bit of legal context as well, by exploring the impact of the EU General Data Protection Regulation (GDPR) and related law. We’ve also taken a few things away—for example, as MapReduce is now largely obsolete, we have rewritten the batch processing chapter accordingly, and we sadly decided to drop the Tolkien-style maps.


A few discussions have been restructured, and the chapter numbering has changed. Some chapters required only a light edit, while others (such as Chapter 10, on consistency and consensus) were almost completely rewritten to make them clearer. Overall, the second edition is about 60 pages longer than the first.


About the Author

Martin Kleppmann is an associate professor at the University of Cambridge, researching and teaching distributed systems and security protocols. He co-created Automerge, was a startup founder, and a software engineer at LinkedIn, where he implemented large-scale data systems.

دیدگاه خود را بنویسید
نظرات کاربران (0 دیدگاه)
نظری وجود ندارد.
کتاب های مشابه
Data Science
455
The Data Science Design Manual
964,000 تومان
Computer Science
994
Relevant Search
780,000 تومان
Software Engineering
7,052
Designing Data-Intensive Applications
1,472,000 تومان
Data
829
Data Analytics with Hadoop
661,000 تومان
MongoDB
1,090
Data Science Fundamentals for Python and MongoDB
554,000 تومان
Data Science
1,051
Data Science on the Google Cloud Platform
940,000 تومان
Data Science
986
Data Science in Practice
519,000 تومان
Python
833
Data Science Fundamentals with R, Python, and Open Data
968,000 تومان
Data Science
715
The Decision Maker's Handbook to Data Science
503,000 تومان
Data Science
1,126
Data Science
652,000 تومان
قیمت
منصفانه
ارسال به
سراسر کشور
تضمین
کیفیت
پشتیبانی در
روزهای تعطیل
خرید امن
و آسان
آرشیو بزرگ
کتاب‌های تخصصی
هـر روز با بهتــرین و جــدیــدتـرین
کتاب های روز دنیا با ما همراه باشید
آدرس
پشتیبانی
مدیریت
ساعات پاسخگویی
درباره اسکای بوک
دسترسی های سریع
  • راهنمای خرید
  • راهنمای ارسال
  • سوالات متداول
  • قوانین و مقررات
  • وبلاگ
  • درباره ما
چاپ دیجیتال اسکای بوک. 2024-2022 ©