The Python Podcast.__init__

Domain Driven Design For Python


Listen Later

Summary

When your software projects start to scale it becomes a greater challenge to understand and maintain all of the pieces. In this episode Henry Percival shares his experiences working with domain driven design in large Python projects. He explains how it is helpful, and how you can start using it for your own applications. This was an informative conversation about software architecture patterns for large organizations and how they can be used by Python developers.

Announcements
  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial.
  • You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
  • Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected])
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Harry Percival about domain driven design and enterprise application architecture in Python
  • Interview
    • Introductions
    • How did you get introduced to Python?
    • Can you start by explaining what "application architecture" is and how it compares to the types of application designs that Python developers and teams typically rely on? how does it contrast with "enterprise architecture"?
      • What are the influences that tend to lead engineers into sub-optimal architectures and how can they guard against them?
      • One of the core concepts in this problem space is that of "domain driven design". Can you unpack that term and explain the benefits that it provides to software architecture?
      • What are some of the other concepts that are common among application architecture patterns?
      • What are some of the common points of confusion among engineers who are first working with DDD?
      • Is there any particular size or scope of project and organization that merits the approach of domain driven design or is it applicable even at small scales of complexity and team size?
      • Now that we’ve convinced everyone that they should be using DDD can you talk through the steps involved in identifying and encapsulating the various implementation details that they will need to work through?
        • How does that process change when dealing with an existing application as opposed to a "greenfield" project?
        • How do Python language constructs and libraries impact the approach to implementation of application architecture patterns as compared to more traditional "enterprise" languages such as Java and C#?
        • What are some of the architectural anti-patterns to watch out for when implementing DDD?
        • On any given team, who is responsible for identifying and ensuring adherence to proper architectural principles?
        • Are there any publicly visible projects that implement DDD which listeners can look at and learn from?
        • To help Python developers in their efforts to learn and implement DDD and other aspects of enterprise architecture you have been working on a book. Can you talk about your motivation for that undertaking, what listeners can expect to learn when the read it, and any challenges that you have encountered in the process?
        • What are some trends in terms of system design and architecture, or technology influences, that you are keeping an eye on?
        • Keep In Touch
          • @hjwp on Twitter
          • hjwp on GitHub
          • Website
          • LinkedIn
          • Picks
            • Tobias
              • Dragon Pearl by Yoon Ha Lee
              • Harry
                • Tremé
                • Why We Sleep: Unlocking The Power Of Sleep and Dreams by Matthew Walker PhD
                • Links
                  • MADE
                  • Obey The Testing Goat
                  • Python Anywhere
                  • XP (eXtreme Programming)
                  • Django
                  • Dive Into Python
                  • Domain Driven Design
                  • Design Patterns
                  • Gang Of Four Book
                  • MVC (Model View Controller)
                  • Microservices
                  • µCon
                  • "Uncle" Bob Martin
                  • Clean Architecture book
                  • Python LEAP Book
                  • Dependency Injection
                  • Inversion Of Control
                  • Test Pyramid
                  • Gary Bernhardt
                    • Podcast Interview
                    • Functional Core, Imperative Shell
                    • Harry’s Blog
                    • The "Blue" Book by Eric Evans
                    • Gartner Hype Cycle
                    • The Clean Architecture In Python by Leonardo Giordani
                    • DRY Python
                    • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                      ...more
                      View all episodesView all episodes
                      Download on the App Store

                      The Python Podcast.__init__By Tobias Macey

                      • 4.4
                      • 4.4
                      • 4.4
                      • 4.4
                      • 4.4

                      4.4

                      100 ratings


                      More shows like The Python Podcast.__init__

                      View all
                      The Changelog: Software Development, Open Source by Changelog Media

                      The Changelog: Software Development, Open Source

                      283 Listeners

                      Data Skeptic by Kyle Polich

                      Data Skeptic

                      482 Listeners

                      Chat With Traders by Tessa Dao

                      Chat With Traders

                      1,979 Listeners

                      Talk Python To Me by Michael Kennedy

                      Talk Python To Me

                      593 Listeners

                      Software Engineering Daily by Software Engineering Daily

                      Software Engineering Daily

                      624 Listeners

                      The TWIML AI Podcast (formerly This Week in Machine Learning & Artificial Intelligence) by Sam Charrington

                      The TWIML AI Podcast (formerly This Week in Machine Learning & Artificial Intelligence)

                      445 Listeners

                      Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

                      Super Data Science: ML & AI Podcast with Jon Krohn

                      298 Listeners

                      Python Bytes by Michael Kennedy and Brian Okken

                      Python Bytes

                      213 Listeners

                      Data Engineering Podcast by Tobias Macey

                      Data Engineering Podcast

                      142 Listeners

                      Machine Learning Guide by OCDevel

                      Machine Learning Guide

                      764 Listeners

                      Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                      Syntax - Tasty Web Development Treats

                      982 Listeners

                      DataFramed by DataCamp

                      DataFramed

                      267 Listeners

                      Practical AI by Practical AI LLC

                      Practical AI

                      189 Listeners

                      The Real Python Podcast by Real Python

                      The Real Python Podcast

                      140 Listeners

                      Hard Fork by The New York Times

                      Hard Fork

                      5,420 Listeners