notes
This commit is contained in:
parent
cf47f3b27a
commit
8352f8f233
7 changed files with 40 additions and 2 deletions
3
20210310182044-software_architecture.org
Normal file
3
20210310182044-software_architecture.org
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#+title: Software Architecture
|
||||||
|
|
||||||
|
The application of design principles to [[file:20200723095845-software_development.org][Software Development]].
|
13
20210310182256-side_effects.org
Normal file
13
20210310182256-side_effects.org
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#+title: Side Effects
|
||||||
|
|
||||||
|
In [[file:20200723095845-software_development.org][Software Development]], the effects of running a function or bit of code
|
||||||
|
outside of its local environment. Examples include reaching out over the network
|
||||||
|
to talk to a database, reading or writing a file on disk, or printing some
|
||||||
|
output. This contrasts with [[file:20210310183956-purity.org][Purity]], where such effects are not allowed.
|
||||||
|
|
||||||
|
Effectful code has implicit, rather than explicit, state. This is to say, the
|
||||||
|
behavior of the code may differ not based solely on its explicit inputs, but
|
||||||
|
also values at a higher level of scope, the stability of the network, or the
|
||||||
|
current contents of a file. They may also impact external state, which can make
|
||||||
|
them difficult to reason about and sensitive to the order in which statements
|
||||||
|
are executed.
|
1
20210310183956-purity.org
Normal file
1
20210310183956-purity.org
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#+title: Purity
|
|
@ -0,0 +1,6 @@
|
||||||
|
#+title: Isolating effectful code to the top layer of your application
|
||||||
|
|
||||||
|
A principle in [[file:20210310182044-software_architecture.org][Software Architecture]] of separating [[file:20210310182256-side_effects.org][effectful]] code from [[file:20210310183956-purity.org][pure]]
|
||||||
|
application logic in applications such that effects occur in the "top layer"
|
||||||
|
(closest to the application's entry code) and kept separate from pure business
|
||||||
|
logic applied to and fed through effectful code.
|
10
pyvideo_org_the_clean_architecture_in_python.org
Normal file
10
pyvideo_org_the_clean_architecture_in_python.org
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#+title: PyVideo.org · The Clean Architecture in Python
|
||||||
|
#+roam_key: https://pyvideo.org/pyohio-2014/the-clean-architecture-in-python.html
|
||||||
|
|
||||||
|
Brandon Rhodes talk on [[file:20210310182044-software_architecture.org][Software Architecture]] discusses [[file:20210310184749-isolating_effectful_code_to_the_top_layer_of_your_application.org][Isolating effectful code
|
||||||
|
to the top layer of your application]] in Python.
|
||||||
|
|
||||||
|
In doing so, he demonstrates that it is easier to build fast, comprehensive unit
|
||||||
|
tests of pure functions, thereby minimizing potentially fragile integration
|
||||||
|
tests. The resulting top-level function reminds me of the high level pipeline
|
||||||
|
demonstrated in [[file:railway_oriented_programming_f_for_fun_and_profit.org][Railway Oriented Programming | F# for fun and profit]].
|
5
railway_oriented_programming_f_for_fun_and_profit.org
Normal file
5
railway_oriented_programming_f_for_fun_and_profit.org
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#+title: Railway Oriented Programming | F# for fun and profit
|
||||||
|
#+roam_key: https://fsharpforfunandprofit.com/rop/
|
||||||
|
|
||||||
|
A talk on [[file:20210310182044-software_architecture.org][Software Architecture]] by Scott Wlaschin on cleanly pipelining
|
||||||
|
functions with success and failure cases using monadic binding.
|
|
@ -33,7 +33,7 @@
|
||||||
\AfterEndEnvironment{quote}{\end{snugshade}}
|
\AfterEndEnvironment{quote}{\end{snugshade}}
|
||||||
#+END_EXPORT
|
#+END_EXPORT
|
||||||
|
|
||||||
* Travel
|
* Travel :noexport:
|
||||||
** Flight
|
** Flight
|
||||||
- Record Locator :: WHIBQL
|
- Record Locator :: WHIBQL
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
AWeber
|
AWeber
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Ticket :ATTACH:
|
* Ticket :noexport:ATTACH:
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:Attachments: strange-loop-2018-ticket-6DTV-1.pdf
|
:Attachments: strange-loop-2018-ticket-6DTV-1.pdf
|
||||||
:ID: 44AAE8B1-99BF-4F20-A1DE-8BB031861A13
|
:ID: 44AAE8B1-99BF-4F20-A1DE-8BB031861A13
|
||||||
|
|
Loading…
Reference in a new issue