As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are now taking an interest in high-level software architecture patterns such as hexagonal/clean architecture, event-driven architecture, and strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.
With this practical guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity. Each pattern is illustrated with concrete examples in idiomatic Python that explain how to avoid some of the unnecessary verbosity of Java and C# syntax. You'll learn how to implement each of these patterns in a Pythonic way.
Architectural design patterns include:
Dependency inversion, and its links to ports and adapters (hexagonal/clean architecture) Domain-driven design's distinction between entities, value objects, and aggregates Repository and Unit of Work patterns for persistent storage Events, commands, and the message bus Command Query Responsibility Segregation (CQRS) Event-driven architecture and reactive microservices
به این مسئله توجه کنید. یک سیستم فروشگاهی را در نظر بگیرید که میلیونها کاربر فعال دارد. از محصولی تنها یک عدد باقی مانده است. ممکن است چند کاربر به صورت همزمان در حال مشاهده صفحه آن محصول باشند. اگر یکی از مشتریان محصول را خرید، دیگران که در حال مشاهده صفحه بودند چه زمانی باید متوجه این قضیه شوند؟ به چه شکل این سیستم بزرگ را از لحاظ کارایی باید مدیریت کنیم (سیستم کند نشود؟
این کتاب در سطح پیشرفته قرار دارد و مفاهیم جدید طراحی و معماری نرمافزار را مانند معماری تمیز، طراحی قلمرو محور، مایکروسرویسها و معماری رویداد محور با استفاده از زبان برنامهنویسی پایتون آموزش میدهد. به نظرم در دو حالت کتاب را مطالعه کنید: ۱. پایتون را در سطح پیشرفته بلد هستید و میخواهید سطح دانش خود را در حوزههای دیگر مانند معماری و طراحی بهبود ببخشید. ۲. بر روی سیستمی کار میکنید که تعداد کاربران فعال آن میلیونی (یا بیشتر) است.