Tasks for the new comerPython client for RavenDB
One of the hardest things we have to do it to get people who aren’t familiar with RavenDB acclimatize to it. This onboarding process is typically done by doing something tangential to RavenDB, which allows the new guys to learn RavenDB while doing something useful.
Past examples of this is the demo website for RavenDB, internal tools, etc. In the case of Idan, since he had an extensive Python background, we decided to give him as the intro task the job of writing a RavenDB client API in Python. This has several advantages:
- Instead of shifting rapidly from the environment he knows and is familiar with, we get a much gentler curve.
- In order to actually implement it, he would have to become very familiar with the guts of RavenDB and how it actually works. Obviously that would be mostly on the client, but you can’t really do that without also understanding what the server is doing.
- We end up with a usable Python client.
So, without further ado, let me show you how this looks like:
And the result is:
Which is pretty nice. The Python client API can handle most CRUD scenarios, including full support for replication, failover, dynamic queries, etc.
It isn’t the complete client, like we have for .NET or JVM, but it should do for most needs, and as usual, pull requests are welcome.
There is still a bit of work remaining (documentation, deployment, etc), but this is ready to take for a spin.
More posts in "Tasks for the new comer" series:
- (15 Apr 2016) Quartz.NET with RavenDB
- (14 Apr 2016) Python client for RavenDB
Comments
This is the first time I see the demo.ravendb.net website. You really should try to get more attention for this kind of information, it looks simply great. If only I had known earlier.
M. Schopman, This is on the top bar of the ravendb.net site. Can you think about more ways we can promote it?
I love giving new hires tasks like this one - something that helps them learn the business but provides material value also. I'd be interested to hear how you estimate time for such a task (or the process you use for time estimation, in general) and how much freedom you allow the new developer in terms of both time and design choices.
Jason, A lot of that depend on the importance of the task itself. Certain tasks are worth putting a couple of months into them, such as the Python client. Other tasks, you get a few weeks, and it isn't worth it afterward
Hi Oren,
Sure, hope this helps a bit.
Also there's ravendb-py! I look after it, it's in production with Logit and others. PRs are welcome!
https://github.com/firegrass/ravendb-py
Comment preview