Skip to content
A Book about Pythonic Application Architecture Patterns for Managing Complexity. Cosmos is the Opposite of Chaos you see. O'R. wouldn't actually let us call it "Cosmic Python" tho.
CSS Python HTML XSLT Other
Branch: master
Clone or download
Latest commit 8173882 Jan 21, 2020
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 @ 5d4f530 cherrypicked ej1 needs new cod Jan 14, 2020
images move some formatting into include, adjust chap 11-02 image Jan 21, 2020
theme a tiny bit more room Nov 20, 2019
.gitignore rename prologue to introduction Aug 23, 2019
.gitmodules python-leap -> cosmicpython Nov 9, 2019
.travis.yml ok forget testing unit tests Nov 20, 2019
Makefile Update Makefile Jan 9, 2020
Readme.md add DS1 table Jan 14, 2020
appendix_csvs.asciidoc change all xrefs Jan 14, 2020
appendix_django.asciidoc get appendix django into better shape Jan 14, 2020
appendix_ds1_table.asciidoc updating figure filerefs Jan 17, 2020
appendix_project_structure.asciidoc remove a few todos Jan 21, 2020
appendix_validation.asciidoc more stress on context Jan 15, 2020
atlas.json Updated atlas.json Jan 21, 2020
author_bio.html ran intake script Jan 17, 2020
book.asciidoc add DS1 table Jan 14, 2020
chapter_01_domain_model.asciidoc move some formatting into include, adjust chap 11-02 image Jan 21, 2020
chapter_02_repository.asciidoc more bikeshedding on the abcs thing. promote warning to sidebar. prom… Jan 21, 2020
chapter_03_abstractions.asciidoc address some more todos Jan 21, 2020
chapter_04_service_layer.asciidoc address some more todos Jan 21, 2020
chapter_05_high_gear_low_gear.asciidoc get rid of a few more todos Jan 21, 2020
chapter_06_uow.asciidoc get rid of a few more todos Jan 21, 2020
chapter_07_aggregate.asciidoc get rid of a few more todos Jan 21, 2020
chapter_08_events_and_message_bus.asciidoc more bikeshedding on the abcs thing. promote warning to sidebar. prom… Jan 21, 2020
chapter_09_all_messagebus.asciidoc try to fix image ids Jan 21, 2020
chapter_10_commands.asciidoc a couple more that bob had already dealt with really Jan 14, 2020
chapter_11_external_events.asciidoc move some formatting into include, adjust chap 11-02 image Jan 21, 2020
chapter_12_cqrs.asciidoc try to fix image ids Jan 21, 2020
chapter_13_dependency_injection.asciidoc updating figure filerefs Jan 17, 2020
chapters.py change all xrefs Jan 14, 2020
checkout-branches-for-ci.py slightly different approach to test venv build for travis Nov 20, 2019
colo.html ran intake script Jan 17, 2020
copyright.html updates boilerplate for second er Dec 2, 2019
cover.html Merge branch atlas/august-ER Aug 30, 2019
epilogue_1_how_to_get_there_from_here.asciidoc Remove references to craziness, insanity, etc. Jan 14, 2020
fix-branches.py uow now closes the session Oct 7, 2019
introduction.asciidoc try to fix image ids Jan 21, 2020
ix.html ran script and added new files Jan 10, 2019
license.txt cc license Jun 15, 2018
maps.drawio tweaks Jan 20, 2020
mypy.ini fix mypy config Dec 19, 2019
outline.md update outline for new plan to keep commands chap separate May 1, 2019
part1.asciidoc pagenumrestart Jan 17, 2020
part2.asciidoc updating figure filerefs Jan 17, 2020
plantuml.cfg try to get plantuml to match Jan 12, 2020
preface.asciidoc Merge branch 'master' into moredjangoadvice Jan 14, 2020
print_figure_numbers_xref_to_image_filenames.py script to print out image filenames to figure numbers Jan 15, 2020
proposal.md more updates to outline, add links to blog Jan 11, 2019
push-branches.py push branches in parallel Nov 15, 2019
pytest.ini more git history tests Mar 5, 2019
rebase-appendices.sh change all xrefs Jan 14, 2020
rebase-chapters.sh change all xrefs Jan 14, 2020
render-diagrams.py inline the c4 include Jan 21, 2020
renumber-chapters.py change all xrefs Jan 14, 2020
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 fix diff testers to ignore trailing whitespace Jan 7, 2020
titlepage.html title page Jan 17, 2020
toc.html ran intake script Jan 17, 2020
travis-deploy-key.enc come on fifth times the charm Jul 5, 2019
update-exercise-branch.py change all xrefs Jan 14, 2020
uppercase-titles.py titlecase a bunch of headers Nov 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
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: TDD in High Gear and Low Gear Build Status
Chapter 6: Unit of Work Build Status
Chapter 7: Aggregates Build Status
Part 2 Intro
Chapter 8: Domain Events and a Simple Message Bus Build Status
Chapter 9: Going to Town on the MessageBus Build Status
Chapter 10: Commands Build Status
Chapter 11: External Events for Integration Build Status
Chapter 12: CQRS Build Status
Chapter 13: Dependency Injection Build Status
Epilogue: How do I get there from here?
Appendix A: Recap table
Appendix B: Project Structure Build Status
Appendix C: A major infrastructure change, made easy Build Status
Appendix D: Django 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.