Kevlin Henney Thinking Outside the Synchronisation Quadrant
2
that shape a system, where significant is measured by cost of change.
3
Concurrency
4
Architecture is the art of how to waste space.
5
Systems have properties
6
and the execution confined; that the desire is boundless, and the act a slave to limit.
7
template void map reduce TaskIterator begin, TaskIterator end
8
A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in.
9
Prevention - change the rules.
10
sequential
11
Immediately return a 'virtual' data object- called a future—to the client when it invokes a service. This future /... only provides a value to clients when the computation is complete.
12
Lambda-calculus was the first
13
To keep our C++ API boundary simple, we [...] adopted one-way data flow. The API consists of methods to perform fire-and-forget mutations and methods to compute view models required by specific views
14
To keep the code understandable, we write functional style code converting raw data objects into immutable View models by default. As we identified performance bottlenecks through profiling, we added…
Description:
Explore a thought-provoking lecture from the code::dive 2016 conference that delves into the concept of thinking outside the synchronization quadrant. Discover how architecture is the art of wasting space and how systems possess properties shaped by the cost of change. Examine the intricacies of concurrency and the importance of understanding all possible states in which code may execute. Learn about prevention strategies, sequential processing, and the concept of futures in asynchronous programming. Investigate the lambda calculus and its significance in functional programming. Gain insights into API design principles, including one-way data flow and the use of immutable view models. Understand how to balance code understandability with performance optimization through profiling and caching techniques.