Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Thinking Outside the Synchronisation Quadrant

code::dive conference via YouTube

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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.

Syllabus

Kevlin Henney Thinking Outside the Synchronisation Quadrant
that shape a system, where significant is measured by cost of change.
Concurrency
Architecture is the art of how to waste space.
Systems have properties
and the execution confined; that the desire is boundless, and the act a slave to limit.
template void map reduce TaskIterator begin, TaskIterator end
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.
Prevention - change the rules.
sequential
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.
Lambda-calculus was the first
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
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 caches to avoid recomputing unchanged intermediate results.

Taught by

code::dive conference

Reviews

Start your review of Thinking Outside the Synchronisation Quadrant

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.