The Roles of Symmetry And Orthogonality In Design - Charley Bay - CppCon 2021

  Рет қаралды 4,490

CppCon

CppCon

Күн бұрын

cppcon.org/
github.com/Cpp...
---
An essential aspect in designing C and C++ systems is to validate the execution flow and resource contention of a proposed approach in the contexts of symmetry and orthogonality.
The role of symmetry is to provide some level of notional understanding without requiring direct inspection (using “similarity” to enable greater scaling and management of design complexity). The role of orthogonality is to remove edge cases and coupling by making things unrelated (thereby making whole system scaling to be simpler, more efficient, and more adaptable).
These roles establish symmetry and orthogonality as useful tools to define our systems by leveraging different aspects of “knowing” many things about our system components and their possible interactions intuitively, and without tedious scrutiny. Symmetry allows us to “know” things we should not otherwise know; while orthogonality grants simplicity to dismiss as a possibility some behaviors or component interactions within the resulting system.
In practice, we use C and C++ language guarantees to implement design choices. But, these design choices come from integrating: (1) the problem to be addressed; and (2) exploiting symmetry and orthogonality to fabricate a system that is logical, implementable, scalable, and unsurprising.
---
Charley Bay
Charley is a software developer with over three decades of experience using C++ in multiple regulated and high-performance fields focused on large-scale and distributed systems in performance-sensitive environments including time-sensitive processing of large data sets, performance visualization, real-time processing, low-latency, embedded, and system status and control.
---
Videos Streamed & Edited by Digital Medium: online.digital-...
*--*

Пікірлер: 7
@alexandergraf2505
@alexandergraf2505 2 жыл бұрын
Thanks for this awesome talk! While dealing with a very abstract idea, the message is crystal clear and applicable to so many problems. I will watch out for signs of orthogonality and symmetry in all my future design decissions. It is so difficult to reason about good design and taste. I really feel these concepts help to make solid arguments.
@kodirovsshik
@kodirovsshik 2 жыл бұрын
0:23 I just like it Thank you for an interesting talk btw
@bunpasi
@bunpasi 2 жыл бұрын
It's pretty funny that this talk has the most chaotic slides I've ever seen. The presentation (with the owls) was great though. The C++ Core Guideline P.2 states that you should write in standard C++ and that you can isolate variations. If asymmetry is really required, you can encapsulate it to hide it from the interface.
@Omnifarious0
@Omnifarious0 2 жыл бұрын
Orthogonality is a form of symmetry. Symmetry is not just balance. It also means that some property remains independent of certain kinds of change. This a fundamental equivalence. Conservation of energy is exactly equivalent to time symmetry. Conservation of linear momentum is exactly equivalent to translation symmetry.
@PrzemyslawSliwinski
@PrzemyslawSliwinski 2 жыл бұрын
24:25 - plastic garbage in oceans shows how difficult is to maintain the said symmetry in real distributed systems (even though we have an implicit move semantics)... ;)
@heater5979
@heater5979 2 жыл бұрын
Is there any symmetry and orthogonality in the C++ language?
@bakedbeings
@bakedbeings 2 жыл бұрын
Templated classes and functions add orthogonality, as do operator and function overrides. The algorithms and ranges libraries aim to treat a range of different container classes the same way, also orthogonal 👍
Как подписать? 😂 #shorts
00:10
Денис Кукояка
Рет қаралды 8 МЛН
OYUNCAK MİKROFON İLE TRAFİK LAMBASINI DEĞİŞTİRDİ 😱
00:17
Melih Taşçı
Рет қаралды 13 МЛН
Will A Guitar Boat Hold My Weight?
00:20
MrBeast
Рет қаралды 269 МЛН
Every Programming Language Ever Explained in 15 Minutes
15:29
Flash Bytes
Рет қаралды 332 М.
Being Competent With Coding Is More Fun
11:13
TheVimeagen
Рет қаралды 88 М.
The Factory Pattern - Mike Shah - CppCon 2021
1:01:06
CppCon
Рет қаралды 19 М.
How do QR codes work? (I built one myself to find out)
35:13
Veritasium
Рет қаралды 4,2 МЛН
Branchless Programming in C++ - Fedor Pikus - CppCon 2021
1:03:57
Naming Things in Code
7:25
CodeAesthetic
Рет қаралды 2,1 МЛН
Stop using std::vector wrong
23:14
The Cherno
Рет қаралды 82 М.
Как подписать? 😂 #shorts
00:10
Денис Кукояка
Рет қаралды 8 МЛН