YoVDO

Thinking Outside the Synchronisation Quadrant

Offered By: code::dive conference via YouTube

Tags

Code::Dive Courses Software Development Courses Functional Programming Courses Software Architecture Courses Lambda Calculus Courses

Course Description

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

Related Courses

Software as a Service
University of California, Berkeley via Coursera
Software Testing
University of Utah via Udacity
The Hardware/Software Interface
University of Washington via Coursera
Software Debugging
Saarland University via Udacity
Introduction to Systematic Program Design - Part 1
The University of British Columbia via Coursera