Preparations
Choose your Editor ¶
Icinga 2 can be developed with your favorite editor. Icinga developers prefer these tools:
- vim
- CLion (macOS, Linux)
- MS Visual Studio (Windows)
- Atom
Editors differ on the functionality. The more helpers you get for C++ development, the faster your development workflow will be.
Get to know the architecture ¶
Icinga 2 can run standalone or in distributed environments. It contains a whole lot more than a simple check execution engine.
Read more about it in the Technical Concepts chapter.
Get to know the code ¶
First off, you really need to know C++ and portions of C++11 and the boost libraries. Best is to start with a book or online tutorial to get into the basics. Icinga developers gained their knowledge through studies, training and self-teaching code by trying it out and asking senior developers for guidance.
Here’s a few books we can recommend:
- Accelerated C++: Practical Programming by Example (Andrew Koenig, Barbara E. Moo)
- Effective C++ (Scott Meyers)
- Boost C++ Application Development Cookbook - Second Edition: Recipes to simplify your application development (Antony Polukhin)
- Der C++ Programmierer, German (Ulrich Breymann)
- C++11 programmieren, German (Torsten T. Will)
In addition, it is a good bet to also know SQL when diving into backend development.
- SQL Performance Explained (Markus Winand)
Last but not least, if you are developing on Windows, get to know the internals about services and the Win32 API.