github.com/raychaser/docker@v1.5.0/project/PRINCIPLES.md (about) 1 # Docker principles 2 3 In the design and development of Docker we try to follow these principles: 4 5 (Work in progress) 6 7 * Don't try to replace every tool. Instead, be an ingredient to improve them. 8 * Less code is better. 9 * Less components is better. Do you really need to add one more class? 10 * 50 lines of straightforward, readable code is better than 10 lines of magic that nobody can understand. 11 * Don't do later what you can do now. "//FIXME: refactor" is not acceptable in new code. 12 * When hesitating between 2 options, choose the one that is easier to reverse. 13 * No is temporary, Yes is forever. If you're not sure about a new feature, say no. You can change your mind later. 14 * Containers must be portable to the greatest possible number of machines. Be suspicious of any change which makes machines less interchangeable. 15 * The less moving parts in a container, the better. 16 * Don't merge it unless you document it. 17 * Don't document it unless you can keep it up-to-date. 18 * Don't merge it unless you test it! 19 * Everyone's problem is slightly different. Focus on the part that is the same for everyone, and solve that.