YoVDO

Thinking Outside the Synchronisation Quadrant

Offered By: ACCU Conference via YouTube

Tags

ACCU Conference Courses Programming Courses C++ Courses C# Courses Unit Testing Courses Architectural Design Courses Concurrency Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore concurrency beyond traditional thread-based synchronization in this ACCU 2017 conference talk. Delve into a quadrant-based approach to concurrency, examining the intersections of mutable-immutable and shared-unshared paradigms. Discover patterns and practices that extend beyond lock-based solutions, including immutability and actor models, applicable to languages like C++, C#, and Java. Learn about the significance of architecture in system design, dynamic resource allocation to prevent deadlocks, and the concept of code habitability. Investigate the importance of unit testing in preventing critical failures in distributed systems, and understand the shift from shared memory models to process-based, message-passing approaches in concurrent programming.

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

Related Courses

Khronos Sycl Language Framework for C++ Accelerators - Take Advantage of All the MIPS
ACCU Conference via YouTube
Space Invaders - The C++20 Spaceship Operator is Upon Us
ACCU Conference via YouTube
Grinding, Farming, and Alliances - Become a Better Programmer by Using Words and Ideas From Casual Gaming
ACCU Conference via YouTube
Designing for C++ Concurrency Using Message Passing
ACCU Conference via YouTube
Productivity in C++ Game Development - Inside the Mind of an AAA Game Developer
ACCU Conference via YouTube