Overview
Syllabus
Intro
Thinking Outside the Synchronisation Quadrant @KevlinHenney
Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. Grady Booch
Dynamic avoidance by careful resource allocation - check to see if a resource can be granted, and if granting it will cause deadlock, don't grant it.
habitable
Habitability is the characteristic of source code that enables programmers, coders, bug-fixers, and people coming to the code later in its life to understand its construction and intentions and to change it comfortably and confidently.
Simple Testing Can Prevent Most Critical Failures An Analysis of Production Failures in Distributed Data-Intensive Systems
A majority of the production failures (77%) can be reproduced by a unit test.
We want our code to be unit testable. What is a unit test?
A unit test is a test of behaviour whose success or failure is wholly determined by the correctness of the test and the correctness of the unit under test.
What do we want from unit tests?
passes, it shows the code is correct.
fails, it shows the code is incorrect.
immutable
sequential
asynchronous
Instead of using threads and shared memory as our programming model, we can use processes and message passing. Process here just means a protected independent state with executing code, not necessarily an operating system process.
Taught by
ACCU Conference