Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
J**.
Very practical and very good introduction into how to build microservices
The book does a good job in introducing many concepts and show how they could be implemented in a simplified version of a business application which spans from the beginning to the end with iterative improvements along the way. Concepts like dependency injection, “unit of work” and aggregates to name just a few. Along the way, there is always a focus on how to test your code which is often neglected and mentioned only theoretically in other books.Event driven architecture covers the message bus as well as events and commands. It does not cover the difficulties that come along with events like how to handle errors, lost messages, replay ability. These difficulties are only mentioned in the appendix with some references to other sources. The text focuses more on the benefits that such an architecture can bring to your application.Overall, I think this book is very useful if you are new to the design of microservices and learn some tricks in Python along the way.
M**R
Must-read for early in your career
The writing style is approachable and clear and very consice - there is no waffle.The book introduces a moderate number of patterns without disappearing into academia. Everything is throughly grounded in the real world, and you are brought through the material in a way that is hightly relatable.For our own codebase, this book has the highest density of applicability to the problems that my team faces - by a long long way! Much as I like Clean Code and The Pragmatic Programmer, those books leave it to the reader to relate the learning back to their own daily problems. This book makes it so easy to see a path forward in your daily work.You can read this and come out with immediate and concrete actions for your codebase, and arguments you can make in favour of those actions.It is fairly high in code snippets, although they are all short and very comprehensible.This book is an absolute must if you are in a young team that is trying to build its engineering practices. You can give this book to someone who has no concept of patterns and they will get it just as easily as if they had read GoF.Definitely one of my top three books, and I am arguing for my team to use this book in place of writing our own coding guidelines.I think that the book goes a little further than I'd like in the jokey over-approachable "hey look we're nerds here" style, but it isn't enough to annoy. That's literally the only thing I can think to change. It's essentially perfect.Bob, Harry, thank you, you have helped us.
J**R
Together at last: DDD and Python
I've had an interest in Domain Driven Design ever since picking up the Evans book over a decade ago. A fascinating read, but could've been half the size. Since then, there have been other DDD books, all fine texts in their own way, but let down by also being larger than they should be and making the assumption you're using a verbose, statically typed language like Java or C# (presumably to appear "enterprisey").There's been a definite need for something covering DDD from the perspective of dynamic languages. From my own experience of 23 years as a professional developer, dynamic languages are just as good at writing large software, and arguably the better choice for writing code that is clearer, cleaner, and closer to the domain. Well, this book successfully fills the gap: distilling the key points of DDD in a concise, pragmatic way that's accessible to Python developers.I'm hard-pressed to think of other Python books that tackle large-scale software development and architectural design, so even if you're not too fussed about DDD, it's still a worthy read to broaden your "enterprise" Python skills.Given the lack of DDD coverage for dynamic languages, this might also be of use to non-Pythonistas, although you'll need some familiarity with the language. Trust me, it's not too difficult to pick it up if you come from languages like Ruby or JavaScript.If I have just one grumble, and I haven't docked points for this because it's not the fault of the authors, but O'Reilly books are very expensive these days at full price (I've been buying O'Reilly books for almost 30 years). Fortunately, I managed to grab a copy here at a much more reasonable price - I hope I haven't cost the authors some royalties!
T**Y
Every python developer should own a copy
I've been a professional developer in various languages over the last two decades and there has always been a gap in programming books at the point where you've learnt all the syntax and APIs but then need to know how to actually put a big system together properly. There are books about design patterns and about XP and Agile but I have always been missing that book or two that says "This is how to put together a real system with real code in the real world."This book is one of the few out there that fulfil that purpose and the only one I know of using Python. You can use it by your side as you're working and contemplating architecture decisions - this isn't a hand-wavy book that you read on holiday.The authors work for an international furniture company and use examples from their work which are real but also comprehensible - you can understand that they want to improve delivery times and follow their thinking as they do it.I recommend this book to anyone who has some experience with Python and wants to build robust and maintainable systems and wants to spend less time wondering how to organise their thinking.Personally, I'm making the switch to Python from decades of PHP and this has been a great help in learning more architecture (that is usable in any language) and learning how to do things well in Python.
I**A
Buena introducción a arquitectura de sw
El libro da una buena introducción a patrones de arquitectura de sw y TDD. No ahonda en los conceptos pero si buscas un entendimiento y uso general de patrones de arquitectura y buenas prácticas este libro es para ti.
H**Y
Helps me to learn difficult concepts by actually doing rather than theorizing
The whole book has a great Xtreme Programming vibe, where I'm sitting down next to the authors , and they are explaining every choice of refactoring and navigating the changes introduced into the system. Why/How things are introduced, why patterns are being put in, taken out, etc.. the tradeoffs, how we shouldn't always apply what is being applied in the current chapter... Each chapter elegantly flows into the next, and has a 'light' narrative of different events happening to the company, and you as the programming team, have to adjust and redesign the system to accommodate.I am a person who can read the entire Vaugn Vernon Red book on DDD, but at the end, not really take away anything 'concrete' in my head. This book is the antidote as it goes through a concrete example of explaining how the real life company 'made.com' operates (Authors work there and ask new colleagues to read this book to get up to date on the codebases' patterns).
M**.
Progammation TDD , DDD, EVM -- Gestion Achats-Vente et transit partiel par un stock
Superbe presentation des etapes necessaires pour programmer en Python III la gestion Achats/Ventes/transit partiel ou entier par un Stock--_---- Toutes etapes logique de la gestion en temp relle y discutee et exposee et presentee en code bien ecrit-->>> La theorie necessaire y est aussi exposee avec une attention particuliere portant sur definition correcte et precises du vocable en usage tres specifique >>> tres utile pour la comprehension de tous les aspects necessaires du processus Achat/Vente|/Stockage -->>> permet de construire un logiciel adapte aux besoins de l'elaboration d'un processus Achat/Vente/\Stockage de petite ----->>>> AbM54vdH
N**S
Um dos livros mais úteis e práticos que já li sobre padrões de arquitetura em Python
Recomendo esse livro fortemente para todos que buscam exemplos práticos de uma aplicação real em Python: mostra vários padrões e soluções arquiteturais para aplicações Web, os autores vão mostrando desde demain modelling até técnicas de microservices, sempre construindo o mesmo aplicativo, mostrando as soluções mais básicas, problemas que vão encontrando e como vão resolvendo. O livro é bem "down to earth" e nao tem medo de usar bibliotecas externas e que todos usam, entao os exemplos usam Flask, Redis, SQLAlchemy, pytest, etc. E os caras são bem honestos, final de cada capitúlo tem os prós e contras das técnicas que eles apresentaram, pra deixar claro que não existe silver-bullet ou uma solução que serve pra todos.Muito muito bom mesmo, acho que ó o livro mais prático de arquitetura que já li.
M**K
The Software Engineering Book You Need
Authors: Harry J.W. Percival, Bob GregoryPublisher: O'ReillyPublication Date: 3/5/2020Disclaimer: I am reviewing my own copy of this book because I want to. The publisher did not provide me with a copy. I promise to be 100% honest in how I feel about this book, both the good and the less so.About the BookThis is an introductory software engineering book that gives you more hand-on experience than your typical software engineering course. The authors discuss domain-driven design, test-driven development, the basic concepts of object-oriented programming, and general software architecture. It's broken up into two parts: Building an Architecture to Support Domain Modeling and Event-Driven Architecture, with a bit extra thrown in at the end to fill in some gaps. This is an unofficial follow up to one author's previous book, Test-Driven Design in Python.The first half, on building the architecture, gives you a high level view of your software and about setting it up for success. It starts with an introduction to domain modelling, discusses basic architecture patterns, and gives examples of the Flask API. It finishes with setting up your tests and being ready to add the meat to the bones. The second half, on event-driven architecture, looks at event handling and the message bus that serves of the backbone of your application.Who is This For and Why Was it Written?In the preface, the authors claim that you are an experienced Python developer who has developed applications with at least a moderate amount of complexity, You have realized how difficult this can be, but you don't know much if anything about Domain Driven Design or basic architecture patterns.I would expand this to a slightly wider audience. If you're an advanced undergraduate who has spent their university career working in Python and were not satisfied with your Software Engineering course, this book is for you. If you are about to create your own open source project with even the slightest bit of complexity, this book is for you. If you want to work on or take over an abandoned open source project, this book is for you. There are other people this is for, but I'll end the list here.I would argue that this book fills a gap left by a LOT of software engineering books. First, it gives you a hands-on experience, so long as you follow the code. Second, is discusses patterns that I never learned in my software engineering course. Third, it gives a good introduction to microservices, which are common right now.OrganizationThe first part of the book begins as soon as the introduction ends. Half way through the book, they leave the architecture and look at the code running within that architecture. Then it finishes with a series of appendices that fill in missing bits, expand on important topics, or give alternatives to how the main parts of the book handled this topic. One example is how to use Django rather than Flask to achieve the same results.Within a chapter, there are a page or two that gives you a high level view of the upcoming text. Each chapter comes in at 15-25 pages of clear written prose. Then they finish up with a Wrap-Up (Summary) section where they review what you just read while also giving you a taste of what is to come.Did This Book Succeed?I think that this book does very well. As someone who wants to write their own large program without knowing where to start (like so many of us), I picked up this book at just the right time. It's not going to teach you all of software engineering (which they did not claim to do), nor is it going to teach you Python. This is an intermediate level book who want to expand their developer's toolbox. t was well organized, well written, and very much needed, as one of the few books of its kind.Rating and Final ThoughtsThis is a great book, which earns a 5 out of 5. It's the book I need the most right now, as it will let me step up with my Python development. I very much hope that the authors consider collaborating again for a design pattern book for Python. I would expect it to be as well organized and written.
Trustpilot
5 days ago
1 month ago