Skip to content
A Book about Pythonic Application Architecture Patterns for Managing Complexity. But we're hoping it will be called "Cosmic Python".
CSS Python HTML XSLT Other
Branch: master
Clone or download
Latest commit c9ac2b5 Sep 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
callouts ran script and added new files Jan 10, 2019
code @ 4876dc3 fix another couple of exercise branches Sep 10, 2019
images fix typo in db sequence diag Sep 10, 2019
theme Edited theme/mobi/mobi.css with Atlas code editor Sep 3, 2019
.gitignore rename prologue to introduction Aug 23, 2019
.gitmodules add code as submodule Feb 22, 2019
.travis.yml another attempt at deploy key Jul 5, 2019
Makefile use a css class called d-none which will hopefully work on gh too Jul 16, 2019
Readme.md fix #97 intro in readme Sep 10, 2019
acknowledgements.asciidoc Update acknowledgements.asciidoc Sep 10, 2019
appendix_bootstrap.asciidoc feed thru to appendix Aug 14, 2019
appendix_csvs.asciidoc fix a few more image sources Sep 12, 2019
appendix_django.asciidoc Merge branch atlas/august-ER Aug 30, 2019
appendix_project_structure.asciidoc fix a few more image sources Sep 12, 2019
appendix_validation.asciidoc add placeholder validation appendix, point to it from 7. #32 Jul 26, 2019
atlas.json change title Sep 12, 2019
author_bio.html Merge branch atlas/august-ER Aug 30, 2019
book.asciidoc rename prologue to introduction Aug 23, 2019
chapter_01_domain_model.asciidoc Merge branch atlas/august-ER Aug 30, 2019
chapter_02_repository.asciidoc fix a few more image sources Sep 12, 2019
chapter_03_abstractions.asciidoc try to lessen the focus on changing dbs Sep 6, 2019
chapter_04_service_layer.asciidoc Edited chapter_04_service_layer.asciidoc with Atlas code editor Sep 3, 2019
chapter_05_uow.asciidoc Merge branch atlas/august-ER Aug 30, 2019
chapter_06_aggregate.asciidoc fix a few more image sources Sep 12, 2019
chapter_07_events_and_message_bus.asciidoc add a diagram re tradeoffs Sep 6, 2019
chapter_08_all_messagebus.asciidoc fix a few more image sources Sep 12, 2019
chapter_09_commands.asciidoc renumber those chapters Aug 14, 2019
chapter_10_external_events.asciidoc fix a few more image sources Sep 12, 2019
chapter_11_cqrs.asciidoc renumber those chapters Aug 14, 2019
chapter_12_dependency_injection.asciidoc fix abstract notifs Aug 14, 2019
chapters.py fix another couple of exercise branches Sep 10, 2019
checkout-branches-for-ci.py add exercise branches to ci checkout script Sep 11, 2019
colo.html ran script and added new files Jan 10, 2019
copyright.html change title Sep 12, 2019
cover.html Merge branch atlas/august-ER Aug 30, 2019
epilogue_1_how_to_get_there_from_here.asciidoc try to consistentize some capitalization around patterns Aug 9, 2019
fix-branches.py show diffs during fix-branches Apr 23, 2019
introduction.asciidoc Merge pull request #95 from python-leap/bbom-picture Sep 6, 2019
ix.html ran script and added new files Jan 10, 2019
license.txt cc license Jun 15, 2018
mypy.ini start working on updating chapter 7 May 25, 2019
outline.md update outline for new plan to keep commands chap separate May 1, 2019
part1.asciidoc start moving chapters around Aug 13, 2019
part2.asciidoc try to consistentize some capitalization around patterns Aug 9, 2019
preface.asciidoc try to consistentize some capitalization around patterns Aug 9, 2019
proposal.md more updates to outline, add links to blog Jan 11, 2019
push-branches.py udpate submodules feed thru code Apr 24, 2019
pytest.ini more git history tests Mar 5, 2019
rebase-appendices.sh fix some tags and stuff Aug 15, 2019
rebase-chapters.sh feed thru commits Aug 30, 2019
render-diagrams.py fix bugs, bring [ditaa] thingie inside literals and fix later Jul 18, 2019
renumber-chapters.py renumber those chapters Aug 14, 2019
requirements.txt requirements, add mypy and pylint, add code as submodule Mar 26, 2019
reset-exercise-branches.py some helpers for fixups in exercise branches Jul 1, 2019
tests.py start fixing exercises Sep 10, 2019
titlepage.html change title Sep 12, 2019
toc.html ran script and added new files Jan 10, 2019
travis-deploy-key.enc come on fifth times the charm Jul 5, 2019
update-exercise-branch.py start fixing exercises Sep 10, 2019
uppercase-titles.py fix some titlecasing Aug 9, 2019

Readme.md

Book repo

Book Code
Book Build Status Code build status

Table of Contents

O'Reilly have generously said that we will be able to publish this book under a CC license, In the meantime, pull requests, typofixes, and more substantial feedback + suggestions are enthusiastically solicited.

Chapter
Preface
Acknowledgements
Introduction: Why do our designs go wrong?
Part 1 Intro
Chapter 1: Domain Model Build Status
Chapter 2: Repository Build Status
Chapter 3: Interlude: Abstractions
Chapter 4: Service Layer (and Flask API) Build Status
Chapter 5: Unit of Work Build Status
Chapter 6: Aggregates Build Status
Part 2 Intro
Chapter 7: Domain Events and a Simple Message Bus Build Status
Chapter 8: Going to Town on the MessageBus Build Status
Chapter 9: Commands Build Status
Chapter 10: External Events for Integration Build Status
Chapter 11: CQRS Build Status
Chapter 12: Dependency Injection Build Status
Epilogue: How do I get there from here?
Appendix B: Project Structure Build Status
Appendix C: A major infrastructure change, made easy Build Status
Appendix D: Django Build Status
Appendix E: Bootstrap Build Status
Appendix F: Validation

Below is just instructions for me and bob really.

Dependencies:

  • asciidoctor
  • Pygments (for syntax higlighting)
  • asciidoctor-diagram (to render images from the text sources in ./images)
gem install asciidoctor
python2 -m pip install --user pygments
gem install pygments.rb
gem install asciidoctor-diagram

Commands

make html  # builds local .html versions of each chapter
make test  # does a sanity-check of the code listings
You can’t perform that action at this time.