Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
- Autorzy:
- Harry Percival, Bob Gregory
- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 304
- Dostępne formaty:
-
ePubMobi
Opis ebooka: Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are taking an interest in high-level software design patterns such as hexagonal/clean architecture, event-driven architecture, and the strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn’t always straightforward.
With this hands-on guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity—and get the most value out of their test suites.
Each pattern is illustrated with concrete examples in beautiful, idiomatic Python, avoiding some of the verbosity of Java and C# syntax. 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
Wybrane bestsellery
-
Python zyskuje coraz większą popularność i jest wykorzystywany do tworzenia bardzo różnych aplikacji, jednak projektowanie dużych, niezawodnych systemów w tym języku bywa wyzwaniem. Rozwijanie złożonych systemów o wysokiej jakości wymaga zastosowania odpowiedniej architektury. Trudno w Pythonie s...
Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych
(44.85 zł najniższa cena z 30 dni)41.40 zł
69.00 zł(-40%) -
W trakcie prezentowanego procesu poznasz podstawy Django, Selenium, git, jQuery i Mock, a także aktualnie stosowanych technologii programowania sieciowego. Jeżeli jesteś gotowy na podniesienie własnych umiejętności w zakresie programowania w Pythonie, ta książka wyraźnie pokazuje, że podejście op...(64.35 zł najniższa cena z 30 dni)
59.40 zł
99.00 zł(-40%) -
Czy chcesz odkryć świat kodowania i stać się młodym programistą w zaledwie jeden dzień? Czy chcesz nauczyć się języka, który otworzy przed tobą drzwi do fascynującego świata technologii? Czy chcesz tworzyć własne gry, aplikacje i nie tylko, korzystając z Pythona, jednego z najbardziej przyj...
Python w 1 dzień dla najmłodszych. Naucz się kodowania w Pythonie w 12 godzin Python w 1 dzień dla najmłodszych. Naucz się kodowania w Pythonie w 12 godzin
-
Oto uzupełnione i zaktualizowane wydanie bestsellerowego przewodnika dla inżynierów sieci. Dzięki niemu przejdziesz trudną (ale ekscytującą!) drogę od tradycyjnej platformy do platformy sieciowej opartej na najlepszych praktykach programistycznych. Zaczniesz od zagadnień podstawowych, aby następn...
Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV
(83.85 zł najniższa cena z 30 dni)77.40 zł
129.00 zł(-40%) -
Oto drugie, zaktualizowane i uzupełnione wydanie przewodnika po bibliotece Pandas. Dzięki tej przystępnej książce nauczysz się w pełni korzystać z możliwości oferowanych przez bibliotekę, nawet jeśli dopiero zaczynasz przygodę z analizą danych w Pythonie. Naukę rozpoczniesz z użyciem rzeczywisteg...
Jak analizować dane z biblioteką Pandas. Praktyczne wprowadzenie. Wydanie II Jak analizować dane z biblioteką Pandas. Praktyczne wprowadzenie. Wydanie II
(70.85 zł najniższa cena z 30 dni)65.40 zł
109.00 zł(-40%) -
Zanurz się w fascynujący świat programowania w języku Python i osiągnij imponujący poziom umiejętności w zaledwie 24 godziny! Oto kilka zalet, które sprawiają, że ta książka jest niezbędna dla każdego aspirującego programisty: Szybki start: podstawy Pythona już w pierwszych godzinach nauki ...
Python w 1 dzień. Nauka programowania w Pythonie w 24 godziny od A do Z Python w 1 dzień. Nauka programowania w Pythonie w 24 godziny od A do Z
-
To książka przeznaczona dla osób, które pracują ze zbiorami danych. Jest praktycznym przewodnikiem po koncepcjach algebry liniowej, pomyślanym tak, by ułatwić ich zrozumienie i zastosowanie w użytecznych obliczeniach. Poszczególne zagadnienia przedstawiono za pomocą kodu Pythona, wraz z przykłada...
Praktyczna algebra liniowa dla analityków danych. Od podstawowych koncepcji do użytecznych aplikacji w Pythonie Praktyczna algebra liniowa dla analityków danych. Od podstawowych koncepcji do użytecznych aplikacji w Pythonie
(50.05 zł najniższa cena z 30 dni)46.20 zł
77.00 zł(-40%) -
Ta książka stanowi wszechstronne omówienie wszystkich bibliotek Pythona, potrzebnych naukowcom i specjalistom pracującym z danymi. Znalazł się tu dokładny opis IPythona, NumPy, Pandas, Matplotlib, Scikit-Learn i innych narzędzi. Podręcznik uwzględnia przede wszystkim ich aspekty praktyczne, dzięk...
Python Data Science. Niezbędne narzędzia do pracy z danymi. Wydanie II Python Data Science. Niezbędne narzędzia do pracy z danymi. Wydanie II
(83.85 zł najniższa cena z 30 dni)77.40 zł
129.00 zł(-40%) -
To trzecie, zaktualizowane i uzupełnione wydanie bestsellerowego podręcznika programowania w Pythonie. Naukę rozpoczniesz od podstawowych koncepcji programowania. Poznasz takie pojęcia jak zmienne, listy, klasy i pętle, a następnie utrwalisz je dzięki praktycznym ćwiczeniom. Dowiesz się, jak zape...(77.35 zł najniższa cena z 30 dni)
71.40 zł
119.00 zł(-40%) -
Po tym, jak Bene Gesserit odwołały Jessikę z Kaladanu i wysłały jako konkubinę do innego szlachcica, książę Leto postanowił zaangażować się w rozbicie radykalnego ruchu na rzecz Wspólnoty Szlacheckiej. Kaladanem zaś w jego imieniu zarządza ich syn. Ledwie czternastoletni Paul wkracza w świat, któ...
Diuna. Dziedzic Kaladanu. Trylogia Kaladanu. Tom 1 Diuna. Dziedzic Kaladanu. Trylogia Kaladanu. Tom 1
(41.40 zł najniższa cena z 30 dni)39.90 zł
69.00 zł(-42%)
O autorze ebooka
Harry Percival niegdyś był konsultantem specjalizującym się w zarządzaniu, później brał udział w pracach nad arkuszem kalkulacyjnym Resolver One. Pracował w PythonAnywhere LLP i promował metodykę TDD na konferencjach, warsztatach i innych wydarzeniach na całym świecie. Teraz pracuje w MADE.com.
Kup polskie wydanie:
Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych
- Autor:
- Harry Percival, Bob Gregory
29,90 zł
69,00 zł
(34.50 zł najniższa cena z 30 dni)
Ebooka "Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-920-5215-9, 9781492052159
- Data wydania ebooka:
- 2020-03-05 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 7.5MB
- Rozmiar pliku Mobi:
- 20.1MB
Spis treści ebooka
- Preface
- Managing Complexity, Solving Business Problems
- Why Python?
- TDD, DDD, and Event-Driven Architecture
- Who Should Read This Book
- A Brief Overview of What Youll Learn
- Part I, Building an Architecture to Support Domain Modeling
- Part II, Event-Driven Architecture
- Addtional Content
- Example Code and Coding Along
- License
- Conventions Used in This Book
- OReilly Online Learning
- How to Contact OReilly
- Acknowledgments
- Introduction
- Why Do Our Designs Go Wrong?
- Encapsulation and Abstractions
- Layering
- The Dependency Inversion Principle
- A Place for All Our Business Logic: The Domain Model
- I. Building an Architecture to Support Domain Modeling
- 1. Domain Modeling
- What Is a Domain Model?
- Exploring the Domain Language
- Unit Testing Domain Models
- Dataclasses Are Great for Value Objects
- Value Objects and Entities
- Not Everything Has to Be an Object: A Domain Service Function
- Pythons Magic Methods Let Us Use Our Models with Idiomatic Python
- Exceptions Can Express Domain Concepts Too
- 2. Repository Pattern
- Persisting Our Domain Model
- Some Pseudocode: What Are We Going to Need?
- Applying the DIP to Data Access
- Reminder: Our Model
- The Normal ORM Way: Model Depends on ORM
- Inverting the Dependency: ORM Depends on Model
- Introducing the Repository Pattern
- The Repository in the Abstract
- What Is the Trade-Off?
- Building a Fake Repository for Tests Is Now Trivial!
- What Is a Port and What Is an Adapter, in Python?
- Wrap-Up
- 3. A Brief Interlude: On Coupling and Abstractions
- Abstracting State Aids Testability
- Choosing the Right Abstraction(s)
- Implementing Our Chosen Abstractions
- Testing Edge to Edge with Fakes and Dependency Injection
- Why Not Just Patch It Out?
- Wrap-Up
- 4. Our First Use Case: Flask API and Service Layer
- Connecting Our Application to the Real World
- A First End-to-End Test
- The Straightforward Implementation
- Error Conditions That Require Database Checks
- Introducing a Service Layer, and Using FakeRepository to Unit Test It
- A Typical Service Function
- Why Is Everything Called a Service?
- Putting Things in Folders to See Where It All Belongs
- Wrap-Up
- The DIP in Action
- 5. TDD in High Gear and Low Gear
- How Is Our Test Pyramid Looking?
- Should Domain Layer Tests Move to the Service Layer?
- On Deciding What Kind of Tests to Write
- High and Low Gear
- Fully Decoupling the Service-Layer Tests from the Domain
- Mitigation: Keep All Domain Dependencies in Fixture Functions
- Adding a Missing Service
- Carrying the Improvement Through to the E2E Tests
- Wrap-Up
- 6. Unit of Work Pattern
- The Unit of Work Collaborates with the Repository
- Test-Driving a UoW with Integration Tests
- Unit of Work and Its Context Manager
- The Real Unit of Work Uses SQLAlchemy Sessions
- Fake Unit of Work for Testing
- Using the UoW in the Service Layer
- Explicit Tests for Commit/Rollback Behavior
- Explicit Versus Implicit Commits
- Examples: Using UoW to Group Multiple Operations into an Atomic Unit
- Example 1: Reallocate
- Example 2: Change Batch Quantity
- Tidying Up the Integration Tests
- Wrap-Up
- 7. Aggregates and Consistency Boundaries
- Why Not Just Run Everything in a Spreadsheet?
- Invariants, Constraints, and Consistency
- Invariants, Concurrency, and Locks
- What Is an Aggregate?
- Choosing an Aggregate
- One Aggregate = One Repository
- What About Performance?
- Optimistic Concurrency with Version Numbers
- Implementation Options for Version Numbers
- Testing for Our Data Integrity Rules
- Enforcing Concurrency Rules by Using Database Transaction Isolation Levels
- Pessimistic Concurrency Control Example: SELECT FOR UPDATE
- Wrap-Up
- Part I Recap
- II. Event-Driven Architecture
- 8. Events and the Message Bus
- Avoiding Making a Mess
- First, Lets Avoid Making a Mess of Our Web Controllers
- And Lets Not Make a Mess of Our Model Either
- Or the Service Layer!
- Avoiding Making a Mess
- Single Responsibility Principle
- All Aboard the Message Bus!
- The Model Records Events
- Events Are Simple Dataclasses
- The Model Raises Events
- The Message Bus Maps Events to Handlers
- Option 1: The Service Layer Takes Events from the Model and Puts Them on the Message Bus
- Option 2: The Service Layer Raises Its Own Events
- Option 3: The UoW Publishes Events to the Message Bus
- Wrap-Up
- 9. Going to Town on the Message Bus
- A New Requirement Leads Us to a New Architecture
- Imagining an Architecture Change: Everything Will Be an Event Handler
- A New Requirement Leads Us to a New Architecture
- Refactoring Service Functions to Message Handlers
- The Message Bus Now Collects Events from the UoW
- Our Tests Are All Written in Terms of Events Too
- A Temporary Ugly Hack: The Message Bus Has to Return Results
- Modifying Our API to Work with Events
- Implementing Our New Requirement
- Our New Event
- Test-Driving a New Handler
- Implementation
- A New Method on the Domain Model
- Optionally: Unit Testing Event Handlers in Isolation with a Fake Message Bus
- Wrap-Up
- What Have We Achieved?
- Why Have We Achieved?
- 10. Commands and Command Handler
- Commands and Events
- Differences in Exception Handling
- Discussion: Events, Commands, and Error Handling
- Recovering from Errors Synchronously
- Wrap-Up
- 11. Event-Driven Architecture: Using Events to Integrate Microservices
- Distributed Ball of Mud, and Thinking in Nouns
- Error Handling in Distributed Systems
- The Alternative: Temporal Decoupling Using Asynchronous Messaging
- Using a Redis Pub/Sub Channel for Integration
- Test-Driving It All Using an End-to-End Test
- Redis Is Another Thin Adapter Around Our Message Bus
- Our New Outgoing Event
- Internal Versus External Events
- Wrap-Up
- 12. Command-Query Responsibility Segregation (CQRS)
- Domain Models Are for Writing
- Most Users Arent Going to Buy Your Furniture
- Post/Redirect/Get and CQS
- Hold On to Your Lunch, Folks
- Testing CQRS Views
- Obvious Alternative 1: Using the Existing Repository
- Your Domain Model Is Not Optimized for Read Operations
- Obvious Alternative 2: Using the ORM
- SELECT N+1 and Other Performance Considerations
- Time to Completely Jump the Shark
- Updating a Read Model Table Using an Event Handler
- Changing Our Read Model Implementation Is Easy
- Wrap-Up
- 13. Dependency Injection (and Bootstrapping)
- Implicit Versus Explicit Dependencies
- Arent Explicit Dependencies Totally Weird and Java-y?
- Preparing Handlers: Manual DI with Closures and Partials
- An Alternative Using Classes
- A Bootstrap Script
- Message Bus Is Given Handlers at Runtime
- Using Bootstrap in Our Entrypoints
- Initializing DI in Our Tests
- Building an Adapter Properly: A Worked Example
- Define the Abstract and Concrete Implementations
- Make a Fake Version for Your Tests
- Figure Out How to Integration Test the Real Thing
- Wrap-Up
- Epilogue
- What Now?
- How Do I Get There from Here?
- Separating Entangled Responsibilities
- Identifying Aggregates and Bounded Contexts
- An Event-Driven Approach to Go to Microservices via Strangler Pattern
- Convincing Your Stakeholders to Try Something New
- Questions Our Tech Reviewers Asked That We Couldnt Work into Prose
- Footguns
- More Required Reading
- Wrap-Up
- A. Summary Diagram and Table
- B. A Template Project Structure
- Env Vars, 12-Factor, and Config, Inside and Outside Containers
- Config.py
- Docker-Compose and Containers Config
- Installing Your Source as a Package
- Dockerfile
- Tests
- Wrap-Up
- C. Swapping Out the Infrastructure: Do Everything with CSVs
- Implementing a Repository and Unit of Work for CSVs
- D. Repository and Unit of Work Patterns with Django
- Repository Pattern with Django
- Custom Methods on Django ORM Classes to Translate to/from Our Domain Model
- Repository Pattern with Django
- Unit of Work Pattern with Django
- API: Django Views Are Adapters
- Why Was This All So Hard?
- What to Do If You Already Have Django
- Steps Along the Way
- E. Validation
- What Is Validation, Anyway?
- Validating Syntax
- Postels Law and the Tolerant Reader Pattern
- Validating at the Edge
- Validating Semantics
- Validating Pragmatics
- Index
O'Reilly Media - inne książki
-
JavaScript gives web developers great power to create rich interactive browser experiences, and much of that power is provided by the browser itself. Modern web APIs enable web-based applications to come to life like never before, supporting actions that once required browser plug-ins. Some are s...(177.65 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
How will software development and operations have to change to meet the sustainability and green needs of the planet? And what does that imply for development organizations? In this eye-opening book, sustainable software advocates Anne Currie, Sarah Hsu, and Sara Bergman provide a unique overview...(160.65 zł najniższa cena z 30 dni)
169.14 zł
199.00 zł(-15%) -
OpenTelemetry is a revolution in observability data. Instead of running multiple uncoordinated pipelines, OpenTelemetry provides users with a single integrated stream of data, providing multiple sources of high-quality telemetry data: tracing, metrics, logs, RUM, eBPF, and more. This practical gu...(143.65 zł najniższa cena z 30 dni)
143.65 zł
169.00 zł(-15%) -
Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate good development practices based on classic software design patterns and new patterns unique to embedded prog...(152.15 zł najniższa cena z 30 dni)
160.65 zł
189.00 zł(-15%) -
If you use Linux in your day-to-day work, then Linux Pocket Guide is the perfect on-the-job reference. This thoroughly updated 20th anniversary edition explains more than 200 Linux commands, including new commands for file handling, package management, version control, file format conversions, an...(92.65 zł najniższa cena z 30 dni)
101.15 zł
119.00 zł(-15%) -
Gain the valuable skills and techniques you need to accelerate the delivery of machine learning solutions. With this practical guide, data scientists, ML engineers, and their leaders will learn how to bridge the gap between data science and Lean product delivery in a practical and simple way. Dav...(237.15 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
This practical book provides a detailed explanation of the zero trust security model. Zero trust is a security paradigm shift that eliminates the concept of traditional perimeter-based security and requires you to "always assume breach" and "never trust but always verify." The updated edition off...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Decentralized finance (DeFi) is a rapidly growing field in fintech, having grown from $700 million to $100 billion over the past three years alone. But the lack of reliable information makes this area both risky and murky. In this practical book, experienced securities attorney Alexandra Damsker ...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Whether you're a startup founder trying to disrupt an industry or an entrepreneur trying to provoke change from within, your biggest challenge is creating a product people actually want. Lean Analytics steers you in the right direction.This book shows you how to validate your initial idea, find t...(126.65 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
When it comes to building user interfaces on the web, React enables web developers to unlock a new world of possibilities. This practical book helps you take a deep dive into fundamental concepts of this JavaScript library, including JSX syntax and advanced patterns, the virtual DOM, React reconc...(194.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices Harry Percival, Bob Gregory (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.