Tag: softwaredesign

Breaking Dependencies – The Visitor Design Pattern in Cpp – Klaus Iglberger – CppCon 2022

  • Lobby
  • Tag Archives: softwaredesign

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

Breaking Dependencies - The Visitor Design Pattern in C++ - Klaus Iglberger - CppCon 2022
https://github.com/CppCon/CppCon2022

The extensibility of code with new functionality is essential for long-term maintenance of a code base. However, when using dynamic polymorphism there is always a choice: either easily add types, or easily add operations. For instance, by means of inheritance hierarchies it's easy to add new types, but it's difficult to add new operations.
But there is a common workaround to overcome this weakness: the Visitor design pattern.

In this talk, I’ll explain the design properties of Visitor, including its benefits and shortcomings. I’ll also talk about different kinds of visitors (cyclic and acyclic) and show when to reach for a Visitor and when to avoid it. Additionally, I’ll demonstrate the different implementation strategies (classic and modern) and address their individual benefits and problems.
---

Klaus Iglberger

Klaus Iglberger is a freelance C++ trainer and consultant. He has finished his PhD in Computer Science in 2010 and since then is focused on large-scale C++ software design. He shares his expertise in popular advanced C++ courses around the world (mainly in Germany, but also in the rest of the EU and the US). Additionally, he is the initiator and lead designer of the Blaze C++ math library (https://bitbucket.org/blaze-lib/blaze/), one of the organizers of the Munich C++ user group (https://www.meetup.com/MUCplusplus/), and the organizer of the Back-to-Basics track at CppCon.
---

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: , , , ,

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

  • Lobby
  • Tag Archives: softwaredesign

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: , , , ,

How to Use C++ Dependency Injection to Write Maintainable Software – Francesco Zoffoli – CppCon 2022

  • Lobby
  • Tag Archives: softwaredesign

https://cppcon.org/
---

How to Use Dependency Injection to Write Maintainable Cpp Software - Francesco Zoffoli - CppCon 2022
https://github.com/CppCon/CppCon2022

Are you tired of needing 50 files open to be able to understand what a single component does?
Do you find yourself wanting to change a component, then to realise that you’ll have to touch half of the code base?
Do you want to write simple tests which easily allow to verify your implementation?

Join this talk to learn an effective way to manage the dependencies through dependency injection and never have to worry about those problems again!

In this talk we’ll explore an approach and several techniques to perform dependency injection in C++, with the goal of having decoupled components which can be easily refactored and tested.
We’ll see how to manage both dependencies on data and dependencies on behaviours. We'll explore in which situations each can be used, and we'll see which libraries offer functionality to make the developer's life easy.
The talk will cover how to write components to take dependencies in an effective way and how to propagate them.

It will additionally cover more complicated cases, where components depend on multiple other components, and also how to handle deferred instantiation of dependencies (factories yay!!).

This is a concrete, practical talk which we'll give you a strategy for managing dependencies.
Join along to see how the typical code from production can be changed, and simplified, following this approach!
---

Francesco Zoffoli

Francesco Zoffoli is a professional Software Engineer, public speaker and book author, with experience in C++ and backend systems.

Author of the book “C++ Fundamentals”, passionate about programming languages, maintainable software and distributed systems, he has been using C++ throughout his career and personal projects. Graduated in 2016 with a MSc in Computer Systems Engineering, he joined the industry working for Bloomberg LP.
In 2020, he joined Facebook building software monitoring systems.
He enjoys using C++ to build maintainable systems that work at scale.
---

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 #software

Filed under: UncategorizedTagged with: , , , ,

C++ in the World of Embedded Systems – Vladimir Vishnevskii – CppCon 2022

  • Lobby
  • Tag Archives: softwaredesign

https://cppcon.org/
---

C++ in the World of Embedded Systems - Vladimir Vishnevskii - CppCon 2022
https://github.com/CppCon/CppCon2022

The talk offers an introduction into the concepts, variety and architectural specifics of embedded systems and reviews the application of the C++ language and the ecosystem for embedded software development. With the focus on the modern C++ features and frameworks that can be leveraged in embedded projects the presentation will explore benefits along with potential implications and limitations of the C++ language utilization. Similarities between embedded and high-performance systems will be highlighted and general availability and applicability of the C++ for the development of embedded code will be assessed. Language features and program constructs that can introduce risks in embedded environments will be reviewed. Examples of the modern C++ software design under conditions of restricted dynamic memory allocation will be presented with focus on publicly available 3-rd party libraries developed for high-performance applications that can be used in embedded projects. Metaprogramming techniques for low-level hardware abstractions will be discussed.
---

Vladimir Vishnevskii

Vladimir is a software engineer with more than 17 years of experience applying C++ for development of complex software in areas like distributed systems and networking with focus on performance and reliability. Before his recent switch to Intel he was for more than 6 years part of the effort to bring modern C++ into automotive embedded software development.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #embeddedsystems

Filed under: UncategorizedTagged with: , , , , ,