Tag: designpatterns

The Observer Design Pattern in Cpp – Mike Shah – CppCon 2022

  • Lobby
  • Tag Archives: designpatterns

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

The Observer Design Pattern in Cpp - Mike Shah - CppCon 2022
https://github.com/CppCon/CppCon2022

Games, desktop software, phone apps, and almost every software that a user interacts with has some sort of event handling system. In order to handle events, a common behavior design pattern known as the 'observer pattern' allows one or more objects to monitor if a change of state takes place in another object. In this talk, we are going to do a deep dive into the behavioral design pattern known as the observer. The pattern utilizes a Subject and Observer (or publisher and subscriber) model to notify when state has changed from the subject to one or more observers in order to help make our software more maintainable, extensible, and flexible.

I will show some examples of the observer in modern C++ as well as real world use cases of where observers are used for further study. Finally, I'll discuss the tradeoffs of the observer pattern, and discuss which scenarios you may not actually want to use the observer pattern. Attendees will leave this talk with the knowledge to go forward and implement the observer pattern, as well as how to spot the observer design pattern in projects they may already be working on!
---

Mike Shah

Mike Shah is an Associate Teaching Professor at Northeastern University in the Khoury College of Computer Sciences. His primary teaching interests are in computer systems, computer graphics, and software engineering. His research interests are related to performance engineering (dynamic analysis), software visualization, and computer graphics. Along with teaching and research work, he have juggled occasional consulting work as a 3D Senior Graphics Engineer in C++.

Mike discovered computer science at the age of 13 when googling ”how do I make games”. From that google search, Mike has worked as a freelance game developer, worked in industry for Intel, Sony Playstation, Oblong Industries, and researched at The Ohio Supercomputer Center to name a few. Mike cares about building tools to help programmers monitor and improve the performance of realtime applications– especially games. In Michael’s spare time he is a long distance runner, weight lifter, and amateur pizza maker.
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

A Pattern Language for Expressing Concurrency in Cpp – Lucian Radu Teodorescu – CppCon 2022

  • Lobby
  • Tag Archives: designpatterns

https://cppcon.org/
---

A Pattern Language for Expressing Concurrency in Cpp - Lucian Radu Teodorescu - CppCon 2022
https://github.com/CppCon/CppCon2022

Concurrency is still largely an unsolved problem. It is said that concurrency appeared in the software world in 1965, when Dijkstra provided a solution to the mutual exclusion problem. It is worth mentioning that this happened before 1968, when we officially started to use the term “Software Engineering”. We embraced structured programming in late 1960s and early 1970s for general code, but never managed to apply structured concurrency on a large scale up to this date. We are still writing our concurrent code in a largely unstructured manner. This is mainly the reason for which concurrency is a large frustration within the C++ community.

In C++, we don’t have so far a model to do structured concurrency. However, this is about to change with senders/receivers proposal. The proposal has high chances to land in the C++26 standard. Meanwhile, there are libraries implementing the proposal, so that people can start using it already. But, between having the proposal available to use and using it efficiently, there is a big gap.

This talk aims at providing a framework for programmers to use the senders/receivers proposal for addressing concurrency. We will define a pattern language for concurrency problems. Moreover, we will propose a visual representation of these patterns, making it easier for programmers to picture and argue about the structure of the concurrency. Through all these, the talk will show that concurrency of a software system can be described and analyzed just like any other architectural concern.
---

Lucian Radu Teodorescu

Lucian Radu Teodorescu has a PhD in programming languages and is a Staff Engineer at Garmin. He likes challenges; and understanding the essence of things (if there is one) constitutes the biggest challenge of all.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #concurrency

Filed under: UncategorizedTagged with: , , , ,