Time and Location
Title
Component based or monolithic development for large C and C++ projects: Why not both?
Abstract
Developers of large C and C++ projects have to choose between two main development paradigms: component based development and monolith based development, each one with its own advantages and disadvantages. In component based development, projects can be split in multiple repositories that allow to do decouple development and releasing, which suits well for many organizations that split the work in different teams with different development speeds. But this approach requires efficient dependency management, complicates working simultaneously in multiple components and it adds extra challenges to implement Continuous Integration at scale. On the other hand, in monolithic/monorepo base development, the build system tool manages the whole project efficiently, simplifying some development and integration flows. But it can be resource-intensive on the CI side and it also push the whole organization to move at the same speed, often with little or almost no versioning: the “live at head” paradigm It is said that by Conway’s law, organizations are forced in practice to choose between them. But what if modern C and C++ tooling allowed us to have the best of both worlds? This talk will present the novel Conan2 “Workspaces”, a monolithic view of multiple independent components that can be dynamically added and removed from the monolithic build, and how leveraging CMake FetchContent, such a single monolithic build can be implemented. Also, for the cases where not only CMake is involved, a quick overview of the orchestration of workspace incremental builds for heterogenous build systems and CI at scale will also be introduced. The talk will describe the basics, tools, design and architecture of the solutions, and it will also show full working demonstrations for them.
Speaker Bio
Diego Rodriguez-Losada‘s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup. Since then he mostly develops in Python. Diego is a conan.io C/C++ package manager co-creator and project lead, now working at JFrog as Conan Lead Architect and C/C++ Advocate.
Resources
Coming Soon!
Digital Media Links
- Sign up for our announcements mailing list If you want to be more involved, sign up for our volunteers list
- Check out our web page at http://www.nwcpp.org/
- Follow @nwcpp on Twitter
- Join our Facebook Group
- Tune in to our YouTube and Vimeo channels
Social