C++Now 2019: Kris Jusiak “Dependency Injection - a 25-dollar term for a 5-cent concept”
Channel: CppNow
Date: 2019-06-07

http://cppnow.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: http://cppnow.org/history/2019/talks/
—
Over the years the term - Dependency Injection (DI) - has become more and more mystical while in actual fact DI is as simple as ABC. For those of you who have ever used constructors, you have inadvertently been using DI! 

In this practical session, we will follow success stories of applying different forms of DI in several projects and focus on the outcomes as well as the potential pros and cons of using it. 

We will establish why in an environment with constantly changing requirements [1] DI may play a crucial role if it comes to writing a maintainable/testable code with limited boilerplate and why "The only way to go fast is to go well". 

The key point will be about comparing different ways [2], approaches [3] and frameworks [4] of accomplishing DI, each of which has different trade-offs, characteristics and which suits different applications. 

At the end of this session, the audience will walk away with a clear understanding of possible use cases for DI, its benefits, as well as guidelines on how to correctly apply it. 

Get ready to "inject all the things" at C++Now 2019! 

[1]: "Nothing is certain in Software Development except for bugs and constantly changing requirements!" - the Franklin rule 
[2]: Templates, Concepts, Type-Erasure, Inheritance, Variant - https://github.com/boost-experimental/di/tree/cpp14/example/polymorphism 
[3]: Runtime/compile time injection - https://github.com/boost-experimental/di/tree/cpp14/benchmark 
[4]: [Boost].DI - https://github.com/boost-experimental/di (not an official Boost library), Google.Fruit - https://github.com/google/fruit, Hyperdemic - https://github.com/ybainier/Hypodermic
— 
Kris Jusiak
Quantlab Financial, LLC
Senior Software Engineer
Denver, Colorado
Website: quantlab.com

Kris is a Software Engineer with interest in modern C++ development, especially during compilation time where performance and quality matters. He has experience in industries such as telecommunications, games, and finance as well as being an open source enthusiast and author of the following libraries:
* [Boost].DI - proposed to Boost, C++14 Dependency Injection library - https://github.com/boost-experimental/di
* [Boost].SML - proposed to Boost, C++14 State Machine library - https://github.com/boost-experimental/sml
* [Boost].TE - C++17/C++20 Type Erasure library - https://github.com/boost-experimental/te
* GUnit - C++14 extensions for Google.Mock/Google.Test/Cucumber - https://github.com/cpp-testing/GUnit
—
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
---

*--*

---