This open source database is being created as part of my live coding series: Creating a database from the ground up using modern C++! In this post I explain why I decided to start this series…
I’ve been wanting to start a more advanced video blog series for a while. I’ve not had the time to contribute to it though. I’ve decided now to take some time for myself rather than others, and so started this video series.
The topic may seem very specific and random, but I have a few historic interests and desires.
Firstly, I work as a Sales Engineer, and so need a way to keep my coding skills up to date outside of the day job. Wanting to up my game on modern C++ seemed like a good thing to try and do.
Secondly, I have a lot of interest in databases, indexing, and search engines. I used to work for FileNet, IBM, and MarkLogic. So search and storage and indexing are in my blood. I’m also the author of NoSQL for Dummies, and find that even now a lot of people don’t understand different database storage models, trade offs in performance vs. Enterprise readiness, security, or data processing.
Thirdly, I do like sharing knowledge and blogging about things as I discover them. It only seemed logical that whilst I re-taught myself C++ beyond C++98/11, that I share the experience with others!
The first video in the series is now live!
In this video I cover:-
- Creating a new project-of-projects in QtCreator
- Creating a database library, tests, and a command line interface
- Using third party libraries for command line options and unit testing
- Introduce test driven development (TDD) and agile story based approach to development
- Scratch the surface of some new C++17 functionality
- Create a key-value store database, and a command line interface to interact with it
By the end of this 1 hour 10 minute video we have a fully functional, working, key-value store!
The code itself is MIT licensed and can be cloned or forked here: https://github.com/adamfowleruk/groundupdb
The videos on YouTube are under the creative commons attribution license. Please feel free to use them for any educational courses you may want to run.
I hope you enjoy the video! Please leave comments here or on the video itself, and share and subscribe.