• Complain

Harry J.W. Percival - Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices

Here you can read online Harry J.W. Percival - Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2020, publisher: OReilly Media, genre: Home and family. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Harry J.W. Percival Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
  • Book:
    Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
  • Author:
  • Publisher:
    OReilly Media
  • Genre:
  • Year:
    2020
  • Rating:
    5 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

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 isnt 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. Youll 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 designs 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

Harry J.W. Percival: author's other books


Who wrote Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices? Find out the surname, the name of the author of the book and a list of all author's works by series.

Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Architecture Patterns with Python

by Harry Percival and Bob Gregory

Copyright 2020 Harry Percival and Bob Gregory. All rights reserved.

Printed in the United States of America.

Published by OReilly Media, Inc. , 1005 Gravenstein Highway North, Sebastopol, CA 95472.

OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com .

  • Acquisitions Editor: Ryan Shaw
  • Development Editor: Corbin Collins
  • Production Editor: Katherine Tozer
  • Copyeditor: Sharon Wilkey
  • Proofreader: Arthur Johnson
  • Indexer: Ellen Troutman-Zaig
  • Interior Designer: David Futato
  • Cover Designer: Karen Montgomery
  • Illustrator: Rebecca Demarest
  • March 2020: First Edition
Revision History for the First Edition
  • 2020-03-05: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781492052203 for release details.

The OReilly logo is a registered trademark of OReilly Media, Inc. Architecture Patterns with Python, the cover image, and related trade dress are trademarks of OReilly Media, Inc.

The views expressed in this work are those of the authors and do not represent the publishers views. While the publisher and the authors have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the authors disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-492-05220-3

[LSI]

Preface

You may be wondering who we are and why we wrote this book.

At the end of Harrys last book,Test-Driven Development with Python (OReilly),he found himself asking a bunch of questions about architecture, such as,Whats the best way of structuring your application so that its easy to test?More specifically, so that your core business logic is covered by unit tests,and so that you minimize the number of integration and end-to-end tests you need?He made vague references to Hexagonal Architecture and Ports and Adaptersand Functional Core, Imperative Shell, but if he was honest, hed have toadmit that these werent things he really understood or had done in practice.

And then he was lucky enough to run into Bob, who has the answers to all thesequestions.

Bob ended up a software architect because nobody else on his team wasdoing it. He turned out to be pretty bad at it, but he was lucky enough to runinto Ian Cooper, who taught him new ways of writing and thinking about code.

Managing Complexity, Solving Business Problems

We both work for MADE.com, a European ecommerce company that sells furnitureonline; there, we apply the techniques in this book to build distributed systemsthat model real-world business problems. Our example domain is the first systemBob built for MADE, and this book is an attempt to write down all the stuff wehave to teach new programmers when they join one of our teams.

MADE.com operates a global supply chain of freight partners and manufacturers.To keep costs low, we try to optimize the delivery of stock to ourwarehouses so that we dont have unsold goods lying around the place.

Ideally, the sofa that you want to buy will arrive in port on the very daythat you decide to buy it, and well ship it straight to your house withoutever storing it. Getting the timing right is a tricky balancing act when goods takethree months to arrive by container ship. Along the way, things get broken or waterdamaged, storms cause unexpected delays, logistics partners mishandle goods,paperwork goes missing, customers change their minds and amend their orders,and so on.

We solve those problems by building intelligent software representing thekinds of operations taking place in the real world so that we can automate asmuch of the business as possible.

Why Python?

If youre reading this book, we probably dont need to convince you that Pythonis great, so the real question is Why does the Python community need a booklike this? The answer is about Pythons popularity and maturity: although Python isprobably the worlds fastest-growing programming language and is nearing the topof the absolute popularity tables, its only just starting to take on the kindsof problems that the C# and Java world has been working on for years.Startups become real businesses; web apps and scripted automations are becoming(whisper it) enterprisesoftware .

In the Python world, we often quote the Zen of Python:There should be oneand preferably only oneobvious way to do it.Unfortunately, as project size grows, the most obvious way of doing thingsisnt always the way that helps you manage complexity and evolvingrequirements.

None of the techniques and patterns we discuss in this book arenew, but they are mostly new to the Python world. And this book isnta replacement for the classics in the field such as Eric EvanssDomain-Driven Designor Martin Fowlers Patterns ofEnterprise Application Architecture (both published by Addison-Wesley Professional )which we often refer to andencourage you to go and read.

But all the classic code examples in the literature do tend to be written inJava or C++/# , and if youre a Python person and havent used either ofthose languages in a long time (or indeed ever), those code listings can bequitetrying. Theres a reason the latest edition of that other classic text, FowlersRefactoring (Addison-Wesley Professional), is in JavaScript.

TDD, DDD, and Event-Driven Architecture

In order of notoriety, we know of three tools for managing complexity:

  1. Test-driven development (TDD) helps us to build code that is correctand enables us to refactor or add new features, without fear of regression.But it can be hard to get the best out of our tests: How do we make surethat they run as fast as possible? That we get as much coverage and feedbackfrom fast, dependency-free unit tests and have the minimum number of slower,flaky end-to-end tests?

  2. Domain-driven design (DDD) asks us to focus our efforts on building a goodmodel of the business domain, but how do we make sure that our models arentencumbered with infrastructure concerns and dont become hard to change?

  3. Loosely coupled (micro)services integrated via messages (sometimes calledreactive microservices) are a well-established answer to managing complexityacross multiple applications or business domains. But its not alwaysobvious how to make them fit with the established tools ofthe Python worldFlask, Django, Celery, and so on.

Note

Dont be put off if youre not working with (or interested in) microservices. The vast majority of the patterns we discuss, including much of the event-driven architecture material, is absolutely applicable in a monolithic architecture.

Our aim with this book is to introduce several classic architectural patternsand show how they support TDD, DDD, and event-driven services. We hopeit will serve as a reference for implementing them in a Pythonic way, and thatpeople can use it as a first step toward further research in this field.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices»

Look at similar books to Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices»

Discussion, reviews of the book Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.