A few years ago I was in to Drupal 7 development. Back then, in the company I worked for, we just kept everything in the database, had a few modules we kept on disk somewhere, didn't really use version control, patches all over the place, ..., it was horrible.
Apart from that, I was trained as an OO developer and I was never really a big fan of how Drupal 7 development was done (everything global, using arrays where you should be using objects, ...). It just felt weird to me. Drupal 8 changes that.
Today, I'm working in a more professional environment (in Java amongst other things) and I would like to give Drupal another go. But I'll be using Drupal 8 this time.
My question is this: How do you set up a professional Drupal 8 (!) development environment?
I understand that you should use version control, probably git in this case, but what do I put on git? And where in the Drupal directory structure do I put all of my custom modules, themes, etc... ?
Do I create an installation profile, put my modules there and just host the entire profile on git?
I know that Drupal 8 is only in alpha and thus it is possible that there will be changes, but even for Drupal 7 getting an definitive answer to this seems next to impossible.
What I'd like to know is: How do the seasoned OO PHP people go about setting up a professional development environment and how can we apply this to Drupal 8?
With Drupal 8 saving a lot more configuration on the file system, how do I properly store that? I would be nice to have version control on that too. Is this possible or even recommended to do so?
How do you go about debugging the site/framework? Please don't tell me you just spam print_r statements everywhere.
Please note that I'm not talking about the Symphony or Drupal coding standards, they can be found quite easily.
If it is any help: I plan on using IntelliJ IDEA and its incredible set of plugins to do my development. I'm also on a windows computer, but I'm using a VM with linux to host my site(s).
I apologise for the long introduction and post. My only goal is to give you a little background information so that you know where I'm coming from and where I'd like to go.
Thanks for reading.