1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+
4+ < head >
5+ < meta charset ="utf-8 ">
6+ < meta name ="viewport " content ="width=device-width, initial-scale=1 ">
7+ < meta name ="author " content ="Harry Percival and Bob Gregory ">
8+ < meta name ="description " content ="">
9+ < link rel ="stylesheet " href ="//fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic ">
10+ < link rel ="stylesheet " href ="//cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.css ">
11+ < link rel ="stylesheet " href ="//cdnjs.cloudflare.com/ajax/libs/milligram/1.3.0/milligram.css ">
12+ < link rel ="stylesheet " href ="https://cdn.jsdelivr.net/npm/pygments-css@1.0.0/friendly.css ">
13+ </ head >
14+
15+ < body >
16+ < main class ="wrapper ">
17+
18+ < nav class ="navigation ">
19+ < section class ="container ">
20+ < a class ="navigation-title " href ="/ ">
21+ < h1 class ="title "> Cosmic Python</ h1 >
22+ </ a >
23+ </ section >
24+ </ nav >
25+
26+ < section class ="container ">
27+
28+ < div class ="row ">
29+ < div class ="column ">
30+ < img src ="https://www.jpl.nasa.gov/spaceimages/images/largesize/PIA13111_hires.jpg " />
31+ </ div >
32+ </ div >
33+ < h1 > Cosmic Python</ h1 >
34+ < h2 > Simple patterns for building complex applications</ h2 >
35+ < p >
36+ < em >
37+ (Because "Cosmos" is the
38+ < a href ="https://www.goodreads.com/quotes/604655-cosmos-is-a-greek-word-for-the-order-of-the "> opposite of Chaos</ a > ,
39+ you see)
40+ </ em >
41+ </ p >
42+
43+ < h1 > The Book</ h1 >
44+ < ul >
45+ < li >
46+ Read for free from the sources using Github previews:
47+ < a href ="https://github.com/cosmicpython/book#table-of-contents "> github.com/cosmicpython/book</ a >
48+ </ li >
49+
50+ < li >
51+ Read in online on O'Reilly Learning (aka Safari)
52+ < a href ="https://learning.oreilly.com/library/view/architecture-patterns-with/9781492052197/ "> learning.oreilly.com</ a >
53+ </ li >
54+
55+ < li >
56+ Preorder print books on
57+ < a href ="https://amzn.to/37pR2DH "> Amazon.com</ a >
58+ or
59+ < a href ="https://amzn.to/38CmFu1 "> Amazon.co.uk</ a > .
60+ </ li >
61+ < li >
62+ Buy a DRM-free ebook at
63+ < a href ="https://www.ebooks.com/en-us/book/209971850/architecture-patterns-with-python/harry-percival/ "> ebooks.com</ a >
64+ </ li >
65+ </ ul >
66+
67+ < h1 > Blog</ h1 >
68+
69+ < h3 > Recent posts</ h3 >
70+
71+ < ul >
72+
73+
74+
75+
76+
77+
78+
79+
80+
81+
82+ < li >
83+ < a href ="posts/2020-01-25-testing_external_api_calls.html "> 2020-01-25 Writing tests for external API calls</ a >
84+ </ li >
85+
86+
87+ </ ul >
88+
89+ < h3 > Classic 2017 Episodes on Ports & Adapters, by Bob</ h3 >
90+
91+
92+ < ul >
93+
94+
95+ < li >
96+ < a href ="posts/2017-09-07-introducing-command-handler.html "> 2017-09-07 Introducing Command Handler</ a >
97+ </ li >
98+
99+
100+
101+ < li >
102+ < a href ="posts/2017-09-08-repository-and-unit-of-work-pattern-in-python.html "> 2017-09-08 Repository and Unit of Work Pattern</ a >
103+ </ li >
104+
105+
106+
107+ < li >
108+ < a href ="posts/2017-09-13-commands-and-queries-handlers-and-views.html "> 2017-09-13 Commands, Handlers, Queries and Views</ a >
109+ </ li >
110+
111+
112+
113+ < li >
114+ < a href ="posts/2017-09-19-why-use-domain-events.html "> 2017-09-19 Why use domain events?</ a >
115+ </ li >
116+
117+
118+
119+
120+ </ ul >
121+
122+
123+ </ section >
124+ </ main >
125+ </ body >
126+ </ html >
0 commit comments