If you have any questions, you are always welcome to contact us. We'll get back to you as soon as possible, withing 24 hours on weekdays.
Customer service
All questions about your order, return and delivery must be sent to our customer service team by e-mail at yourstore@yourdomain.com
Sale & Press
If you are interested in selling our products, need more information about our brand or wish to make a collaboration, please contact us at press@yourdomain.com
Help
If you have any questions, you are always welcome to contact us. We'll get back to you as soon as possible, withing 24 hours on weekdays.
Customer service
All questions about your order, return and delivery must be sent to our customer service team by e-mail at yourstore@yourdomain.com
Sale & Press
If you are interested in selling our products, need more information about our brand or wish to make a collaboration, please contact us at press@yourdomain.com
As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are taking an interest in highlevel software design patterns such as hexagonal/clean architecture, eventdriven architecture, and the strategic patterns prescribed by domaindriven design (DDD). But translating those patterns into Python isn't always straightforward.With this handson guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexityand 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) Domaindriven design's distinction between Entities, Value Objects, and Aggregates Repository and Unit of Work patterns for persistent storage Events, commands, and the message bus Commandquery responsibility segregation (CQRS) Eventdriven architecture and reactive microservices
⚠️ WARNING (California Proposition 65):
This product may contain chemicals known to the State of California to cause cancer,
birth defects, or other reproductive harm.
<div class="dynamic-checkout__content" id="dynamic-checkout-cart" data-shopify="dynamic-checkout-cart"> <shopify-accelerated-checkout-cart wallet-configs="[{"name":"shop_pay","wallet_params":{"shopId":73758048501,"merchantName":"Ergodebooks","personalized":true}},{"name":"amazon_pay","wallet_params":{"checkoutLanguage":"en_US","ledgerCurrency":"USD","placement":"Cart","sandbox":false,"merchantId":"A1G1ZY975O1T6J","productType":"PayAndShip","design":"C0002"}},{"name":"paypal","wallet_params":{"shopId":73758048501,"countryCode":"US","merchantName":"Ergodebooks","phoneRequired":true,"companyRequired":false,"shippingType":"shipping","shopifyPaymentsEnabled":true,"hasManagedSellingPlanState":false,"requiresBillingAgreement":false,"merchantId":"L873BZSC9NMQS","sdkUrl":"https://www.paypal.com/sdk/js?components=buttons\u0026commit=false\u0026currency=USD\u0026locale=en_US\u0026client-id=AbasDhzlU0HbpiStJiN1KRJ_cNJJ7xYBip7JJoMO0GQpLi8ePNgdbLXkC7_KMeyTg8tnAKW4WKrh9qmf\u0026merchant-id=L873BZSC9NMQS\u0026intent=authorize"}}]" access-token="c0f52a66b386e9fa5c0ab4c2febc737c" buyer-country="US" buyer-locale="en" buyer-currency="USD" shop-id="73758048501" cart-id="0412746d0d352e05daf9d3f26cbb98e3" > <div class="wallet-button-wrapper"> <ul class='wallet-cart-grid wallet-cart-grid--skeleton' role="list" data-shopify-buttoncontainer="true"> <li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li> </ul> </div> </shopify-accelerated-checkout-cart> <small id="shopify-buyer-consent" class="hidden" aria-hidden="true" data-consent-type="subscription"> One or more of the items in your cart is a recurring or deferred purchase. By continuing, I agree to the <span id="shopify-subscription-policy-button">cancellation policy</span> and authorize you to charge my payment method at the prices, frequency and dates listed on this page until my order is fulfilled or I cancel, if permitted. </small> </div>
Stay in the know
Subscribe to our newsletter and stay updated on latest offers, discounts and events near you.
For MAP (Minimum Advertised Price) violations, please contact:
map@ergode.com
For Intellectual Property (IP) or Trademark concerns, please contact:
ip@ergode.com
⚠️ California Proposition 65 Warning: Some products sold on this website may expose you to chemicals known to the State of California to cause cancer, birth defects, or other reproductive harm. For more information, visit www.P65Warnings.ca.gov.