Recently I have found a nice library that made my life easier. According to authors it is the most comprehensive, enterprise-ready framework for provisioning SharePoint artifacts on SharePoint 2010, 2013 and O365. SPMeta2 is a code-first provision library supporting the provision of more than 120 artifacts in robust, highly repeatable and testable way while leveraging either one of the CSOM or SSOM SharePoint runtimes.

The library has the github repo with a documentation and lots of examples. The library is distributed via NuGet

Authors claim that SPMeta2 fully replaces XML allowing you to focus on writing clean, unified, reliable and reusable code.

I have tried to deploy a few lists and almost everything have been handled by SPMeta2.